From bugzilla-daemon at icedtea.classpath.org Mon Apr 1 05:50:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 01 Apr 2013 12:50:36 +0000 Subject: [Bug 1383] New: A fatal error has been detected by the Java Runtime Environment Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1383 Bug ID: 1383 Summary: A fatal error has been detected by the Java Runtime Environment Classification: Unclassified Product: IcedTea Version: unspecified Hardware: 64-bit OS: Linux Status: NEW Severity: critical Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: nitinvbhavsar at yahoo.com CC: unassigned at icedtea.classpath.org See attached crash report for further details. # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00000031bde2502e, pid=15939, tid=140662536738560 # # JRE version: 7.0_03 # Java VM: OpenJDK 64-Bit Server VM (22.0-b10 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libssl.so.10+0x2502e] RSAPrivateKey_dup+0x2502e # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130401/ac33e853/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Apr 1 05:55:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 01 Apr 2013 12:55:41 +0000 Subject: [Bug 1383] 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=1383 --- Comment #1 from nitinvbhavsar at yahoo.com --- Created attachment 842 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=842&action=edit JVM crash report file (part1) Spitting the crash report in two parts as it is more than 256KB which is bigger than allowed attachment size. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130401/5ff04c8c/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Apr 1 05:56:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 01 Apr 2013 12:56:17 +0000 Subject: [Bug 1383] 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=1383 --- Comment #2 from nitinvbhavsar at yahoo.com --- Created attachment 843 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=843&action=edit JVM crash report file (part2) -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130401/157344f8/attachment.html From ptisnovs at icedtea.classpath.org Tue Apr 2 00:46:42 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 02 Apr 2013 07:46:42 +0000 Subject: /hg/rhino-tests: Added three tests into the ScriptEngineFactoryC... Message-ID: changeset 3db7d0c4c031 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=3db7d0c4c031 author: Pavel Tisnovsky date: Tue Apr 02 09:49:53 2013 +0200 Added three tests into the ScriptEngineFactoryClassTest: getDeclaredField, getMethod and getDeclaredMethod. diffstat: ChangeLog | 6 + src/org/RhinoTests/ScriptEngineFactoryClassTest.java | 135 +++++++++++++++++++ 2 files changed, 141 insertions(+), 0 deletions(-) diffs (165 lines): diff -r 2e897a757331 -r 3db7d0c4c031 ChangeLog --- a/ChangeLog Fri Mar 29 10:49:24 2013 +0100 +++ b/ChangeLog Tue Apr 02 09:49:53 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-02 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: + Added three tests into the ScriptEngineFactoryClassTest: + getDeclaredField, getMethod and getDeclaredMethod. + 2013-03-29 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r 2e897a757331 -r 3db7d0c4c031 src/org/RhinoTests/ScriptEngineFactoryClassTest.java --- a/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Fri Mar 29 10:49:24 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Tue Apr 02 09:49:53 2013 +0200 @@ -466,6 +466,33 @@ } /** + * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaredField() + */ + protected void testGetDeclaredField() { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { + }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + }; + + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + + // check if all required declared fields really exists + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + try { + Field field = this.scriptEngineFactoryClass.getDeclaredField(declaredFieldThatShouldExists); + String fieldName = field.getName(); + assertTrue(fieldName.equals(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.ScriptEngineFactory.getClass().getMethods() */ protected void testGetMethods() { @@ -566,6 +593,114 @@ } /** + * Test for method javax.script.ScriptEngineFactory.getClass().getMethod() + */ + protected void testGetMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("getEngineName", new Class[] {}); + methodsThatShouldExist_jdk6.put("getEngineVersion", new Class[] {}); + methodsThatShouldExist_jdk6.put("getExtensions", new Class[] {}); + methodsThatShouldExist_jdk6.put("getMimeTypes", new Class[] {}); + methodsThatShouldExist_jdk6.put("getNames", new Class[] {}); + methodsThatShouldExist_jdk6.put("getLanguageName", new Class[] {}); + methodsThatShouldExist_jdk6.put("getLanguageVersion", new Class[] {}); + methodsThatShouldExist_jdk6.put("getParameter", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getMethodCallSyntax", new Class[] {java.lang.String.class, java.lang.String.class, String[].class}); + methodsThatShouldExist_jdk6.put("getOutputStatement", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getProgram", new Class[] {String[].class}); + methodsThatShouldExist_jdk6.put("getScriptEngine", new Class[] {}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("getExtensions", new Class[] {}); + methodsThatShouldExist_jdk7.put("getEngineName", new Class[] {}); + methodsThatShouldExist_jdk7.put("getEngineVersion", new Class[] {}); + methodsThatShouldExist_jdk7.put("getLanguageName", new Class[] {}); + methodsThatShouldExist_jdk7.put("getLanguageVersion", new Class[] {}); + methodsThatShouldExist_jdk7.put("getMethodCallSyntax", new Class[] {java.lang.String.class, java.lang.String.class, String[].class}); + methodsThatShouldExist_jdk7.put("getMimeTypes", new Class[] {}); + methodsThatShouldExist_jdk7.put("getNames", new Class[] {}); + methodsThatShouldExist_jdk7.put("getOutputStatement", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getParameter", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getProgram", new Class[] {String[].class}); + methodsThatShouldExist_jdk7.put("getScriptEngine", new Class[] {}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.scriptEngineFactoryClass.getMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaredMethod() + */ + protected void testGetDeclaredMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("getEngineName", new Class[] {}); + methodsThatShouldExist_jdk6.put("getEngineVersion", new Class[] {}); + methodsThatShouldExist_jdk6.put("getExtensions", new Class[] {}); + methodsThatShouldExist_jdk6.put("getMimeTypes", new Class[] {}); + methodsThatShouldExist_jdk6.put("getNames", new Class[] {}); + methodsThatShouldExist_jdk6.put("getLanguageName", new Class[] {}); + methodsThatShouldExist_jdk6.put("getLanguageVersion", new Class[] {}); + methodsThatShouldExist_jdk6.put("getParameter", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getMethodCallSyntax", new Class[] {java.lang.String.class, java.lang.String.class, String[].class}); + methodsThatShouldExist_jdk6.put("getOutputStatement", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getProgram", new Class[] {String[].class}); + methodsThatShouldExist_jdk6.put("getScriptEngine", new Class[] {}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("getExtensions", new Class[] {}); + methodsThatShouldExist_jdk7.put("getEngineName", new Class[] {}); + methodsThatShouldExist_jdk7.put("getEngineVersion", new Class[] {}); + methodsThatShouldExist_jdk7.put("getLanguageName", new Class[] {}); + methodsThatShouldExist_jdk7.put("getLanguageVersion", new Class[] {}); + methodsThatShouldExist_jdk7.put("getMethodCallSyntax", new Class[] {java.lang.String.class, java.lang.String.class, String[].class}); + methodsThatShouldExist_jdk7.put("getMimeTypes", new Class[] {}); + methodsThatShouldExist_jdk7.put("getNames", new Class[] {}); + methodsThatShouldExist_jdk7.put("getOutputStatement", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getParameter", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getProgram", new Class[] {String[].class}); + methodsThatShouldExist_jdk7.put("getScriptEngine", new Class[] {}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.scriptEngineFactoryClass.getDeclaredMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.ScriptEngineFactory.getClass().getAnnotations() */ protected void testGetAnnotations() { From ptisnovs at icedtea.classpath.org Tue Apr 2 01:00:35 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 02 Apr 2013 08:00:35 +0000 Subject: /hg/gfx-test: Four new tests added into BitBltConvolveOp test su... Message-ID: changeset d0577f29f8d0 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=d0577f29f8d0 author: Pavel Tisnovsky date: Tue Apr 02 10:03:50 2013 +0200 Four new tests added into BitBltConvolveOp test suite. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonBitmapOperations.java | 27 ++++++ src/org/gfxtest/testsuites/BitBltConvolveOp.java | 76 ++++++++++++++++++- 3 files changed, 109 insertions(+), 1 deletions(-) diffs (144 lines): diff -r c515da00a2db -r d0577f29f8d0 ChangeLog --- a/ChangeLog Fri Mar 29 11:01:17 2013 +0100 +++ b/ChangeLog Tue Apr 02 10:03:50 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-02 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + Added another helper method into CommonBitmapOperations. + * src/org/gfxtest/testsuites/BitBltConvolveOp.java: + Four new tests added into BitBltConvolveOp test suite. + 2013-03-29 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: diff -r c515da00a2db -r d0577f29f8d0 src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Fri Mar 29 11:01:17 2013 +0100 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Tue Apr 02 10:03:50 2013 +0200 @@ -569,6 +569,33 @@ } /** + * Create new buffered image containing diagonal checker pattern and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param rop + * selected raster operation + */ + public static TestResult doBitBltTestWithDiagonalCheckerImage(TestImage image, Graphics2D graphics2d, int imageType, BufferedImageOp rop) + { + // create new buffered bitmap with given type + // bitmap should contains checker pattern + BufferedImage bufferedImage = ImageFactory.createDiagonalCheckerImage(GRID_SIZE, DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling, no flipping and no cropping and using RescaleOp + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, rop) ? TestResult.PASSED : TestResult.FAILED; + } + + /** * Create new buffered image containing grid pattern and then perform basic BitBlt test. * * @param image diff -r c515da00a2db -r d0577f29f8d0 src/org/gfxtest/testsuites/BitBltConvolveOp.java --- a/src/org/gfxtest/testsuites/BitBltConvolveOp.java Fri Mar 29 11:01:17 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltConvolveOp.java Tue Apr 02 10:03:50 2013 +0200 @@ -133,7 +133,25 @@ { return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, rasterOp); } - + + /** + * Test basic BitBlt operation for buffered image containing diagonal checker pattern + * with type TYPE_3BYTE_BGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltDiagonalCheckerBufferedImageType3ByteRGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithDiagonalCheckerImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, rasterOp); + } + /** * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. * @@ -247,6 +265,62 @@ } /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, noopROP); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundSmoothingKernel2x2ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel2x2ROP); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundSmoothingKernel3x3ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel3x3ROP); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundSmoothingKernel5x5ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel5x5ROP); + } + + /** * Entry point to the test suite. * * @param args not used in this case From jvanek at redhat.com Tue Apr 2 04:20:59 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 02 Apr 2013 13:20:59 +0200 Subject: [rfc][icedtea-web] integrated setupable JVM to plugin Message-ID: <515ABF1B.5090109@redhat.com> This is last part of setup-able jvm. Now integrated to plugin by usage of IcedTeaParseProperties. Also adding fallback (same as is now in plugin) to launchers. To use defualt JRE if custom one is invalid. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: integrationOfCustomJreToPlugin.diff Type: text/x-patch Size: 4489 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130402/78fd0d67/integrationOfCustomJreToPlugin.diff From jvanek at redhat.com Tue Apr 2 06:46:08 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 02 Apr 2013 15:46:08 +0200 Subject: [rfc][icedtea-web] PluginAppletViewer unit tests with test extensions for mocking plugin input&output pipes In-Reply-To: <513E4ACC.8090304@redhat.com> References: <513E4ACC.8090304@redhat.com> Message-ID: <515AE120.7000802@redhat.com> On 03/11/2013 10:21 PM, Adam Domurad wrote: > This is an attempt to enable unit testing of hard-to-test parts of icedtea-web. I'm not big fan of mocking so please do not listen to me 100% But maybe instead of mocking, this patch can be considered as plugin pipes tests:) > It introduces a new class 'PluginPipeMock' that allows the requests coming from the plugin to be > read one-by-one, and the ability to send mocked replies. Can't be also the replies be partially from IcedTeaPlugin.so? Cant you connect through JNI? //maybe it will not be useful at all... > This is possible thanks to that fact that PluginStreamHandler takes arbitrary and > InputStream&OutputStream. > > Attached are unit tests for PluginAppletViewer.eval, PluginAppletViewer.call, > PluginAppletViewer.toString and PluginAppletViewer.JavascriptFinalize. > While the javascript-related functionality is mocked, the responsibilities from the Java-side of > things are tested. > > It may be worth looking into using iostream's on the C++ side and mocking them similarly (for the > unfamiliar, they are also classes that can be inherited from, so a similar approach can be taken). > Even better would be to provide the C++ side with some NPAPI-enabled javascript engine to interface > with so we can fully test the javascript stuff with unit tests. > > ChangeLog: > 2013-XX-XX Adam Domurad > > * Makefile.am > (stamps/test-extensions-compile.stamp): Make plugin classes available > to test extensions > * tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java: > New, helper for doing asynchronous calls with a given timeout. Returns > an exit code. > * tests/test-extensions/sun/applet/PluginPipeMessages.java: New, helper > for verifying plugin messages and getting the reference number. > * tests/netx/unit/sun/applet/PluginAppletViewerTest.java: New, uses > PluginPipeMock to test the javascript requests to the plygin. > * tests/test-extensions/sun/applet/mock/PluginPipeMock.java: New, helper > for getting the plugin requests and mocking the replies. The whole concept is quite complicated.... From need of time-out as separate class across s mocking of input/output messages... Maybe some object which will generate the strings from setted values? I'm aware of PluginPipeMessages, but how generic it is? Can it be more simple? More "user guiding" ? > > test-liveconnect-messages.patch There are sometimes unused imports, please fix. > > > diff --git a/Makefile.am b/Makefile.am > --- a/Makefile.am > +++ b/Makefile.am > @@ -758,7 +758,7 @@ stamps/test-extensions-compile.stamp: st > ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK); > $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ > -d $(TEST_EXTENSIONS_DIR) \ > - -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ > + -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar \ > @test-extensions-source-files.txt && \ > mkdir -p stamps && \ > touch $@ this can go in anyway. > diff --git a/tests/netx/unit/sun/applet/PluginAppletViewerTest.java b/tests/netx/unit/sun/applet/PluginAppletViewerTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/netx/unit/sun/applet/PluginAppletViewerTest.java > @@ -0,0 +1,155 @@ > +package sun.applet; > + > +import static org.junit.Assert.assertEquals; > +import static org.junit.Assert.assertTrue; > +import net.sourceforge.jnlp.AsyncCallWithTimeout; > +import net.sourceforge.jnlp.AsyncCallWithTimeout.ExitStatus; > + > +import org.junit.Test; > + > +import sun.applet.mock.PluginPipeMock; > + > +public class PluginAppletViewerTest { > + > + static private PluginPipeMock installPipeMock() throws Exception { > + AppletSecurityContextManager.addContext(0, > + new PluginAppletSecurityContext(0, false /* no security */)); > + > + PluginPipeMock pipeMock = new PluginPipeMock(); > + > + // TODO: Ensure the thread this creates is stopped quite nasty todo > + PluginStreamHandler streamHandler = new PluginStreamHandler( > + pipeMock.getInputStream(), pipeMock.getOutputStream()); > + PluginAppletViewer.setStreamhandler(streamHandler); > + PluginAppletViewer > + .setPluginCallRequestFactory(new PluginCallRequestFactory()); > + > + streamHandler.startProcessing(); > + > + return pipeMock; > + } > + > + /* > + * Helpers for manipulating the object mapping using to refer to objects in > + * the plugin > + */ > + private static Object getStoredObject(int id) { > + return PluginObjectStore.getInstance().getObject(id); > + } never used, why? Looks quite good test to get the stored object. > + > + private static int storeObject(Object obj) { > + PluginObjectStore.getInstance().reference(obj); > + return PluginObjectStore.getInstance().getIdentifier(obj); > + } > + > + @Test > + public void testJavascriptCall() throws Exception { > + final PluginPipeMock pipeMock = installPipeMock(); > + > + /* JS call parameters */ > + final int jsObjectID = 0; Always 0, can't it be hidden? > + final String callName = "testfunction"; > + final Object[] arguments = { "testargument", 1 }; // Arbitrary objects > + > + /* JS call result */ > + final Object[] returnValue = { null }; > + > + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { > + public void run() { > + returnValue[0] = PluginAppletViewer.call(jsObjectID, callName, > + arguments); > + } > + }); > + > + String message = pipeMock.getNextRequest(); > + > + int reference = PluginPipeMessages.parseAndCheckJSCall(message, > + jsObjectID, callName, arguments); > + > + Object expectedReturn = new Object(); > + pipeMock.sendResponse("context 0 reference " + reference > + + " JavaScriptCall " + storeObject(expectedReturn)); > + So much calls :( > + /* Check if we returned correctly (and have the right value) */ > + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); > + assertEquals(expectedReturn, returnValue[0]); > + } > + > + @Test > + public void testJavascriptEval() throws Exception { > + final PluginPipeMock pipeMock = installPipeMock(); > + > + /* JS eval parameters */ > + final int jsObjectID = 0; > + final String callName = "testfunction"; > + > + /* JS eval result */ > + final Object[] returnValue = { null }; > + > + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { > + public void run() { > + returnValue[0] = PluginAppletViewer.eval(jsObjectID, callName); > + } > + }); > + > + String message = pipeMock.getNextRequest(); > + > + int reference = PluginPipeMessages.parseAndCheckJSEval(message, > + jsObjectID, callName); > + > + Object expectedReturn = new Object(); > + pipeMock.sendResponse("context 0 reference " + reference > + + " JavaScriptEval " + storeObject(expectedReturn)); > + > + /* Check if we returned correctly (and have the right value) */ > + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); > + assertEquals(expectedReturn, returnValue[0]); > + } > + > + @Test > + public void testJavascriptFinalize() throws Exception { > + final PluginPipeMock pipeMock = installPipeMock(); > + > + final int jsObjectID = 0; > + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { > + public void run() { > + PluginAppletViewer.JavaScriptFinalize(jsObjectID); > + } > + }); > + > + String message = pipeMock.getNextRequest(); > + > + int reference = PluginPipeMessages.parseAndCheckJSFinalize(message, > + jsObjectID); > + > + pipeMock.sendResponse("context 0 reference " + reference > + + " JavaScriptFinalize "); > + > + /* Check if we returned correctly (and have the right value) */ > + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); > + } > + > + @Test > + public void testJavascriptToString() throws Exception { > + final PluginPipeMock pipeMock = installPipeMock(); > + > + final int jsObjectID = 0; > + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { > + public void run() { > + PluginAppletViewer.javascriptToString(jsObjectID); > + } > + }); > + > + String message = pipeMock.getNextRequest(); > + > + int reference = PluginPipeMessages.parseAndCheckJSToString(message, > + jsObjectID); > + > + String expectedReturn = "testreturn"; > + pipeMock.sendResponse("context 0 reference " + reference > + + " JavaScriptToString " + storeObject(expectedReturn)); > + > + /* Check if we returned correctly (and have the right value) */ > + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); > + } > +} > \ No newline at end of file Well the best on this patch, is that plugin applet viewr got some coverage by unittests :) And also it is reason why I do not want to let this idea die. > diff --git a/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java b/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java > new file mode 100644 > --- /dev/null > +++ b/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java I don't like this class to much :(( But I agree that this code will be quite repeated... We should try to find soemthing better. (not more generic in this case :) ) > @@ -0,0 +1,75 @@ > +package net.sourceforge.jnlp; > + > +/** > + * Creates an async call with a certain timeout. It takes a runnable and allows > + * joining & querying the exit status. > + * > + * It starts immediately after creation. > + */ > +public class AsyncCallWithTimeout { > + public enum ExitStatus { > + FINISHED_CORRECTLY, THREW_EXCEPTION, TIMED_OUT > + } balh :) Enum for testing the result? I don't like it :( > + > + private Thread handler; > + private Runnable task; > + private long timeout; > + private ExitStatus exitStatus; > + > + public AsyncCallWithTimeout(Runnable task) { > + this(task, 1000); // Default timeout is 1 second > + } > + > + public AsyncCallWithTimeout(Runnable task, long timeout) { > + this.task = task; > + this.timeout = timeout; > + this.handler = new HandlerThread(); > + this.handler.start(); > + } Thread should not be statrted in constructor. Just thinking about delegating the method start. But it can make the things even more messy and hard to understand. > + > + public ExitStatus joinAndGetExitStatus() throws InterruptedException { > + handler.join(); > + return exitStatus; > + } > + > + private class HandlerThread extends Thread { > + @Override > + public void run() { > + // We deduce that we threw an exception if we did not > + // time-out nor complete correctly. > + exitStatus = ExitStatus.THREW_EXCEPTION; > + > + Thread thread = new Thread() { > + @Override > + public void run() { > + try { > + task.run(); > + exitStatus = ExitStatus.FINISHED_CORRECTLY; > + } catch (Exception e) { > + exitStatus = ExitStatus.THREW_EXCEPTION; > + e.printStackTrace(); I would rather see this rethrown out. (Tofind way how to rethrow this is even better then store it) > + } > + handler.interrupt(); // Finish early > + } > + }; > + > + thread.start(); > + > + try { > + Thread.sleep(timeout); > + } catch (InterruptedException e) { > + // Finish early > + return; Some special ExitStatus here? > + } > + > + if (thread.isAlive()) { > + exitStatus = ExitStatus.TIMED_OUT; Maybe throw an exception? > + } > + > + // Make sure the thread is finished > + while (thread.isAlive()) { > + thread.interrupt(); argh.. but sure:( > + } > + } > + } > +} > diff --git a/tests/test-extensions/sun/applet/PluginPipeMessages.java b/tests/test-extensions/sun/applet/PluginPipeMessages.java > new file mode 100644 > --- /dev/null > +++ b/tests/test-extensions/sun/applet/PluginPipeMessages.java > @@ -0,0 +1,95 @@ > +package sun.applet; > + > +import static org.junit.Assert.assertEquals; > +import static org.junit.Assert.assertTrue; > + > +/** > + * Simple utility for parsing & verifying plugin messages. > + * > + * Assumes it is run in a JUnit-test. > + */ > +public class PluginPipeMessages { > + > + private static Object getStoredObject(int id) { > + return PluginObjectStore.getInstance().getObject(id); > + } > + > + /* > + * Asserts that the message is a valid javascript request and returns the > + * reference number > + */ > + private static int parseAndCheckJSMessage(String message, int messageLength, > + String messageType, int contextObjectID) { > + String[] parts = message.split(" "); > + assertEquals(messageLength, parts.length); > + > + assertEquals("instance", parts[0]); > + assertEquals("0", parts[1]); // JSCall's are prefixed with a dummy '0' > + // instance > + assertEquals("reference", parts[2]); > + int reference = Integer.parseInt(parts[3]); > + assertEquals(messageType, parts[4]); > + > + assertEquals(contextObjectID, Integer.parseInt(parts[5])); > + return reference; > + } > + > + /* > + * Asserts that the message is a valid javascript request and returns the > + * reference number > + */ > + private static int parseAndCheckJSMessage(String message, > + String messageType, int contextObjectID, String stringArg, > + Object[] arguments) { > + int expectedLength = 7 + arguments.length; > + int reference = parseAndCheckJSMessage(message, expectedLength, messageType, contextObjectID); > + > + String[] parts = message.split(" "); > + assertEquals(stringArg, getStoredObject(Integer.parseInt(parts[6]))); > + > + for (int i = 0; i < arguments.length; i++) { > + int objectID = Integer.parseInt(parts[7+i]); > + assertEquals(arguments[i], getStoredObject(objectID)); > + } > + > + return reference; > + } > + > + /* > + * Asserts that the message is a valid javascript method call request, and > + * returns the reference number > + */ > + public static int parseAndCheckJSCall(String message, int contextObjectID, > + String callName, Object[] arguments) { > + return parseAndCheckJSMessage(message, "Call", contextObjectID, > + callName, arguments); > + } > + > + /* > + * Asserts that the message is a valid javascript Eval request, and returns > + * the reference number > + */ > + public static int parseAndCheckJSEval(String message, int contextObjectID, > + String evalString) { > + return parseAndCheckJSMessage(message, "Eval", contextObjectID, > + evalString, new Object[] {}); > + } > + > + /* > + * Asserts that the message is a valid javascript Finalize request, and returns > + * the reference number > + */ > + public static int parseAndCheckJSFinalize(String message, int contextObjectID) { > + int expectedLength = 6; > + return parseAndCheckJSMessage(message, expectedLength, "Finalize", contextObjectID); > + } > + > + /* > + * Asserts that the message is a valid javascript ToString request, and returns > + * the reference number > + */ > + public static int parseAndCheckJSToString(String message, int contextObjectID) { > + int expectedLength = 6; > + return parseAndCheckJSMessage(message, expectedLength, "ToString", contextObjectID); > + } Those methods are strongly single-purpose so I would expect them in Tets where are used. Are they about to be reused? . But at least serves as examples of usage of this class. > +} > diff --git a/tests/test-extensions/sun/applet/mock/PluginPipeMock.java b/tests/test-extensions/sun/applet/mock/PluginPipeMock.java > new file mode 100644 > --- /dev/null > +++ b/tests/test-extensions/sun/applet/mock/PluginPipeMock.java > @@ -0,0 +1,120 @@ > +package sun.applet.mock; > + > +import java.io.IOException; > +import java.io.InputStream; > +import java.io.OutputStream; > +import java.io.StringReader; > +import java.util.ArrayDeque; > +import java.util.Deque; > +import java.util.List; > + > +/** > + * Helper for getting an input & output stream for use with PluginStreamHandler. > + * Provides a convenient way of reading the Java requests and sending mocked plugin responses. > + * > + * The handling of these requests should be done on a different thread from the tested method, > + * as icedtea-web will block waiting for a reply after sending a request. > + */ > +public class PluginPipeMock { > + private PluginInputPipeMock inputStream = new PluginInputPipeMock(); > + private PluginOutputPipeMock outputStream = new PluginOutputPipeMock(); > + > + public PluginPipeMock() { > + } > + > + public InputStream getInputStream() { > + return inputStream; > + } > + > + public OutputStream getOutputStream() { > + return outputStream; > + } > + > + public String getNextRequest() { > + return outputStream.getNextRequest(); > + } > + > + public void sendResponse(String response) { > + inputStream.sendReponse(response); > + } > + Do we really need to override so ..complexly both basic streams? Cant be better - more readable - solution found? > + /** > + * Queues up mocked responses and sends them as replies to icedtea-web > + */ > + private class PluginInputPipeMock extends InputStream { > + private StringReader reader = null; > + private Deque responses = new ArrayDeque(); > + > + @Override > + public int read() throws IOException { > + while (true) { > + if (reader == null) { > + reader = new StringReader(getNextResponse() + '\n'); > + } > + int chr = reader.read(); > + if (chr == -1) { > + reader = null; > + continue; > + } > + return chr; > + } > + } > + > + /* Necessary for correct behaviour with BufferedReader! */ > + @Override > + public int read(byte b[], int off, int len) throws IOException { > + if (len == 0) { > + return 0; > + } > + b[off] = (byte)read(); > + return 1; > + } > + > + /* Blocks until we get a line of input. */ > + private String getNextResponse() { > + while (true) { > + synchronized (this) { > + String line = responses.pollFirst(); > + if (line != null) { > + return line; > + } > + } > + } > + } > + > + synchronized void sendReponse(String response) { > + responses.add(response); > + } > + } > + > + /** > + * Splits requests from icedtea-web into lines > + */ > + private class PluginOutputPipeMock extends OutputStream { > + private StringBuilder lineBuffer = new StringBuilder(); > + private Deque lines = new ArrayDeque(); > + > + @Override > + public synchronized void write(int b) throws IOException { > + char chr = (char) b; > + if (chr == '\0') { > + lines.addLast(lineBuffer.toString()); > + lineBuffer.setLength(0); > + } else { > + lineBuffer.append((char) b); > + } > + } > + > + /* Blocks until we get a line of output. */ > + String getNextRequest() { > + while (true) { > + synchronized (this) { > + String line = lines.pollFirst(); > + if (line != null) { > + return line; > + } > + } > + } > + } > + } > +} > Don't take my criticism to hard, this is great stuff and Even if it will not be changed the benefit of having PluginAppletViewer unittested is *excelent*. But really whole solution need huge documentation or little bit better api. As I see above, I'm not sure if I will be able to write simple test with understanding of what I'm doing without deep digging. Or maybe I have deadlocked myself... Looking forward for next round! //me not as much deep insde as should be J. From bugzilla-daemon at icedtea.classpath.org Tue Apr 2 12:44:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 02 Apr 2013 19:44:36 +0000 Subject: [Bug 1204] Archive URL wrongly resolved In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1204 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |georgopoulos.georgios at gmail | |.com --- Comment #5 from Adam Domurad --- *** Bug 347 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130402/28d10fd7/attachment.html From andrew at icedtea.classpath.org Tue Apr 2 14:16:22 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 02 Apr 2013 21:16:22 +0000 Subject: /hg/icedtea: PR1368: Enable debugging information in JDK programs. Message-ID: changeset 53f6588f92fb in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=53f6588f92fb author: Andrew John Hughes date: Tue Apr 02 22:15:37 2013 +0100 PR1368: Enable debugging information in JDK programs. 2013-04-02 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/pr1368-debug_jdk_programs.patch: Enable debugging for all programs as well as libraries. diffstat: ChangeLog | 8 ++++++ Makefile.am | 3 +- patches/pr1368-debug_jdk_programs.patch | 43 +++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletions(-) diffs (75 lines): diff -r 802dc6e27667 -r 53f6588f92fb ChangeLog --- a/ChangeLog Thu Mar 28 21:55:11 2013 +0000 +++ b/ChangeLog Tue Apr 02 22:15:37 2013 +0100 @@ -1,3 +1,11 @@ +2013-04-02 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/pr1368-debug_jdk_programs.patch: + Enable debugging for all programs as well + as libraries. + 2013-03-28 Andrew John Hughes * acinclude.m4: diff -r 802dc6e27667 -r 53f6588f92fb Makefile.am --- a/Makefile.am Thu Mar 28 21:55:11 2013 +0000 +++ b/Makefile.am Tue Apr 02 22:15:37 2013 +0100 @@ -216,7 +216,8 @@ patches/alt-jar.patch \ patches/cacao/arch.patch \ patches/disable-intree-ec.patch \ - patches/pr1368-debug_jdk_libs.patch + patches/pr1368-debug_jdk_libs.patch \ + patches/pr1368-debug_jdk_programs.patch # Conditional patches diff -r 802dc6e27667 -r 53f6588f92fb patches/pr1368-debug_jdk_programs.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr1368-debug_jdk_programs.patch Tue Apr 02 22:15:37 2013 +0100 @@ -0,0 +1,43 @@ +diff --git a/common/makefiles/NativeCompilation.gmk b/common/makefiles/NativeCompilation.gmk +--- openjdk/common/makefiles/NativeCompilation.gmk ++++ openjdk/common/makefiles/NativeCompilation.gmk +@@ -303,11 +303,17 @@ + + ifneq (,$$($1_DEBUG_SYMBOLS)) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) +- # Programs don't get the debug symbols added in the old build. It's not clear if +- # this is intentional. +- ifeq ($$($1_PROGRAM),) ++ ifdef OPENJDK ++ # Always add debug symbols + $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS) + $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS) ++ else ++ # Programs don't get the debug symbols added in the old build. It's not clear if ++ # this is intentional. ++ ifeq ($$($1_PROGRAM),) ++ $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS) ++ $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS) ++ endif + endif + endif + endif +diff --git a/makefiles/CompileLaunchers.gmk b/makefiles/CompileLaunchers.gmk +--- openjdk/jdk/makefiles/CompileLaunchers.gmk ++++ openjdk/jdk/makefiles/CompileLaunchers.gmk +@@ -472,6 +472,7 @@ + -D "JDK_FNAME=unpack200.exe" \ + -D "JDK_INTERNAL_NAME=unpack200" \ + -D "JDK_FTYPE=0x1L",\ ++ DEBUG_SYMBOLS:=true,\ + MANIFEST:=$(JDK_TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest)) + + ifeq ($(OPENJDK_TARGET_OS),windows) +@@ -556,6 +557,7 @@ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX)), \ + OBJECT_DIR:=$(JDK_OUTPUTDIR)/objs/jexec_obj,\ + OUTPUT_DIR:=$(BUILD_JEXEC_DST_DIR),\ ++ DEBUG_SYMBOLS:=true,\ + PROGRAM:=jexec)) + + BUILD_LAUNCHERS += $(BUILD_JEXEC) From bugzilla-daemon at icedtea.classpath.org Tue Apr 2 14:16:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 02 Apr 2013 21:16:32 +0000 Subject: [Bug 1368] [IcedTea8] Ensure debug data is available for all libraries and binaries without redundant files In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1368 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea?cmd=changeset;node=53f6588f92fb author: Andrew John Hughes date: Tue Apr 02 22:15:37 2013 +0100 PR1368: Enable debugging information in JDK programs. 2013-04-02 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/pr1368-debug_jdk_programs.patch: Enable debugging for all programs as well as libraries. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130402/745dd978/attachment.html From ptisnovs at icedtea.classpath.org Wed Apr 3 00:37:40 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 03 Apr 2013 07:37:40 +0000 Subject: /hg/gfx-test: Test suite enhancements src/org/gfxtest/testsuites... Message-ID: changeset 2ac0d3616507 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=2ac0d3616507 author: Pavel Tisnovsky date: Wed Apr 03 09:40:52 2013 +0200 Test suite enhancements src/org/gfxtest/testsuites/BitBltBasicTests. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 1348 +++++++++++---------- 2 files changed, 734 insertions(+), 619 deletions(-) diffs (truncated from 2185 to 500 lines): diff -r d0577f29f8d0 -r 2ac0d3616507 ChangeLog --- a/ChangeLog Tue Apr 02 10:03:50 2013 +0200 +++ b/ChangeLog Wed Apr 03 09:40:52 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-03 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Test suite enhancements. + 2013-04-02 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r d0577f29f8d0 -r 2ac0d3616507 src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Apr 02 10:03:50 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Wed Apr 03 09:40:52 2013 +0200 @@ -169,6 +169,21 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithEmptyImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. * * @param image @@ -184,21 +199,6 @@ } /** - * Test basic BitBlt operation for empty buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltEmptyBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithEmptyImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. * * @param image @@ -229,6 +229,21 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithEmptyImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_USHORT_565_RGB. * * @param image @@ -244,21 +259,6 @@ } /** - * Test basic BitBlt operation for empty buffered image with type TYPE_USHORT_555_RGB. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltEmptyBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithEmptyImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); - } - - /** * Test basic BitBlt operation for empty buffered image with type TYPE_USHORT_GRAY. * * @param image @@ -364,6 +364,21 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. * * @param image @@ -379,21 +394,6 @@ } /** - * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltCheckerBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. * * @param image @@ -424,6 +424,21 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. * * @param image @@ -439,21 +454,6 @@ } /** - * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltCheckerBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); - } - - /** * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. * * @param image @@ -559,6 +559,21 @@ } /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithDiagonalCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_RGB. * * @param image @@ -574,21 +589,6 @@ } /** - * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithDiagonalCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_ARGB. * * @param image @@ -619,6 +619,21 @@ } /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithDiagonalCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_USHORT_565_RGB. * * @param image @@ -634,21 +649,6 @@ } /** - * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_USHORT_555_RGB. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltDiagonalCheckerBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithDiagonalCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); - } - - /** * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_USHORT_GRAY. * * @param image @@ -754,6 +754,21 @@ } /** + * Test basic BitBlt operation for grid buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for grid buffered image with type TYPE_INT_RGB. * * @param image @@ -769,21 +784,6 @@ } /** - * Test basic BitBlt operation for grid buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltGridBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for grid buffered image with type TYPE_INT_ARGB. * * @param image @@ -814,6 +814,21 @@ } /** + * Test basic BitBlt operation for grid buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** * Test basic BitBlt operation for grid buffered image with type TYPE_USHORT_565_RGB. * * @param image @@ -829,21 +844,6 @@ } /** - * Test basic BitBlt operation for grid buffered image with type TYPE_USHORT_555_RGB. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltGridBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); - } - - /** * Test basic BitBlt operation for grid buffered image with type TYPE_USHORT_GRAY. * * @param image @@ -950,6 +950,21 @@ } /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithDiagonalGridImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_INT_RGB. * * @param image @@ -965,21 +980,6 @@ } /** - * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltDiagonalGridBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithDiagonalGridImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_INT_ARGB. * * @param image @@ -1010,6 +1010,21 @@ } /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithDiagonalGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_USHORT_565_RGB. * * @param image @@ -1025,21 +1040,6 @@ } /** - * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_USHORT_555_RGB. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltDiagonalGridBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithDiagonalGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); - } - - /** * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_USHORT_GRAY. * * @param image @@ -1146,6 +1146,21 @@ } /** + * Test basic BitBlt operation for horizontal stripes buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalStripesBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalStripesImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** * Test basic BitBlt operation for horizontal stripes buffered image with type TYPE_INT_RGB. * * @param image @@ -1161,21 +1176,6 @@ } /** - * Test basic BitBlt operation for horizontal stripes buffered image with type TYPE_INT_BGR. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltHorizontalStripesBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithHorizontalStripesImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); - } - - /** * Test basic BitBlt operation for horizontal stripes buffered image with type TYPE_INT_ARGB. * * @param image @@ -1206,6 +1206,21 @@ From ptisnovs at icedtea.classpath.org Wed Apr 3 00:54:36 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 03 Apr 2013 07:54:36 +0000 Subject: /hg/rhino-tests: Added three tests into the ScriptEngineManagerC... Message-ID: changeset 102a062e2ee2 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=102a062e2ee2 author: Pavel Tisnovsky date: Wed Apr 03 09:57:50 2013 +0200 Added three tests into the ScriptEngineManagerClassTest: getDeclaredField, getMethod and getDeclaredMethod. diffstat: ChangeLog | 6 + src/org/RhinoTests/ScriptEngineManagerClassTest.java | 196 ++++++++++++++++++- 2 files changed, 197 insertions(+), 5 deletions(-) diffs (247 lines): diff -r 3db7d0c4c031 -r 102a062e2ee2 ChangeLog --- a/ChangeLog Tue Apr 02 09:49:53 2013 +0200 +++ b/ChangeLog Wed Apr 03 09:57:50 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-03 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Added three tests into the ScriptEngineManagerClassTest: + getDeclaredField, getMethod and getDeclaredMethod. + 2013-04-02 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: diff -r 3db7d0c4c031 -r 102a062e2ee2 src/org/RhinoTests/ScriptEngineManagerClassTest.java --- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Tue Apr 02 09:49:53 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Wed Apr 03 09:57:50 2013 +0200 @@ -445,8 +445,8 @@ * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredFields() */ protected void testGetDeclaredFields() { - // following fields should be declared - final String[] fieldsThatShouldExists = { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { "private static final boolean javax.script.ScriptEngineManager.DEBUG", "private java.util.HashSet javax.script.ScriptEngineManager.engineSpis", "private java.util.HashMap javax.script.ScriptEngineManager.nameAssociations", @@ -454,6 +454,19 @@ "private java.util.HashMap javax.script.ScriptEngineManager.mimeTypeAssociations", "private javax.script.Bindings javax.script.ScriptEngineManager.globalScope", }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + "private static final boolean javax.script.ScriptEngineManager.DEBUG", + "private java.util.HashSet javax.script.ScriptEngineManager.engineSpis", + "private java.util.HashMap javax.script.ScriptEngineManager.nameAssociations", + "private java.util.HashMap javax.script.ScriptEngineManager.extensionAssociations", + "private java.util.HashMap javax.script.ScriptEngineManager.mimeTypeAssociations", + "private javax.script.Bindings javax.script.ScriptEngineManager.globalScope", + }; + + // get the right array of field signatures + // following fields should be declared + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get all declared fields Field[] declaredFields = this.scriptEngineManagerClass.getDeclaredFields(); // and transform the array into a list of field names @@ -462,9 +475,9 @@ declaredFieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { - assertTrue(declaredFieldsAsString.contains(fieldThatShouldExists), - "field " + fieldThatShouldExists + " not found"); + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + assertTrue(declaredFieldsAsString.contains(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); } } @@ -496,6 +509,45 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredField() + */ + protected void testGetDeclaredField() { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { + "DEBUG", + "engineSpis", + "nameAssociations", + "extensionAssociations", + "mimeTypeAssociations", + "globalScope", + }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + "DEBUG", + "engineSpis", + "nameAssociations", + "extensionAssociations", + "mimeTypeAssociations", + "globalScope", + }; + + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + + // check if all required declared fields really exists + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + try { + Field field = this.scriptEngineManagerClass.getDeclaredField(declaredFieldThatShouldExists); + String fieldName = field.getName(); + assertTrue(fieldName.equals(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.ScriptEngineManager.getClass().getMethods() */ protected void testGetMethods() { @@ -622,6 +674,140 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().getMethod() + */ + protected void testGetMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("setBindings", new Class[] {javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("getBindings", new Class[] {}); + methodsThatShouldExist_jdk6.put("getEngineByName", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineByExtension", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineByMimeType", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineFactories", new Class[] {}); + methodsThatShouldExist_jdk6.put("registerEngineName", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("registerEngineMimeType", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("registerEngineExtension", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {long.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {long.class, int.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {}); + methodsThatShouldExist_jdk6.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk6.put("getClass", new Class[] {}); + methodsThatShouldExist_jdk6.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("toString", new Class[] {}); + methodsThatShouldExist_jdk6.put("notify", new Class[] {}); + methodsThatShouldExist_jdk6.put("notifyAll", new Class[] {}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("getBindings", new Class[] {}); + methodsThatShouldExist_jdk7.put("setBindings", new Class[] {javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("getEngineByExtension", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getEngineByMimeType", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getEngineByName", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getEngineFactories", new Class[] {}); + methodsThatShouldExist_jdk7.put("registerEngineExtension", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk7.put("registerEngineMimeType", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk7.put("registerEngineName", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {long.class, int.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {long.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {}); + methodsThatShouldExist_jdk7.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("toString", new Class[] {}); + methodsThatShouldExist_jdk7.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk7.put("getClass", new Class[] {}); + methodsThatShouldExist_jdk7.put("notify", new Class[] {}); + methodsThatShouldExist_jdk7.put("notifyAll", new Class[] {}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.scriptEngineManagerClass.getMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredMethod() + */ + protected void testGetDeclaredMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("getCallerClassLoader", new Class[] {}); + methodsThatShouldExist_jdk6.put("isAncestor", new Class[] {java.lang.ClassLoader.class, java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk6.put("access$000", new Class[] {javax.script.ScriptEngineManager.class, java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk6.put("init", new Class[] {java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk6.put("setBindings", new Class[] {javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("getBindings", new Class[] {}); + methodsThatShouldExist_jdk6.put("initEngines", new Class[] {java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk6.put("getEngineByName", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineByExtension", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineByMimeType", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getEngineFactories", new Class[] {}); + methodsThatShouldExist_jdk6.put("registerEngineName", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("registerEngineMimeType", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("registerEngineExtension", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk6.put("canCallerAccessLoader", new Class[] {java.lang.ClassLoader.class}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("getCallerClassLoader", new Class[] {}); + methodsThatShouldExist_jdk7.put("isAncestor", new Class[] {java.lang.ClassLoader.class, java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk7.put("access$000", new Class[] {javax.script.ScriptEngineManager.class, java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk7.put("init", new Class[] {java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk7.put("getBindings", new Class[] {}); + methodsThatShouldExist_jdk7.put("setBindings", new Class[] {javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("getEngineByExtension", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("canCallerAccessLoader", new Class[] {java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk7.put("getEngineByMimeType", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getEngineByName", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getEngineFactories", new Class[] {}); + methodsThatShouldExist_jdk7.put("initEngines", new Class[] {java.lang.ClassLoader.class}); + methodsThatShouldExist_jdk7.put("registerEngineExtension", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk7.put("registerEngineMimeType", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + methodsThatShouldExist_jdk7.put("registerEngineName", new Class[] {java.lang.String.class, javax.script.ScriptEngineFactory.class}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.scriptEngineManagerClass.getDeclaredMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.ScriptEngineManager.getClass().getAnnotations() */ protected void testGetAnnotations() { From jvanek at redhat.com Wed Apr 3 05:58:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 03 Apr 2013 14:58:38 +0200 Subject: [rfc][icedtea-web] KnownToFailInBrowsers annotation patch In-Reply-To: <51472E9D.2040305@redhat.com> References: <5140A5B0.6080008@redhat.com> <5140AD15.8090606@redhat.com> <51472E9D.2040305@redhat.com> Message-ID: <515C277E.1040102@redhat.com> I think this can go in as it is. Just minor nits which you can apply before push. Please also apply the new annotation where valid (as new changeset). you can push this without review. On 03/18/2013 04:11 PM, Jana Fabrikova wrote: > Hi Jiri and Adam, > > as Jiri suggested I have modified the annotation (this time no new annotation KnownToFailInBrowsers, > only a new optional parameter Browsers[] failsIn() added to the old KnownToFail annotation). > > I have modified the JunitLikeXmlOutputListener and LessVerboseTextListener also, they identify the > combinations of testcase+browser that are declared to fail and write known-to-fail="true" into the > xml file, which is then processed by the same xslt as usual. > > I have run one reproducer (modification of JToJSEval) in opera, midori and epiphany with a > combination of failing/passing testcases. > > The results in terminal were (screenshot1): > > -For the testcase that really failed in midori and epiphany but was annotated with > @KnownToFail(failsIn={}) : > > Passed: JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - opera > - WARNING This test is known to fail, but have passed! > FAILED: AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - midori(JToJSEvalTest) JToJSEval: the J > and JS outputs are not equal! > - This test is known to fail > FAILED: AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - epiphany(JToJSEvalTest) JToJSEval: the J > and JS outputs are not equal! > - This test is known to fail > > -For the testcase that really failed in midori and epiphany but was annotated with @KnownToFail : > > Passed: JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - opera > - WARNING This test is known to fail, but have passed! > FAILED: AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - midori(JToJSEvalTest) JToJSEval: > the J and JS outputs are not equal! > - This test is known to fail > FAILED: AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - epiphany(JToJSEvalTest) > JToJSEval: the J and JS outputs are not equal! > - This test is known to fail > > -For the testcase that really failed in midori and epiphany and was annotated with > @KnownToFail(failsIn={Browsers.midori, Browsers.epiphany}) > > Passed: JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - opera > FAILED: AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - midori(JToJSEvalTest) JToJSEval: the J and > JS outputs are not equal! > - This test is known to fail > FAILED: AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - epiphany(JToJSEvalTest) JToJSEval: the J > and JS outputs are not equal! > - This test is known to fail > > -For the testcase that really failed in opera (only because opera crashed, it does not normally > fail) and was not annotated: > > FAILED: AppletJToJSEval_typeof_Test - opera(JToJSEvalTest) JToJSEvalTest stdout should contain > JToJSEval applet initialized. but it didnt. > Passed: JToJSEvalTest.AppletJToJSEval_typeof_Test - midori > Passed: JToJSEvalTest.AppletJToJSEval_typeof_Test - epiphany > > -For the testcase that passes in all browsers and was not annotated: > > Passed: JToJSEvalTest.AppletJToJSEval_location_Test - opera > Passed: JToJSEvalTest.AppletJToJSEval_location_Test - midori > Passed: JToJSEvalTest.AppletJToJSEval_location_Test - epiphany > > > -Total summary: > > Total tests run: 15; From those : 8 known to fail > Test known to fail: passed: 2; failed: 6; ignored: 0 > Test results: passed: 8; failed: 7; ignored: 0 > > > The results in html are attached as index_reproducers.html and screenshot2). > > > Please see the attached patch, > cheers, > Jana > > > On 03/13/2013 05:45 PM, Jiri Vanek wrote: >> On 03/13/2013 05:13 PM, Jana Fabrikova wrote: >>> Hello, >>> >>> I am sending for your consideration a patch that introduces the >>> @KnownToFailInBrowsers annotation, which may be useful in some of the >>> reproducers (namely passing arrays from JS->J does work in opera and >>> firefox and does not work in google-chrome, chromium, midori and >>> epiphany, and i think it is more problem of the browsers than of >>> icedtea-web plugin). >>> >>> The annotation is detected in >>> junit-runner/JunitLikeXmlOutputListener.java and >>> junit-runner/LessVerboseTextListener.java and reflected in the console >>> and xml output of run-netx-dist-tests. >>> >>> Cheers, >>> Jana >>> >>> 2013-03-13 Jana Fabrikova >>> >>> * >>> /tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFailInBrowsers.java >>> >>> the implementation of new annotation, which has an array of >>> browsers of type Browsers[] named failsIn >>> >>> * /tests/junit-runner/JunitLikeXmlOutputListener.java >>> in method (testDone) the testcases that are known to fail in >>> current browser are detected in addition to the tests that are >>> k2f in all browsers >>> >>> * /tests/junit-runner/LessVerboseTextListener.java >>> added method (getK2FinB) reading the annotion, >>> in method (printK2F) the testcases that are known to fail in >>> current browser are detected in addition to the tests that are >>> k2f in all browsers >> >> hmhm... I'm not sure If new type of annotation is needed. I would prefer >> extension of KnownTofail as it is. >> Now it have no parameter. In your new implementation it will have >> optional Browsers[] failsIn(). If it will be null/empty, then it will >> behave as we are used now. Otherwise it will be more sophisticated >> What do you think? >> >> For the implementation itself - uless I missed something, I'm terribly >> missing the browser recognition handling in xml/plaintext generation >> and in xslt sheet. >> Also some example usage of annotaion would be nice and as a top candy >> the screenshots of outputs can be attached. >> >> >> J. > > > annotk2f-version2.patch > > > diff --git a/tests/junit-runner/JunitLikeXmlOutputListener.java b/tests/junit-runner/JunitLikeXmlOutputListener.java > --- a/tests/junit-runner/JunitLikeXmlOutputListener.java > +++ b/tests/junit-runner/JunitLikeXmlOutputListener.java > @@ -20,10 +20,12 @@ > import java.util.Map; > import java.util.Map.Entry; > import java.util.Set; > +import java.util.Arrays; > import java.util.concurrent.TimeUnit; > import net.sourceforge.jnlp.annotations.Bug; > import net.sourceforge.jnlp.annotations.KnownToFail; > import net.sourceforge.jnlp.annotations.Remote; > +import net.sourceforge.jnlp.browsertesting.Browsers; > > > import org.junit.internal.JUnitSystem; > @@ -201,17 +203,30 @@ > testcaseAtts.put(TEST_IGNORED_ATTRIBUTE, Boolean.TRUE.toString()); > } > KnownToFail k2f = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), KnownToFail.class); > + boolean knownToFailInThisBrowser = false; Is this name correct? I think it mark that test fails. No matter if "for all" or "for one browser". So maybe better name? > Remote remote = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), Remote.class); > - if (k2f != null) { > - testcaseAtts.put(K2F, Boolean.TRUE.toString()); > - } > + if (k2f != null) { > + //determine if k2f in the current browser > + > + Browsers[] br = k2f.failsIn(); > + if(0 == br.length){//the KnownToFail annotation without optional parameter > + knownToFailInThisBrowser = true; > + }else{ > + for(Browsers b : br){ > + if(description.toString().contains(b.toString())){ > + knownToFailInThisBrowser = true; > + } > + } > + } > + } > + if( knownToFailInThisBrowser ) testcaseAtts.put(K2F, Boolean.TRUE.toString()); > if (remote != null) { > testcaseAtts.put(REMOTE, Boolean.TRUE.toString()); > > } > openElement(TEST_ELEMENT, testcaseAtts); > if (testFailed != null) { > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > failedK2F++; > } > Map errorAtts = new HashMap(3); > @@ -226,7 +241,7 @@ > > writeElement(TEST_ERROR_ELEMENT, testFailed.getTrace(), errorAtts); > } else { > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > if (ignored) { > ignoredK2F++; > } else { > @@ -265,25 +280,25 @@ > classStats.put(description.getClassName(), classStat); > } > classStat.total++; > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > classStat.totalK2F++; > } > classStat.time += testTime; > if (testFailed == null) { > if (ignored) { > classStat.ignored++; > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > classStat.ignoredK2F++; > } > } else { > classStat.passed++; > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > classStat.passedK2F++; > } > } > } else { > classStat.failed++; > - if (k2f != null) { > + if (knownToFailInThisBrowser) { > classStat.failedK2F++; > } > } > diff --git a/tests/junit-runner/LessVerboseTextListener.java b/tests/junit-runner/LessVerboseTextListener.java > --- a/tests/junit-runner/LessVerboseTextListener.java > +++ b/tests/junit-runner/LessVerboseTextListener.java > @@ -10,6 +10,7 @@ > import java.lang.reflect.Method; > import net.sourceforge.jnlp.annotations.KnownToFail; > import net.sourceforge.jnlp.annotations.Remote; > +import net.sourceforge.jnlp.browsertesting.Browsers; > > import org.junit.internal.JUnitSystem; > import org.junit.runner.Description; > @@ -74,24 +75,39 @@ > private void printK2F(PrintStream writer, Boolean failed, Description description) { > try { > KnownToFail k2f = getK2F(description); > - if (k2f != null) { > - totalK2F++; > - if (failed != null) { > - if (failed) { > - failedK2F++; > - } else { > - passedK2F++; > - } > - } else { > - ignoredK2F++; > - } > - if (failed != null && !failed) { > - writer.println(" - WARNING This test is known to fail, but have passed!"); > - } else { > - writer.println(" - This test is known to fail"); > - } > + boolean knownToFailInThisBrowser = false; again. > + if (k2f != null){ > + //determine if k2f in the current browser > + Browsers[] br = k2f.failsIn(); > + if(0 == br.length){ //@KnownToFail with default optional parameter failsIn={} > + knownToFailInThisBrowser = true; > + }else{ > + for(Browsers b : br){ > + if(description.toString().contains(b.toString())){ > + knownToFailInThisBrowser = true; > + } > + } > + } > } > > + if( knownToFailInThisBrowser ){ > + totalK2F++; > + if (failed != null) { > + if (failed) { > + failedK2F++; > + } else { > + passedK2F++; > + } > + } else { > + ignoredK2F++; > + } > + if (failed != null && !failed) { > + writer.println(" - WARNING This test is known to fail, but have passed!"); > + } else { > + writer.println(" - This test is known to fail"); > + } > + } > + > > } catch (Exception ex) { > ex.printStackTrace(); > > diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java > --- a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java > +++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java > @@ -41,6 +41,7 @@ > import java.lang.annotation.Retention; > import java.lang.annotation.RetentionPolicy; > import java.lang.annotation.Target; > +import net.sourceforge.jnlp.browsertesting.Browsers; > > /** > *

> @@ -52,10 +53,15 @@ > * This annotation is meant for adding tests for bugs before the fix is > * implemented. > *

> + *

> + * The meaning of optional parameter failsIn is either a list of > + * browsers where the test fails, or a default value - an empty array {}, > + * default value means that the test fails always. > + *

> */ > > @Target({ElementType.METHOD,ElementType.TYPE}) > @Retention(RetentionPolicy.RUNTIME) > public @interface KnownToFail { > - > + public Browsers[] failsIn() default {}; > } > > > index_reproducers.html > > > Date: > > Mon Mar 18 15:35:34 CET 2013 > > > Result: (88s) > > > In brackets are KnownToFail values if any > > TOTAL: > 15 (8) > passed: > 8 (2) > failed: > 7 (6) > ignored: > 0 > > > Classes: show/hide > > JToJSEvalTest (88272ms): > > > TOTAL: > 15 (8) > passed: > 8 (2) > failed: > 7 (6) > ignored: > 0 > > ---------------------------------------------------------------------------------------------------- > > > Individual results: > > NoneTraceAllTraces > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - opera > PASSED (4.9260s) *- This test is known to fail* > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - midori > FAILED (4.5260s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - epiphany > FAILED (4.5160s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - opera > PASSED (5.1110s) *- This test is known to fail* > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - midori > FAILED (4.7250s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > > - > AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - epiphany > FAILED (4.7180s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > > - > AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - opera > PASSED (5.3160s) > JToJSEvalTest > > - > AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - midori > FAILED (4.5170s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > > - > AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - epiphany > FAILED (4.6170s) *- This test is known to fail* > java.lang.AssertionError - JToJSEval: the J and JS outputs are not equal!StackTrace > > java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > - > AppletJToJSEval_typeof_Test - opera > FAILED (21.6470s) > java.lang.AssertionError - JToJSEvalTest stdout should contain JToJSEval applet initialized. but it > didnt.StackTrace > > java.lang.AssertionError: JToJSEvalTest stdout should contain JToJSEval applet initialized. but it didnt. > at org.junit.Assert.fail(Assert.java:91) > at org.junit.Assert.assertTrue(Assert.java:43) > at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:68) > at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) > at JToJSEvalTest.AppletJToJSEval_typeof_Test(JToJSEvalTest.java:125) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) > at net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.junit.runner.JUnitCore.run(JUnitCore.java:117) > at CommandLine.runMain(CommandLine.java:49) > at CommandLine.runMainAndExit(CommandLine.java:28) > at CommandLine.main(CommandLine.java:24) > > JToJSEvalTest > - > AppletJToJSEval_typeof_Test - midori > PASSED (4.5120s) > JToJSEvalTest > - > AppletJToJSEval_typeof_Test - epiphany > PASSED (4.6080s) > JToJSEvalTest > - > AppletJToJSEval_location_Test - opera > PASSED (5.1070s) > JToJSEvalTest > - > AppletJToJSEval_location_Test - midori > PASSED (4.7130s) > JToJSEvalTest > - > AppletJToJSEval_location_Test - epiphany > PASSED (4.7130s) > STD-OUT - Show/hide > > @sout@ > > STD-ERR - Show/hide > > @serr@ > > > screenshot1.png > > > > screenshot2.png > > So assuming this apply, build, and output is correct, and knwntofail for browser are really errors on browser side, thanx and go on :) J. From adomurad at redhat.com Wed Apr 3 06:16:48 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 03 Apr 2013 09:16:48 -0400 Subject: [rfc][icedtea-web] integrated setupable JVM to plugin In-Reply-To: <515ABF1B.5090109@redhat.com> References: <515ABF1B.5090109@redhat.com> Message-ID: <515C2BC0.40304@redhat.com> On 04/02/2013 07:20 AM, Jiri Vanek wrote: > This is last part of setup-able jvm. Now integrated to plugin by > usage of IcedTeaParseProperties. > Also adding fallback (same as is now in plugin) to launchers. To use > defualt JRE if custom one is invalid. > > > J. > diff -r 39e2d8f2ba60 launcher/itweb-settings.in > --- a/launcher/itweb-settings.in Tue Apr 02 09:45:25 2013 +0200 > +++ b/launcher/itweb-settings.in Tue Apr 02 12:52:22 2013 +0200 > @@ -7,13 +7,18 @@ > BINARY_LOCATION=@ITWEB_SETTINGS_BIN_LOCATION@ > PROGRAM_NAME=itweb-settings > > -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" > +PROPERTY_NAME=deployment.jre.dir > +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" > CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties > 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` > if [ "x$CUSTOM_JRE" = "x" ] ; then > CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" > /etc/.java/.deploy/deployment.properties 2>/dev/null | sed > "s/$CUSTOM_JRE_REGEX//g"` > fi; > if [ "x$CUSTOM_JRE" != "x" ] ; then > - JAVA=$CUSTOM_JRE/bin/java > + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" ] ; then > + JAVA=$CUSTOM_JRE/bin/java > + else > + echo "your custom JRE $CUSTOM_JRE read from deployment.properties > under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default > ($JAVA) in attempt to start. Please fix this" [nit] I'd start with a capital & end with a period > + fi > fi; > > ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \ > diff -r 39e2d8f2ba60 launcher/javaws.in > --- a/launcher/javaws.in Tue Apr 02 09:45:25 2013 +0200 > +++ b/launcher/javaws.in Tue Apr 02 12:52:22 2013 +0200 > @@ -1,4 +1,4 @@ > -#!/bin/bash > +#!/bin/sh > > JAVA=@JAVA@ > LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@ > @@ -9,14 +9,19 @@ > PROGRAM_NAME=javaws > CP=@JRE@/lib/rt.jar > > -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" > +PROPERTY_NAME=deployment.jre.dir > +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" > CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties > 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` > if [ "x$CUSTOM_JRE" = "x" ] ; then > CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" > /etc/.java/.deploy/deployment.properties 2>/dev/null | sed > "s/$CUSTOM_JRE_REGEX//g"` > fi; > if [ "x$CUSTOM_JRE" != "x" ] ; then > - JAVA=$CUSTOM_JRE/bin/java > - CP=$CUSTOM_JRE/lib/rt.jar > + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" -a -f > "$CUSTOM_JRE/lib/rt.jar" ] ; then > + JAVA=$CUSTOM_JRE/bin/java > + CP=$CUSTOM_JRE/lib/rt.jar > + else > + echo "your custom JRE $CUSTOM_JRE read from deployment.properties > under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default > ($JAVA, $CP) in attempt to start. Please fix this" [nit] I'd start with a capital & end with a period > + fi > fi; > > JAVA_ARGS=( ) > diff -r 39e2d8f2ba60 plugin/icedteanp/IcedTeaNPPlugin.cc > --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Apr 02 09:45:25 2013 > +0200 > +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Apr 02 12:52:22 2013 > +0200 > @@ -48,6 +48,9 @@ > #include > #include > > +//IcedTea-plugin includes > +#include "IcedTeaPluginUtils.h" > +#include "IcedTeaParseProperties.h" > // Liveconnect extension > #include "IcedTeaScriptablePluginObject.h" > #include "IcedTeaNPPlugin.h" > @@ -74,6 +77,7 @@ > #include > #endif > > + > // Error reporting macros. > #define PLUGIN_ERROR(message) \ > g_printerr ("%s:%d: thread %p: Error: %s\n", __FILE__, __LINE__, \ > @@ -287,13 +291,29 @@ > #endif > > static std::string get_plugin_executable(){ > - return std::string (appletviewer_default_executable); > - > + std::string custom_jre = ""; [nit] = "" is redundant and may cause string allocation > + bool custom_jre_defined = find_custom_jre(custom_jre); > + if (custom_jre_defined) { > + if > (IcedTeaPluginUtilities::file_exists(custom_jre+"/bin/java")){ > + return custom_jre+"/bin/java"; > + } else { > + PLUGIN_DEBUG("Your custom jre (/bin/java check) %s > is not valid. Please fix %s in your %s. In attempt to run using > default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), > default_file_ITW_deploy_props_name.c_str()); I strongly think this should be logged even if they aren't debugging the plugin. > + } > + } > + return std::string (appletviewer_default_executable); [nit] you can drop the std::string call here. > } > > static std::string get_plugin_rt_jar(){ > - return std::string (appletviewer_default_rtjar); > - > + std::string custom_jre = ""; [nit] = "" is redundant and may cause string allocation > + bool custom_jre_defined = find_custom_jre(custom_jre); > + if (custom_jre_defined) { > + if > (IcedTeaPluginUtilities::file_exists(custom_jre+"/lib/rt.jar")){ > + return custom_jre+"/lib/rt.jar"; > + } else { > + PLUGIN_DEBUG("Your custom jre (/lib/rt.jar check) > %s is not valid. Please fix %s in your %s. In attempt to run using > default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), > default_file_ITW_deploy_props_name.c_str()); I strongly think this should be logged even if they aren't debugging the plugin. > + } > + } > + return std::string (appletviewer_default_rtjar); [nit] you can drop the std::string call here. > > } > > Otherwise looks fine to me. Thanks so much for doing this! -Adam From adomurad at redhat.com Wed Apr 3 06:20:47 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 03 Apr 2013 09:20:47 -0400 Subject: [rfc][icedtea-web] dialogue for set jre dir In-Reply-To: <5155B7FC.1050602@redhat.com> References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com> <514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com> Message-ID: <515C2CAF.1010408@redhat.com> On 03/29/2013 11:49 AM, Jiri Vanek wrote: > On 03/21/2013 04:27 PM, Adam Domurad wrote: >> On 03/20/2013 06:54 AM, Jiri Vanek wrote: >>> >>> ping? >>> >>> -------- Original Message -------- >>> Subject: [rfc][icedtea-web] dialogue for set jre dir >>> Date: Fri, 22 Feb 2013 15:01:17 +0100 >>> From: Jiri Vanek >>> To: IcedTea Distro List >>> >>> This is only java part of "make-jredir-configurable after install effort" >>> To jvm settings pane it adds text-field to allow to write path to jre, whih is then saved to >>> properties. There is also button which fill launch jfilechooser (with correct default location) to >>> allow to choose the jre directory >>> And one funny button to validate his effort (with funny colourful messages;). As if the user will >>> add wrong location, he will not even start itw-settings (later). >>> >>> >>> J. >>> >>> >> >> It looked quite well done. I liked the visual validation a lot. General comments: >> >> - We should validate as soon as the user picks a path, and we should not let the user accept a >> configuration that couldn't possibly work. (itweb-settings will not be able to save them from a >> broken jre dir, correct?) > Ok. Although I don like it, added (added checkbox to disable type-time validation) >> - I would like a message here stating that misconfiguration of the JRE will require manual editing >> of the properties file. > God idea. added. Can also cancel closing of dialogue with invalid value. >> >> - I liked the colourful checking, however note that as it stands we currently only support >> *IcedTea*, > > Not true. We support OpenJdk. Discussed on IRC, we don't for the plugin. But at least javaws, which is better than I expected (I guess NetxPanel can be in the jar as long as it's never used?). >>> + >>> + private String resetValidationResult(final String value, String result, String headerKey) { >>> + return "" + Translator.R(headerKey) + ":
"+value+"
"+result+"
>> />"; >>> + } >>> } >> >> >> The Swing code looked otherwise fine to me, although I tend to not like to stare at Swing code too >> long :-). >>> diff -r 125c427b7a42 netx/net/sourceforge/jnlp/resources/Messages.properties >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Feb 14 15:48:21 2013 -0500 >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Feb 22 09:45:06 2013 +0100 >>> @@ -301,6 +301,25 @@ >>> CPDebuggingDescription=Enable options here to help with debugging >>> CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. >>> CPJVMPluginArguments=Set JVM arguments for plugin. >>> +CPJVMPluginExec=Set JVM for icedtea-web >> >> The difference between 'plugin' and 'icedtea-web' setting may not be clear, I'd like to see 'Set JVM >> for icedtea-web (plugin and javaws)' > > If you are refering to CPJVMPluginExec and CPJVMPluginExecValidationthen you are right. > > If you are referring to CPJVMPluginArguments, then I'm afraid javaws do not read this. But should! > Worthy of another, simple patch? > Or add CPJVMJavawsArguments ? >>> +CPJVMPluginExecValidation=Validate JVM for icedtea-web >>> +CPJVMPluginSelectExec=Select JVM for icedtea-web >>> +CPJVMnone=None validation result for >> >> I'm sorry, I have no clue what 'None validation result' means or why it is needed. From when I saw >> it occur, it seems nothing be outputted would suffice. > > It is used whn there is no valid result (eg erro during processing or no invocation of validation) > kept. I saw it occur just from switching to the JVM settings panel inside ITW-settings, I think. >>> +CPJVMvalidated=Validation result for >>> +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used >>> +CPJVMnotLaunched=Error, process was not launched, see console outputs for more info >> >> s/outputs/output/ >>> +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java >>> is not set correctly >> >> It's a nit, but I'd like these all to end with periods. Especially the messages with more than one >> sentence. >>> +CPJVMopenJdkFound=Excellent, OpenJDK detected >>> +CPJVMoracleFound=Great, Oracle java detected >>> +CPJVMibmFound=Good, IBM java detected >>> +CPJVMgijFound=Warning, gij detected >> >> These messages are a little too 'funny' IMHO. Anyway as stated, we should have exactly one correct >> state, 'Valid JRE, IcedTea was successfully detected'. You should really just have one message >> 'Valid JRE, {0} was successfully detected', to ease translation efforts. GIJ never got past java5, >> there's no need to do anything but fail on it (although we can say why). > > Not mentioned to be funny. Little bit reworded and hints leading to OpenJDK added. General comments: - I like the validate-as-you-type :-) [nit], the validate button could be greyed out when you are on 'auto-validate' mode - I got the error "java.io.IOException: Cannot run program "/usr/java/latest/bi/bin/java"" when validating Oracle JDK. Not sure why. It correctly said my directory (/usr/java/latest/) had bin/java, but got that error while running it. Patch comments: > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/Defaults.java > --- a/netx/net/sourceforge/jnlp/config/Defaults.java Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Fri Mar 29 16:49:02 2013 +0100 > @@ -391,6 +391,12 @@ > DeploymentConfiguration.KEY_SECURITY_LEVEL, > new SecurityValueValidator(), > null > + }, > + //JVM executable for itw > + { > + DeploymentConfiguration.KEY_JRE_DIR, > + null, > + null > } > }; > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java > --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Mar 29 16:49:02 2013 +0100 > @@ -166,6 +166,7 @@ > * JVM arguments for plugin > */ > public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; > + public static final String KEY_JRE_DIR= "deployment.jre.dir"; > > public enum ConfigType { > System, User > @@ -178,6 +179,10 @@ > private File systemPropertiesFile = null; > /** The user's deployment.config file */ > private File userPropertiesFile = null; > + > + /*default user file*/ > + public static final File USER_DEPLOYMENT_PROPERTIES_FILE = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR > + + File.separator + DEPLOYMENT_PROPERTIES); > > /** the current deployment properties */ > private Map> currentConfiguration; > @@ -221,8 +226,7 @@ > */ > public void load(boolean fixIssues) throws ConfigurationException { > // make sure no state leaks if security check fails later on > - File userFile = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR > - + File.separator + DEPLOYMENT_PROPERTIES); > + File userFile = new File(USER_DEPLOYMENT_PROPERTIES_FILE.getAbsolutePath()); > > SecurityManager sm = System.getSecurityManager(); > if (sm != null) { > @@ -415,8 +419,25 @@ > return etcFile; > } > > - File jreFile = new File(System.getProperty("java.home") + File.separator + "lib" > - + File.separator + DEPLOYMENT_CONFIG); > + String jrePath = null; > + try { > + Map> tmpProperties = parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE); > + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR); > + if (jreSetting != null) { > + jrePath = jreSetting.getValue(); > + } > + } catch (Exception ex) { > + ex.printStackTrace(); > + } > + > + File jreFile; > + if (jrePath != null) { > + jreFile = new File(jrePath + File.separator + "lib" > + + File.separator + DEPLOYMENT_CONFIG); > + } else { > + jreFile = new File(System.getProperty("java.home") + File.separator + "lib" > + + File.separator + DEPLOYMENT_CONFIG); > + } Looks OK > if (jreFile.isFile()) { > return jreFile; > } > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java > --- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Mar 29 16:49:02 2013 +0100 > @@ -53,6 +53,7 @@ > import javax.swing.event.ListSelectionListener; > > import net.sourceforge.jnlp.config.DeploymentConfiguration; > +import net.sourceforge.jnlp.controlpanel.JVMPanel.JvmValidationResult; > import net.sourceforge.jnlp.runtime.Translator; > import net.sourceforge.jnlp.security.KeyStores; > import net.sourceforge.jnlp.security.viewer.CertificatePane; > @@ -157,6 +158,20 @@ > topPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); > return topPanel; > } > + > + private int validateJdk() { > + String s = ControlPanel.this.config.getProperty(DeploymentConfiguration.KEY_JRE_DIR); > + JvmValidationResult validationResult = JVMPanel.validateJvm(s); > + if (validationResult.id == JvmValidationResult.ID.NOT_DIR > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_DIR > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_JDK) { > + return JOptionPane.showConfirmDialog(ControlPanel.this, > + ""+Translator.R("CPJVMNotokMessage1", s)+"
" > + + validationResult.formatedText+"
" > + + Translator.R("CPJVMNotokMessage2", DeploymentConfiguration.KEY_JRE_DIR, DeploymentConfiguration.USER_DEPLOYMENT_PROPERTIES_FILE)+""); > + } > + return JOptionPane.OK_OPTION; > + } > > /** > * Creates the "ok" "apply" and "cancel" buttons. > @@ -173,6 +188,10 @@ > @Override > public void actionPerformed(ActionEvent e) { > ControlPanel.this.saveConfiguration(); > + int i = validateJdk(); [nit] 'i' could be better named > + if (i!= JOptionPane.OK_OPTION){ > + return; > + } > ControlPanel.this.dispose(); > } > }); > @@ -183,6 +202,7 @@ > @Override > public void actionPerformed(ActionEvent e) { > ControlPanel.this.saveConfiguration(); > + validateJdk(); > } > }); > buttons.add(applyButton); > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java > --- a/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Fri Mar 29 16:49:02 2013 +0100 > @@ -40,17 +40,44 @@ > import java.awt.Dimension; > import java.awt.GridBagConstraints; > import java.awt.GridBagLayout; > - > +import java.awt.Insets; > +import java.awt.event.ActionEvent; > +import java.awt.event.ActionListener; > +import java.io.File; > import javax.swing.Box; > +import javax.swing.JButton; > +import javax.swing.JCheckBox; > +import javax.swing.JFileChooser; > import javax.swing.JLabel; > import javax.swing.JTextField; > - > +import javax.swing.event.DocumentEvent; > +import javax.swing.event.DocumentListener; > +import javax.swing.text.Document; > import net.sourceforge.jnlp.config.DeploymentConfiguration; > import net.sourceforge.jnlp.runtime.Translator; > +import net.sourceforge.jnlp.util.StreamUtils; > > @SuppressWarnings("serial") > public class JVMPanel extends NamedBorderPanel { > - private DeploymentConfiguration config; > + > + public static class JvmValidationResult { > + > + public static enum ID{ [nit] space here after ID Why is this called ID ? It doesn't identify anything, it's a result. > + EMPTY, NOT_DIR, NOT_VALID_DIR, NOT_VALID_JDK, VALID_JDK; > + } > + public final String formatedText; s/formatedText/formattedText/ > + public final ID id; > + > + public JvmValidationResult(String formatedText, ID id) { > + this.id = id; > + this.formatedText = formatedText; Indent this please. > + } > + > + > + } > + > + private DeploymentConfiguration config; > + private File lastPath = new File("/usr/lib/jvm/java/jre/"); > > JVMPanel(DeploymentConfiguration config) { > super(Translator.R("CPHeadJVMSettings"), new GridBagLayout()); > @@ -59,22 +86,130 @@ > } > > private void addComponents() { > - JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
"); > - JTextField testFieldArguments = new JTextField(25); > + final JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
"); > + final JTextField testFieldArguments = new JTextField(25); > > testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); > testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); > > + > + final JLabel descriptionExec = new JLabel("" + Translator.R("CPJVMitwExec") + "
"); > + final JTextField testFieldArgumentsExec = new JTextField(100); > + final JLabel validationResult = new JLabel(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); > + final JCheckBox allowTypoTimeValidation = new JCheckBox(Translator.R("CPJVMPluginAllowTTValidation"), true); > + allowTypoTimeValidation.addActionListener(new ActionListener() { > + @Override > + public void actionPerformed(ActionEvent e) { > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); > + } > + }); > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentListener() { > + String last = ""; > + int c = 0; Am I missing something ? Where are last & c used ? > + > + private String documentToString(Document d) { > + try { > + return d.getText(0, d.getLength()); > + } catch (Exception ex) { > + return ""; > + } > + } > + > + @Override > + public void insertUpdate(DocumentEvent e) { > + if (allowTypoTimeValidation.isSelected()) { > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formatedText, "CPJVMvalidated")); > + } > + } > + > + @Override > + public void removeUpdate(DocumentEvent e) { > + if (allowTypoTimeValidation.isSelected()) { > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formatedText, "CPJVMvalidated")); > + } > + } > + > + @Override > + public void changedUpdate(DocumentEvent e) { > + if (allowTypoTimeValidation.isSelected()) { > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formatedText, "CPJVMvalidated")); > + } > + } > + }); > + > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_JRE_DIR)); > + testFieldArgumentsExec.setText(config.getProperty(DeploymentConfiguration.KEY_JRE_DIR)); > + > + final JButton selectJvm = new JButton(Translator.R("CPJVMPluginSelectExec")); > + selectJvm.addActionListener(new ActionListener() { > + @Override > + public void actionPerformed(ActionEvent e) { > + JFileChooser jfch; > + if (lastPath != null && lastPath.exists()) { > + jfch = new JFileChooser(lastPath); > + } else { > + jfch = new JFileChooser(); > + } > + jfch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); > + int i = jfch.showOpenDialog(JVMPanel.this); > + if (i == JFileChooser.APPROVE_OPTION && jfch.getSelectedFile() != null) { > + lastPath = jfch.getSelectedFile().getParentFile(); > + String nws = jfch.getSelectedFile().getAbsolutePath(); > + String olds = testFieldArgumentsExec.getText(); > + if (!nws.equals(olds)) { > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); > + } > + testFieldArgumentsExec.setText(nws); > + } > + > + } > + }); > + final JButton validateJvm = new JButton(Translator.R("CPJVMitwExecValidation")); > + validateJvm.addActionListener(new ActionListener() { > + @Override > + public void actionPerformed(ActionEvent e) { > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formatedText, "CPJVMvalidated")); > + > + } > + }); > + > // Filler to pack the bottom of the panel. > GridBagConstraints c = new GridBagConstraints(); > c.fill = GridBagConstraints.BOTH; > c.weightx = 1; > + c.gridwidth = 4; > c.gridx = 0; > c.gridy = 0; > + c.insets = new Insets(2, 2, 4, 4); > > this.add(description, c); > c.gridy++; > this.add(testFieldArguments, c); > + c.gridy++; > + this.add(descriptionExec, c); > + c.gridy++; > + this.add(testFieldArgumentsExec, c); > + c.gridy++; > + GridBagConstraints cb1 = (GridBagConstraints) c.clone(); > + cb1.fill = GridBagConstraints.NONE; > + cb1.gridwidth = 1; > + this.add(selectJvm, cb1); > + GridBagConstraints cb3 = (GridBagConstraints) c.clone(); > + cb3.fill = GridBagConstraints.NONE; > + cb3.gridx = 2; > + cb3.gridwidth = 1; > + this.add(allowTypoTimeValidation, cb3); > + GridBagConstraints cb2 = (GridBagConstraints) c.clone(); > + cb2.fill = GridBagConstraints.NONE; > + cb2.gridx = 3; > + cb2.gridwidth = 1; > + this.add(validateJvm, cb2); > + c.gridy++; > + this.add(validationResult, c); > > // This is to keep it from expanding vertically if resized. > Component filler = Box.createRigidArea(new Dimension(1, 1)); > @@ -82,4 +217,104 @@ > c.weighty++; > this.add(filler, c); > } > + > + public static JvmValidationResult validateJvm(String cmd) { > + if (cmd == null || cmd.trim().equals("")) { > + return new JvmValidationResult("" + Translator.R("CPJVMvalueNotSet") + "", > + JvmValidationResult.ID.EMPTY); > + } > + String validationResult = ""; > + File jreDirFile = new File(cmd); > + JvmValidationResult.ID latestOne = JvmValidationResult.ID.EMPTY; > + if (jreDirFile.isDirectory()) { > + validationResult += "" + Translator.R("CPJVMisDir") + "
"; > + } else { > + validationResult += "" + Translator.R("CPJVMnotDir") + "
"; > + latestOne = JvmValidationResult.ID.NOT_DIR; > + } > + File javaFile = new File(cmd + File.separator + "bin" + File.separator + "java"); > + if (javaFile.isFile()) { > + validationResult += "" + Translator.R("CPJVMjava") + "
"; > + } else { > + validationResult += "" + Translator.R("CPJVMnoJava") + "
"; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + } > + File rtFile = new File(cmd + File.separator + "lib" + File.separator + "rt.jar"); > + if (javaFile.isFile()) { > + validationResult += "" + Translator.R("CPJVMrtJar") + "
"; > + } else { > + validationResult += "" + Translator.R("CPJVMnoRtJar") + "
"; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + } > + ProcessBuilder sb = new ProcessBuilder(javaFile.getAbsolutePath(), "-version"); > + Process p = null; > + String processErrorStream = ""; > + String processStdOutStream = ""; > + Integer r = null; > + try { > + p = sb.start(); > + p.waitFor(); > + processErrorStream = StreamUtils.readStreamAsString(p.getErrorStream()); > + processStdOutStream = StreamUtils.readStreamAsString(p.getInputStream()); > + r = p.exitValue(); > + //System.err.println(processErrorStream); > + //System.out.println(processStdOutStream); > + processErrorStream = processErrorStream.toLowerCase(); > + processStdOutStream = processStdOutStream.toLowerCase(); > + } catch (Exception ex) {; > + ex.printStackTrace(); > + > + } > + if (r == null) { > + validationResult += "" + Translator.R("CPJVMnotLaunched") + ""; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (r.intValue() != 0) { > + validationResult += "" + Translator.R("CPJVMnoSuccess") + ""; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("openjdk") || processStdOutStream.contains("openjdk")) { > + validationResult += "" + Translator.R("CPJVMopenJdkFound") + ""; > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.VALID_JDK); > + } > + if (processErrorStream.contains("ibm") || processStdOutStream.contains("ibm")) { > + validationResult += "" + Translator.R("CPJVMibmFound") + ""; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("gij") || processStdOutStream.contains("gij")) { > + validationResult += "" + Translator.R("CPJVMgijFound") + ""; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("oracle") || processStdOutStream.contains("oracle") > + || processErrorStream.contains("Java(TM)") || processStdOutStream.contains("Java(TM)")) { > + validationResult += "" + Translator.R("CPJVMoracleFound") + ""; > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + validationResult += "" + Translator.R("CPJVMstrangeProcess") + ""; > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.NOT_VALID_JDK); > + > + } > + > + private String resetValidationResult(final String value, String result, String headerKey) { > + return "" + Translator.R(headerKey) + ":
" + value + "
" + result + "
"; > + } > } > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 29 16:49:02 2013 +0100 > @@ -310,6 +310,29 @@ > CPDebuggingDescription=Enable options here to help with debugging > CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. > CPJVMPluginArguments=Set JVM arguments for plugin. > +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK > +CPJVMitwExecValidation=Validate JVM for icedtea-web > +CPJVMPluginSelectExec=Select JVM for icedtea-web > +CPJVMnone=None validation result for s/None/No/ > +CPJVMvalidated=Validation result for > +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used. > +CPJVMnotLaunched=Error, process was not launched, see console output for more info. > +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java is not set correctly. > +CPJVMopenJdkFound=Excellent, OpenJDK detected > +CPJVMoracleFound=Great, Oracle java detected > +CPJVMibmFound=Good, IBM java detected > +CPJVMgijFound=Warning, gij detected > +CPJVMstrangeProcess=Your path had an executable process, but it was not recognized. Verify the Java version in the console output. > +CPJVMnotDir=Error, The path you chose is not a directory. > +CPJVMisDir=Ok, the path you chose is a directory. > +CPJVMnoJava=Error, the directory you chose does not contain bin/java. > +CPJVMjava=Ok, the directory you chose contains bin/java. > +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar > +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar. > +CPJVMPluginAllowTTValidation=Allow type-time validation > +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) with following error message: > +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not able to start.
You will have to modify or remove {0} property in your configuration file {1}.
You should try to search for OpenJDK in your system or be sure you know what you are doing. Looks OK, although I haven't see this 'CPJVMNotokMessage2'. > + > > # Control Panel - Buttons > CPButAbout=About... > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/util/StreamUtils.java > --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Mar 28 14:40:11 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Fri Mar 29 16:49:02 2013 +0100 > @@ -37,9 +37,11 @@ > > package net.sourceforge.jnlp.util; > > +import java.io.BufferedReader; > import java.io.Closeable; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > > public class StreamUtils { > > @@ -71,4 +73,21 @@ > } > } > } > + > + > + public static String readStreamAsString(InputStream stream) throws IOException { > + InputStreamReader is = new InputStreamReader(stream); > + StringBuilder sb = new StringBuilder(); > + BufferedReader br = new BufferedReader(is); > + while (true) { > + String read = br.readLine(); > + if (read == null) { > + break; > + } > + sb.append(read); > + > + } > + > + return sb.toString(); > + } > } Looks good overall! Only really thing is I still don't have it detecting Oracle JDK =/ As well as we discussed, it should perhaps indicate that only javaws works with non-icedtea JVM's. -Adam From adomurad at redhat.com Wed Apr 3 07:09:09 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 03 Apr 2013 10:09:09 -0400 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <51542F3F.6060409@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> Message-ID: <515C3805.1090802@redhat.com> On 03/28/2013 07:53 AM, Jiri Vanek wrote: > On 03/27/2013 09:20 PM, Adam Domurad wrote: >> It appears having parameters in the URL for the stored document-base >> can cause problems with some >> applets, namely the Oracle LMS applet. >> >> A small bit of refactoring is needed to move the URL stripping code: >> >> Refactoring ChangeLog: >> 2013-03-26 Adam Domurad >> >> * >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java >> >> (normalizeUrlAndStripParams): Moved. >> * netx/net/sourceforge/jnlp/util/UrlUtils.java >> (normalizeUrlAndStripParams): New, moved from >> UnsignedAppletTrustConfirmation. >> * >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java >> >> >> (testNormalizeUrlAndStripParams): Moved. >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: >> New, has (testNormalizeUrlAndStripParams) from >> UnsignedAppletTrustConfirmationTest. >> >> >> And the fix itself: >> 2013-03-26 Adam Domurad >> >> * netx/net/sourceforge/jnlp/NetxPanel.java >> (NetxPanel): Ensure documentURL has stripped parameters >> >> Happy hacking, >> -Adam > > The refactoring is ok. But to use completely stripped codeabse in base > codebase sounds to me as quite big change. As far as i looked, I was > not able to judge all the impact and would rather stay with more > conservative change or with very deep testing of this change on your > side. Actually, stripping in the code-base was always done. The bug was that URL's such as: http://example.com/?test/ Were not being stripped properly, because the last part looked like a directory. However after further testing it looks like Oracle does not strip the document-base. It was a bit ugly but I have managed to ensure that our documentbase & codebase are always the same as Oracle's. There is some refactoring attached that moves normalizeUrl from ResourceTracker to UrlUtils, as well as adding an option whether to encode file:// based URL's or not. For compatibility purposes, we must encode URL's in the code-base & document-base, even if local. This is a good idea for matching purposes too. However, for actually accessing these URL's, the file:// based URL's should not be encoded. add-url-utils.patch ChangeLog: 2013-04-02 Adam Domurad * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no longer used constants. Remove (normalizeUrl). Update calls. * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports. Update calls. * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: Ensure file://-protocol URLs are encoded. * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl), and related utility methods. Allow for optionally encoding file:// URLs. There is some non-ideal code in the fix itself, because first we pass a stripped document-base, and then restore it to its original form. I blame this on the rigidity of inheriting from AppletViewerPanel, but I did not want to remove this inheritance in this patch. properly-strip-codebase.patch: 2013-04-02 Adam Domurad Ensure code-base is stripped of parameters that look like directories. * netx/net/sourceforge/jnlp/NetxPanel.java (NetxPanel): Ensure code-base is created from stripped document-base. Don't strip document-base itself. (runLoader): Ensure URL used for resource loaded is not encoded. The biggest change I think is the fact that the document-base & code-base are now encoded, otherwise code-bases were (almost) always stripped already. The code-base is decoded for resource-loading purposes, as it was before. It looks fine from my testing (so far). -Adam > > J. > -------------- next part -------------- A non-text attachment was scrubbed... Name: add-url-utils.patch Type: text/x-patch Size: 11651 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/0ed90043/add-url-utils.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: properly-stripped-codebase.patch Type: text/x-patch Size: 1588 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/0ed90043/properly-stripped-codebase.patch From jvanek at redhat.com Wed Apr 3 09:11:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 03 Apr 2013 18:11:50 +0200 Subject: [rfc][icedtea-web] reproducer for mzozila buffer owerflow In-Reply-To: <50CA05DE.5040602@redhat.com> References: <50CA05DE.5040602@redhat.com> Message-ID: <515C54C6.2050801@redhat.com> I think this was long ago discussed on IRC as possible to be pushed. So Can I? J -------- Original Message -------- Subject: [rfc][icedtea-web] reproducer for mzozila buffer owerflow Date: Thu, 13 Dec 2012 17:44:14 +0100 From: Jiri Vanek To: IcedTea Distro List This is reproducer for older mozilla issue. It is fixed correctly for all firefox, chrome and chromium - for which it was dangerous and was fixed. However it is behaving somehow strange for opera midory and epiphany. I have marked those tests as known to fail by small hack. I'm not sure if it measn that issue was not fixed, or taht it is not an issue in this family of browsers... The side effect of crashes in midory/epihany/opera leaded me to synchronize the logger, otherwise it broken really seriously:( J. -------------- next part -------------- A non-text attachment was scrubbed... Name: mozzilaReproducer.diff Type: text/x-patch Size: 5229 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/22dd1f88/mozzilaReproducer.diff From adomurad at redhat.com Wed Apr 3 09:20:19 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 03 Apr 2013 12:20:19 -0400 Subject: [rfc][icedtea-web] Stop supporting old version of NPAPI for 1.4 In-Reply-To: <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> References: <1342127331.2560.6.camel@voip-10-15-18-79.yyz.redhat.com> <4FFF3FA0.3030905@redhat.com> <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> Message-ID: <515C56C3.7030005@redhat.com> On 07/13/2012 04:14 PM, Adam Domurad wrote: > On Thu, 2012-07-12 at 17:20 -0400, Omair Majid wrote: >> On 07/12/2012 05:08 PM, Adam Domurad wrote: >>> Hi. This was briefly discussed with Deepak, and by the time 1.4 is >>> released, there will be no need to support the versions of firefox that >>> have the old api. >> Could you tell us what versions are these? What about other browsers >> that we care about? >> >> Thanks, >> Omair > Sorry, replied off-list. Resent. > > Hi Omair. This affects API versions <1.9, and only affects Firefox <4. > > > Ping ? Think this would help maintainability going forward. -Adam From adomurad at redhat.com Wed Apr 3 09:32:45 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 03 Apr 2013 12:32:45 -0400 Subject: [RFC][icedtea-web]: Set plugin JVM options in itw-settings In-Reply-To: <50BF91E5.8080500@redhat.com> References: <508ED961.4070705@redhat.com> <509130B7.8090508@redhat.com> <50AD1CC6.2060103@redhat.com> <50AD442B.1050903@redhat.com> <50BD206B.8020209@redhat.com> <50BE4E34.6000201@redhat.com> <50BE6A33.5010909@redhat.com> <50BF59A0.1030500@redhat.com> <50BF91E5.8080500@redhat.com> Message-ID: <515C59AD.5040204@redhat.com> On 12/05/2012 01:26 PM, Saad Mohammad wrote: > On 12/05/2012 09:26 AM, Adam Domurad wrote: >> On 12/04/2012 04:25 PM, Saad Mohammad wrote: >>> Hi Adam, >>> >>> Thanks for all the tips and tricks around C++. Updated patch is attached! >>> I'm starting to enjoy C++ as things start working more correctly now. :) >> Good to hear :) >> >>> [..snip..] >>> + } >>> + >>> + tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n"); >>> + >>> + if (!tokenOutput->empty() && *tokenOutput->at(0) =="null") >>> + { >>> + delete tokenOutput->at(0); >>> + tokenOutput->erase(tokenOutput->begin()); >>> + } >> A comment here about why you're deleting this token would be nice. >> >> Otherwise, I have no further torture to inflict on you :) Looks good to me now. >> If you have tested it to your satisfaction, OK for HEAD. >> >> Thanks, >> -Adam >> >> > Thanks again for all the feedback! > Pushed: > I would like to propose the patch + some clean-up that was eventually done for back-port to 1.3. The clean-up simply extracted common elements from an if block and the else block. It was done as a part of Jiri's code-coverage instrumentation patch. Some basic testing verifies that the jvm arguments are applied (putting gibberish is easiest). I have also read over the resulting code, and it checks out to me. Thanks, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: jvm-settings-1.3.patch Type: text/x-patch Size: 15252 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/7914c2d1/jvm-settings-1.3.patch From jfabriko at icedtea.classpath.org Wed Apr 3 09:45:57 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Wed, 03 Apr 2013 16:45:57 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 126a7f9465ed in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=126a7f9465ed author: Jana Fabrikova date: Wed Apr 03 18:37:00 2013 +0200 Modification of KnownToFail annotation (adding optional parameter failsIn) changeset 823350ebeef1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=823350ebeef1 author: Jana Fabrikova date: Wed Apr 03 18:48:44 2013 +0200 Modification of KnownToFail annotation diffstat: ChangeLog | 15 +++++ tests/junit-runner/JunitLikeXmlOutputListener.java | 29 +++++++-- tests/junit-runner/LessVerboseTextListener.java | 18 +++++- tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java | 8 ++- 4 files changed, 61 insertions(+), 9 deletions(-) diffs (173 lines): diff -r 3405d5fc4339 -r 823350ebeef1 ChangeLog --- a/ChangeLog Thu Mar 28 14:40:11 2013 -0400 +++ b/ChangeLog Wed Apr 03 18:48:44 2013 +0200 @@ -1,3 +1,18 @@ +2013-04-03 Jana Fabrikova + + * /tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFailInBrowsers.java: + the implementation of new annotation, which has an array of + browsers of type Browsers[] named failsIn + * /tests/junit-runner/JunitLikeXmlOutputListener.java: + in method (testDone) the testcases that are known to fail in + current browser are detected in addition to the tests that are + k2f in all browsers + * /tests/junit-runner/LessVerboseTextListener.java: + added method (getK2FinB) reading the annotion, + in method (printK2F) the testcases that are known to fail in + current browser are detected in addition to the tests that are + k2f in all browsers + 2013-03-28 Adam Domurad * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java diff -r 3405d5fc4339 -r 823350ebeef1 tests/junit-runner/JunitLikeXmlOutputListener.java --- a/tests/junit-runner/JunitLikeXmlOutputListener.java Thu Mar 28 14:40:11 2013 -0400 +++ b/tests/junit-runner/JunitLikeXmlOutputListener.java Wed Apr 03 18:48:44 2013 +0200 @@ -20,10 +20,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.Arrays; import java.util.concurrent.TimeUnit; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.annotations.KnownToFail; import net.sourceforge.jnlp.annotations.Remote; +import net.sourceforge.jnlp.browsertesting.Browsers; import org.junit.internal.JUnitSystem; @@ -201,17 +203,30 @@ testcaseAtts.put(TEST_IGNORED_ATTRIBUTE, Boolean.TRUE.toString()); } KnownToFail k2f = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), KnownToFail.class); + boolean thisTestIsK2F = false; Remote remote = LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), Remote.class); if (k2f != null) { - testcaseAtts.put(K2F, Boolean.TRUE.toString()); + //determine if k2f in the current browser + //?? + Browsers[] br = k2f.failsIn(); + if(0 == br.length){//the KnownToFail annotation without optional parameter + thisTestIsK2F = true; + }else{ + for(Browsers b : br){ + if(description.toString().contains(b.toString())){ + thisTestIsK2F = true; + } + } + } } + if( thisTestIsK2F ) testcaseAtts.put(K2F, Boolean.TRUE.toString()); if (remote != null) { testcaseAtts.put(REMOTE, Boolean.TRUE.toString()); } openElement(TEST_ELEMENT, testcaseAtts); if (testFailed != null) { - if (k2f != null) { + if (thisTestIsK2F) { failedK2F++; } Map errorAtts = new HashMap(3); @@ -226,7 +241,7 @@ writeElement(TEST_ERROR_ELEMENT, testFailed.getTrace(), errorAtts); } else { - if (k2f != null) { + if (thisTestIsK2F) { if (ignored) { ignoredK2F++; } else { @@ -265,25 +280,25 @@ classStats.put(description.getClassName(), classStat); } classStat.total++; - if (k2f != null) { + if (thisTestIsK2F) { classStat.totalK2F++; } classStat.time += testTime; if (testFailed == null) { if (ignored) { classStat.ignored++; - if (k2f != null) { + if (thisTestIsK2F) { classStat.ignoredK2F++; } } else { classStat.passed++; - if (k2f != null) { + if (thisTestIsK2F) { classStat.passedK2F++; } } } else { classStat.failed++; - if (k2f != null) { + if (thisTestIsK2F) { classStat.failedK2F++; } } diff -r 3405d5fc4339 -r 823350ebeef1 tests/junit-runner/LessVerboseTextListener.java --- a/tests/junit-runner/LessVerboseTextListener.java Thu Mar 28 14:40:11 2013 -0400 +++ b/tests/junit-runner/LessVerboseTextListener.java Wed Apr 03 18:48:44 2013 +0200 @@ -10,6 +10,7 @@ import java.lang.reflect.Method; import net.sourceforge.jnlp.annotations.KnownToFail; import net.sourceforge.jnlp.annotations.Remote; +import net.sourceforge.jnlp.browsertesting.Browsers; import org.junit.internal.JUnitSystem; import org.junit.runner.Description; @@ -74,7 +75,22 @@ private void printK2F(PrintStream writer, Boolean failed, Description description) { try { KnownToFail k2f = getK2F(description); - if (k2f != null) { + boolean thisTestIsK2F = false; + if (k2f != null){ + //determine if k2f in the current browser + Browsers[] br = k2f.failsIn(); + if(0 == br.length){ //@KnownToFail with default optional parameter failsIn={} + thisTestIsK2F = true; + }else{ + for(Browsers b : br){ + if(description.toString().contains(b.toString())){ + thisTestIsK2F = true; + } + } + } + } + + if( thisTestIsK2F ){ totalK2F++; if (failed != null) { if (failed) { diff -r 3405d5fc4339 -r 823350ebeef1 tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java --- a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java Thu Mar 28 14:40:11 2013 -0400 +++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java Wed Apr 03 18:48:44 2013 +0200 @@ -41,6 +41,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import net.sourceforge.jnlp.browsertesting.Browsers; /** *

@@ -52,10 +53,15 @@ * This annotation is meant for adding tests for bugs before the fix is * implemented. *

+ *

+ * The meaning of optional parameter failsIn is either a list of + * browsers where the test fails, or a default value - an empty array {}, + * default value means that the test fails always. + *

*/ @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface KnownToFail { - + public Browsers[] failsIn() default {}; } From doko at ubuntu.com Wed Apr 3 09:50:51 2013 From: doko at ubuntu.com (Matthias Klose) Date: Wed, 03 Apr 2013 18:50:51 +0200 Subject: [patch] fix zero build in 2.3.8 Message-ID: <515C5DEB.7020208@ubuntu.com> the zero build is unfortunately broken in the 2.3.8 release, the revert-7017193.patch needs a different variant for the zero hotspot. Moving the patch to a different location and copying the patch from the 2.1 branch fixes the build for me. Matthias -------------- next part -------------- --- openjdk-7-7u17-2.3.8.orig/Makefile.am +++ openjdk-7-7u17-2.3.8/Makefile.am @@ -244,7 +244,7 @@ patches/8006179-lookup_using_findvirtual.patch \ patches/8006882-sun.proxy.patch \ patches/pr1303-ifdef_fix.patch \ - patches/revert-7017193.patch + patches/hotspot/$(HSBUILD)/revert-7017193.patch # Conditional patches From jfabriko at icedtea.classpath.org Wed Apr 3 11:14:14 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Wed, 03 Apr 2013 18:14:14 +0000 Subject: /hg/icedtea-web: added annotation KnownToFail to reproducers Jav... Message-ID: changeset 8f99fc51187e in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8f99fc51187e author: Jana Fabrikova date: Wed Apr 03 20:17:10 2013 +0200 added annotation KnownToFail to reproducers JavascriptGet and JavascriptFuncParam diffstat: ChangeLog | 12 +++++++++- tests/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java | 2 +- tests/reproducers/simple/JavascriptGet/testcases/JavascriptGetTest.java | 4 +- 3 files changed, 14 insertions(+), 4 deletions(-) diffs (52 lines): diff -r 823350ebeef1 -r 8f99fc51187e ChangeLog --- a/ChangeLog Wed Apr 03 18:48:44 2013 +0200 +++ b/ChangeLog Wed Apr 03 20:17:10 2013 +0200 @@ -1,4 +1,14 @@ -2013-04-03 Jana Fabrikova +2013-04-03 Jana Fabrikova + + * /test/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java: + added annotation KnownToFail in googleChrome and chromiumBrowser to + the method (AppletJToJSFuncParam_JSObject_Test) + * /test/reproducers/simple/JavascriptGet/testcases/JavascriptGetTest.java: + added annotation KnownToFail in midori, epiphany, googleChrome + and chromiumBrowser to the methods (AppletJToJSGet_1DArray_Test) + and (AppletJToJSGet_2DArray_Test) + +2013-04-03 Jana Fabrikova * /tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFailInBrowsers.java: the implementation of new annotation, which has an array of diff -r 823350ebeef1 -r 8f99fc51187e tests/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java --- a/tests/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java Wed Apr 03 18:48:44 2013 +0200 +++ b/tests/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java Wed Apr 03 20:17:10 2013 +0200 @@ -226,7 +226,7 @@ @Test @TestInBrowsers(testIn = { Browsers.all }) @NeedsDisplay - //@KnownToFail(failsIn={Browsers.google-chrome, Browsers.chromium-browser}) + @KnownToFail(failsIn={Browsers.googleChrome, Browsers.chromiumBrowser}) public void AppletJToJSFuncParam_JSObject_Test() throws Exception { javaToJSFuncParamTest("jjsCallJSObjectParam"); } diff -r 823350ebeef1 -r 8f99fc51187e tests/reproducers/simple/JavascriptGet/testcases/JavascriptGetTest.java --- a/tests/reproducers/simple/JavascriptGet/testcases/JavascriptGetTest.java Wed Apr 03 18:48:44 2013 +0200 +++ b/tests/reproducers/simple/JavascriptGet/testcases/JavascriptGetTest.java Wed Apr 03 20:17:10 2013 +0200 @@ -118,7 +118,7 @@ @Test @TestInBrowsers(testIn = { Browsers.all }) @NeedsDisplay - //@KnownToFail(failsIn={Browsers.midori, Browsers.epiphany, Browsers.google-chrome, Browsers.chromium-browser}) + @KnownToFail(failsIn={Browsers.midori, Browsers.epiphany, Browsers.googleChrome, Browsers.chromiumBrowser}) public void AppletJToJSGet_1DArray_Test() throws Exception { javaToJSGetTest("jjsRead1DArray", "[1,2,3]", "[1, 2, 3]"); } @@ -126,7 +126,7 @@ @Test @TestInBrowsers(testIn = { Browsers.all }) @NeedsDisplay - //@KnownToFail(failsIn={Browsers.midori, Browsers.epiphany, Browsers.google-chrome, Browsers.chromium-browser}) + @KnownToFail(failsIn={Browsers.midori, Browsers.epiphany, Browsers.googleChrome, Browsers.chromiumBrowser}) public void AppletJToJSGet_2DArray_Test() throws Exception { javaToJSGetTest("jjsRead2DArray", "[[1,2],[3,4]]","[[1, 2], [3, 4]]"); } From jfabriko at redhat.com Wed Apr 3 11:20:32 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Wed, 03 Apr 2013 20:20:32 +0200 Subject: [rfc][icedtea-web] KnownToFailInBrowsers annotation patch In-Reply-To: <515C277E.1040102@redhat.com> References: <5140A5B0.6080008@redhat.com> <5140AD15.8090606@redhat.com> <51472E9D.2040305@redhat.com> <515C277E.1040102@redhat.com> Message-ID: <515C72F0.60907@redhat.com> Thank you for the review. I have added the annotation to the repository and to all the relevant methods in the following reproducers: -JavascriptGet (to 2 testcases) -JavascriptFuncParam (to 1 testcase) -JavascriptSet (no need, all the tests pass) -JavascriptFuncReturn (no need, all the tests pass) cheers, Jana On 04/03/2013 02:58 PM, Jiri Vanek wrote: > I think this can go in as it is. Just minor nits which you can apply > before push. > Please also apply the new annotation where valid (as new changeset). > you can push this without review. > > On 03/18/2013 04:11 PM, Jana Fabrikova wrote: >> Hi Jiri and Adam, >> >> as Jiri suggested I have modified the annotation (this time no new >> annotation KnownToFailInBrowsers, >> only a new optional parameter Browsers[] failsIn() added to the old >> KnownToFail annotation). >> >> I have modified the JunitLikeXmlOutputListener and >> LessVerboseTextListener also, they identify the >> combinations of testcase+browser that are declared to fail and write >> known-to-fail="true" into the >> xml file, which is then processed by the same xslt as usual. >> >> I have run one reproducer (modification of JToJSEval) in opera, midori >> and epiphany with a >> combination of failing/passing testcases. >> >> The results in terminal were (screenshot1): >> >> -For the testcase that really failed in midori and epiphany but was >> annotated with >> @KnownToFail(failsIn={}) : >> >> Passed: >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - opera >> - WARNING This test is known to fail, but have passed! >> FAILED: AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - >> midori(JToJSEvalTest) JToJSEval: the J >> and JS outputs are not equal! >> - This test is known to fail >> FAILED: AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - >> epiphany(JToJSEvalTest) JToJSEval: the J >> and JS outputs are not equal! >> - This test is known to fail >> >> -For the testcase that really failed in midori and epiphany but was >> annotated with @KnownToFail : >> >> Passed: >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test >> - opera >> - WARNING This test is known to fail, but have passed! >> FAILED: AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - >> midori(JToJSEvalTest) JToJSEval: >> the J and JS outputs are not equal! >> - This test is known to fail >> FAILED: AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - >> epiphany(JToJSEvalTest) >> JToJSEval: the J and JS outputs are not equal! >> - This test is known to fail >> >> -For the testcase that really failed in midori and epiphany and was >> annotated with >> @KnownToFail(failsIn={Browsers.midori, Browsers.epiphany}) >> >> Passed: JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test >> - opera >> FAILED: AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - >> midori(JToJSEvalTest) JToJSEval: the J and >> JS outputs are not equal! >> - This test is known to fail >> FAILED: AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - >> epiphany(JToJSEvalTest) JToJSEval: the J >> and JS outputs are not equal! >> - This test is known to fail >> >> -For the testcase that really failed in opera (only because opera >> crashed, it does not normally >> fail) and was not annotated: >> >> FAILED: AppletJToJSEval_typeof_Test - opera(JToJSEvalTest) >> JToJSEvalTest stdout should contain >> JToJSEval applet initialized. but it didnt. >> Passed: JToJSEvalTest.AppletJToJSEval_typeof_Test - midori >> Passed: JToJSEvalTest.AppletJToJSEval_typeof_Test - epiphany >> >> -For the testcase that passes in all browsers and was not annotated: >> >> Passed: JToJSEvalTest.AppletJToJSEval_location_Test - opera >> Passed: JToJSEvalTest.AppletJToJSEval_location_Test - midori >> Passed: JToJSEvalTest.AppletJToJSEval_location_Test - epiphany >> >> >> -Total summary: >> >> Total tests run: 15; From those : 8 known to fail >> Test known to fail: passed: 2; failed: 6; ignored: 0 >> Test results: passed: 8; failed: 7; ignored: 0 >> >> >> The results in html are attached as index_reproducers.html and >> screenshot2). >> >> >> Please see the attached patch, >> cheers, >> Jana >> >> >> On 03/13/2013 05:45 PM, Jiri Vanek wrote: >>> On 03/13/2013 05:13 PM, Jana Fabrikova wrote: >>>> Hello, >>>> >>>> I am sending for your consideration a patch that introduces the >>>> @KnownToFailInBrowsers annotation, which may be useful in some of the >>>> reproducers (namely passing arrays from JS->J does work in opera and >>>> firefox and does not work in google-chrome, chromium, midori and >>>> epiphany, and i think it is more problem of the browsers than of >>>> icedtea-web plugin). >>>> >>>> The annotation is detected in >>>> junit-runner/JunitLikeXmlOutputListener.java and >>>> junit-runner/LessVerboseTextListener.java and reflected in the console >>>> and xml output of run-netx-dist-tests. >>>> >>>> Cheers, >>>> Jana >>>> >>>> 2013-03-13 Jana Fabrikova >>>> >>>> * >>>> /tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFailInBrowsers.java >>>> >>>> >>>> the implementation of new annotation, which has an array of >>>> browsers of type Browsers[] named failsIn >>>> >>>> * /tests/junit-runner/JunitLikeXmlOutputListener.java >>>> in method (testDone) the testcases that are known to fail in >>>> current browser are detected in addition to the tests that are >>>> k2f in all browsers >>>> >>>> * /tests/junit-runner/LessVerboseTextListener.java >>>> added method (getK2FinB) reading the annotion, >>>> in method (printK2F) the testcases that are known to fail in >>>> current browser are detected in addition to the tests that are >>>> k2f in all browsers >>> >>> hmhm... I'm not sure If new type of annotation is needed. I would prefer >>> extension of KnownTofail as it is. >>> Now it have no parameter. In your new implementation it will have >>> optional Browsers[] failsIn(). If it will be null/empty, then it will >>> behave as we are used now. Otherwise it will be more sophisticated >>> What do you think? >>> >>> For the implementation itself - uless I missed something, I'm terribly >>> missing the browser recognition handling in xml/plaintext generation >>> and in xslt sheet. >>> Also some example usage of annotaion would be nice and as a top candy >>> the screenshots of outputs can be attached. >>> >>> >>> J. >> >> >> annotk2f-version2.patch >> >> >> diff --git a/tests/junit-runner/JunitLikeXmlOutputListener.java >> b/tests/junit-runner/JunitLikeXmlOutputListener.java >> --- a/tests/junit-runner/JunitLikeXmlOutputListener.java >> +++ b/tests/junit-runner/JunitLikeXmlOutputListener.java >> @@ -20,10 +20,12 @@ >> import java.util.Map; >> import java.util.Map.Entry; >> import java.util.Set; >> +import java.util.Arrays; >> import java.util.concurrent.TimeUnit; >> import net.sourceforge.jnlp.annotations.Bug; >> import net.sourceforge.jnlp.annotations.KnownToFail; >> import net.sourceforge.jnlp.annotations.Remote; >> +import net.sourceforge.jnlp.browsertesting.Browsers; >> >> >> import org.junit.internal.JUnitSystem; >> @@ -201,17 +203,30 @@ >> testcaseAtts.put(TEST_IGNORED_ATTRIBUTE, >> Boolean.TRUE.toString()); >> } >> KnownToFail k2f = >> LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), >> KnownToFail.class); >> + boolean knownToFailInThisBrowser = false; > > Is this name correct? I think it mark that test fails. No matter if "for > all" or "for one browser". So maybe better name? >> Remote remote = >> LessVerboseTextListener.getAnnotation(testClass, testMethod.getName(), >> Remote.class); >> - if (k2f != null) { >> - testcaseAtts.put(K2F, Boolean.TRUE.toString()); >> - } >> + if (k2f != null) { >> + //determine if k2f in the current browser >> + >> + Browsers[] br = k2f.failsIn(); >> + if(0 == br.length){//the KnownToFail annotation without >> optional parameter >> + knownToFailInThisBrowser = true; >> + }else{ >> + for(Browsers b : br){ >> + if(description.toString().contains(b.toString())){ >> + knownToFailInThisBrowser = true; >> + } >> + } >> + } >> + } >> + if( knownToFailInThisBrowser ) testcaseAtts.put(K2F, >> Boolean.TRUE.toString()); >> if (remote != null) { >> testcaseAtts.put(REMOTE, Boolean.TRUE.toString()); >> >> } >> openElement(TEST_ELEMENT, testcaseAtts); >> if (testFailed != null) { >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> failedK2F++; >> } >> Map errorAtts = new HashMap> String>(3); >> @@ -226,7 +241,7 @@ >> >> writeElement(TEST_ERROR_ELEMENT, testFailed.getTrace(), >> errorAtts); >> } else { >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> if (ignored) { >> ignoredK2F++; >> } else { >> @@ -265,25 +280,25 @@ >> classStats.put(description.getClassName(), classStat); >> } >> classStat.total++; >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> classStat.totalK2F++; >> } >> classStat.time += testTime; >> if (testFailed == null) { >> if (ignored) { >> classStat.ignored++; >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> classStat.ignoredK2F++; >> } >> } else { >> classStat.passed++; >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> classStat.passedK2F++; >> } >> } >> } else { >> classStat.failed++; >> - if (k2f != null) { >> + if (knownToFailInThisBrowser) { >> classStat.failedK2F++; >> } >> } >> diff --git a/tests/junit-runner/LessVerboseTextListener.java >> b/tests/junit-runner/LessVerboseTextListener.java >> --- a/tests/junit-runner/LessVerboseTextListener.java >> +++ b/tests/junit-runner/LessVerboseTextListener.java >> @@ -10,6 +10,7 @@ >> import java.lang.reflect.Method; >> import net.sourceforge.jnlp.annotations.KnownToFail; >> import net.sourceforge.jnlp.annotations.Remote; >> +import net.sourceforge.jnlp.browsertesting.Browsers; >> >> import org.junit.internal.JUnitSystem; >> import org.junit.runner.Description; >> @@ -74,24 +75,39 @@ >> private void printK2F(PrintStream writer, Boolean failed, >> Description description) { >> try { >> KnownToFail k2f = getK2F(description); >> - if (k2f != null) { >> - totalK2F++; >> - if (failed != null) { >> - if (failed) { >> - failedK2F++; >> - } else { >> - passedK2F++; >> - } >> - } else { >> - ignoredK2F++; >> - } >> - if (failed != null && !failed) { >> - writer.println(" - WARNING This test is known to >> fail, but have passed!"); >> - } else { >> - writer.println(" - This test is known to fail"); >> - } >> + boolean knownToFailInThisBrowser = false; > > again. >> + if (k2f != null){ >> + //determine if k2f in the current browser >> + Browsers[] br = k2f.failsIn(); >> + if(0 == br.length){ //@KnownToFail with default >> optional parameter failsIn={} >> + knownToFailInThisBrowser = true; >> + }else{ >> + for(Browsers b : br){ >> + >> if(description.toString().contains(b.toString())){ >> + knownToFailInThisBrowser = true; >> + } >> + } >> + } >> } >> >> + if( knownToFailInThisBrowser ){ >> + totalK2F++; >> + if (failed != null) { >> + if (failed) { >> + failedK2F++; >> + } else { >> + passedK2F++; >> + } >> + } else { >> + ignoredK2F++; >> + } >> + if (failed != null && !failed) { >> + writer.println(" - WARNING This test is known to >> fail, but have passed!"); >> + } else { >> + writer.println(" - This test is known to fail"); >> + } >> + } >> + >> >> } catch (Exception ex) { >> ex.printStackTrace(); >> >> diff --git >> a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java >> b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java >> --- >> a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java >> +++ >> b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java >> @@ -41,6 +41,7 @@ >> import java.lang.annotation.Retention; >> import java.lang.annotation.RetentionPolicy; >> import java.lang.annotation.Target; >> +import net.sourceforge.jnlp.browsertesting.Browsers; >> >> /** >> *

>> @@ -52,10 +53,15 @@ >> * This annotation is meant for adding tests for bugs before the fix is >> * implemented. >> *

>> + *

>> + * The meaning of optional parameter failsIn is either a list of >> + * browsers where the test fails, or a default value - an empty array >> {}, >> + * default value means that the test fails always. >> + *

>> */ >> >> @Target({ElementType.METHOD,ElementType.TYPE}) >> @Retention(RetentionPolicy.RUNTIME) >> public @interface KnownToFail { >> - >> + public Browsers[] failsIn() default {}; >> } >> >> >> index_reproducers.html >> >> >> Date: >> >> Mon Mar 18 15:35:34 CET 2013 >> >> >> Result: (88s) >> >> >> In brackets are KnownToFail values if any >> >> TOTAL: >> 15 (8) >> passed: >> 8 (2) >> failed: >> 7 (6) >> ignored: >> 0 >> >> >> Classes: show/hide >> >> JToJSEvalTest (88272ms): >> >> >> >> TOTAL: >> 15 (8) >> passed: >> 8 (2) >> failed: >> 7 (6) >> ignored: >> 0 >> >> ---------------------------------------------------------------------------------------------------- >> >> >> >> Individual results: >> >> NoneTraceAllTraces >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - opera >> PASSED (4.9260s) *- This test is known to fail* >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - midori >> FAILED (4.5260s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - epiphany >> FAILED (4.5160s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - opera >> PASSED (5.1110s) *- This test is known to fail* >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - midori >> FAILED (4.7250s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - epiphany >> FAILED (4.7180s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - opera >> PASSED (5.3160s) >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - midori >> FAILED (4.5170s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - epiphany >> FAILED (4.6170s) *- This test is known to fail* >> java.lang.AssertionError - JToJSEval: the J and JS outputs are not >> equal!StackTrace >> >> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal! >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at >> JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_typeof_Test - opera >> FAILED (21.6470s) >> java.lang.AssertionError - JToJSEvalTest stdout should contain >> JToJSEval applet initialized. but it >> didnt.StackTrace >> >> java.lang.AssertionError: JToJSEvalTest stdout should contain >> JToJSEval applet initialized. but it didnt. >> at org.junit.Assert.fail(Assert.java:91) >> at org.junit.Assert.assertTrue(Assert.java:43) >> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:68) >> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87) >> at JToJSEvalTest.AppletJToJSEval_typeof_Test(JToJSEvalTest.java:125) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:601) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> >> at >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96) >> >> at >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runners.Suite.runChild(Suite.java:128) >> at org.junit.runners.Suite.runChild(Suite.java:24) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> at CommandLine.runMain(CommandLine.java:49) >> at CommandLine.runMainAndExit(CommandLine.java:28) >> at CommandLine.main(CommandLine.java:24) >> >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_typeof_Test - midori >> PASSED (4.5120s) >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_typeof_Test - epiphany >> PASSED (4.6080s) >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_location_Test - opera >> PASSED (5.1070s) >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_location_Test - midori >> PASSED (4.7130s) >> JToJSEvalTest >> >> >> - >> AppletJToJSEval_location_Test - epiphany >> PASSED (4.7130s) >> STD-OUT - Show/hide >> >> @sout@ >> >> STD-ERR - Show/hide >> >> @serr@ >> >> >> screenshot1.png >> >> >> >> screenshot2.png >> >> > So assuming this apply, build, and output is correct, and knwntofail for > browser are really errors on browser side, thanx and go on :) > > J. From jfabriko at redhat.com Wed Apr 3 11:36:08 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Wed, 03 Apr 2013 20:36:08 +0200 Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function return types" tests In-Reply-To: <50FE6C4C.4040902@redhat.com> References: <50FE6C4C.4040902@redhat.com> Message-ID: <515C7698.8020708@redhat.com> Hi, I am resending last of the JS->J reproducers that was maybe lost in the big amount of [rfc][icedtea-web] mail, thank you for any comments, Jana On 01/22/2013 11:39 AM, Jana Fabrikova wrote: > Hello, > > I have rewritten also the JSToJFuncReturn reproducer with respect to > Adam's comments, its structure is very similar to JSToJFuncParam, please > find the patch attached, > > Jana > > > 2013-01-15 Jana Fabrikova > > * > /tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java: > > adding 22 testcases - 21 based on the interactive Liveconnect JS->Java > function return types tests, 1 additional testcase for returning > JSObject (calling a Java method from JS) > > * /tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java: > the applet whose methods are invoked from JS during the tests > > * > /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js: > the JavaScript code for calling the applet methods from JS > > * > /tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp: > java network launch protocol file for displaying applet in the html page > > * /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html: > the html page with java applet embedded, displayed in browser during the > tests -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJFuncReturn_modification.patch Type: text/x-patch Size: 15290 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/19581c29/JSToJFuncReturn_modification.patch From ptisnovs at icedtea.classpath.org Thu Apr 4 01:11:29 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 04 Apr 2013 08:11:29 +0000 Subject: /hg/rhino-tests: Added following tests into the ScriptEngineFact... Message-ID: changeset 45ce30265490 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=45ce30265490 author: Pavel Tisnovsky date: Thu Apr 04 10:14:43 2013 +0200 Added following tests into the ScriptEngineFactoryClassTest: getAnnotation, getComponentType, getClasses, getDeclaredClasses, getDeclaringClass, getEnclosingClass, getEnclosingConstructor and getEnclosingMethod. diffstat: ChangeLog | 8 + src/org/RhinoTests/ScriptEngineFactoryClassTest.java | 81 ++++++++++++++++++++ 2 files changed, 89 insertions(+), 0 deletions(-) diffs (106 lines): diff -r 102a062e2ee2 -r 45ce30265490 ChangeLog --- a/ChangeLog Wed Apr 03 09:57:50 2013 +0200 +++ b/ChangeLog Thu Apr 04 10:14:43 2013 +0200 @@ -1,3 +1,11 @@ +2013-04-04 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: + Added following tests into the ScriptEngineFactoryClassTest: + getAnnotation, getComponentType, getClasses, getDeclaredClasses, + getDeclaringClass, getEnclosingClass, getEnclosingConstructor and + getEnclosingMethod. + 2013-04-03 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r 102a062e2ee2 -r 45ce30265490 src/org/RhinoTests/ScriptEngineFactoryClassTest.java --- a/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Wed Apr 03 09:57:50 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Thu Apr 04 10:14:43 2013 +0200 @@ -753,6 +753,87 @@ } /** + * Test for method javax.script.ScriptEngineFactory.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.scriptEngineFactoryClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getClasses() + */ + protected void testGetClasses() { + Class[] cls = this.scriptEngineFactoryClass.getClasses(); + assertNotNull(cls, "getClasses() returns null"); + assertEquals(cls.length, 0, "getClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaredClasses() + */ + protected void testGetDeclaredClasses() { + Class[] cls = this.scriptEngineFactoryClass.getDeclaredClasses(); + assertNotNull(cls, "getDeclaredClasses() returns null"); + assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaringClass() + */ + protected void testGetDeclaringClass() { + Class cls = this.scriptEngineFactoryClass.getDeclaringClass(); + assertNull(cls, "getDeclaringClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.scriptEngineFactoryClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.scriptEngineFactoryClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.scriptEngineFactoryClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptEngineFactory */ @SuppressWarnings("cast") From jvanek at redhat.com Thu Apr 4 01:27:09 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Apr 2013 10:27:09 +0200 Subject: [RFC][icedtea-web]: Set plugin JVM options in itw-settings In-Reply-To: <515C59AD.5040204@redhat.com> References: <508ED961.4070705@redhat.com> <509130B7.8090508@redhat.com> <50AD1CC6.2060103@redhat.com> <50AD442B.1050903@redhat.com> <50BD206B.8020209@redhat.com> <50BE4E34.6000201@redhat.com> <50BE6A33.5010909@redhat.com> <50BF59A0.1030500@redhat.com> <50BF91E5.8080500@redhat.com> <515C59AD.5040204@redhat.com> Message-ID: <515D395D.8000801@redhat.com> On 04/03/2013 06:32 PM, Adam Domurad wrote: > On 12/05/2012 01:26 PM, Saad Mohammad wrote: >> On 12/05/2012 09:26 AM, Adam Domurad wrote: >>> On 12/04/2012 04:25 PM, Saad Mohammad wrote: >>>> Hi Adam, >>>> >>>> Thanks for all the tips and tricks around C++. Updated patch is attached! >>>> I'm starting to enjoy C++ as things start working more correctly now. :) >>> Good to hear :) >>> >>>> [..snip..] >>>> + } >>>> + >>>> + tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n"); >>>> + >>>> + if (!tokenOutput->empty() && *tokenOutput->at(0) =="null") >>>> + { >>>> + delete tokenOutput->at(0); >>>> + tokenOutput->erase(tokenOutput->begin()); >>>> + } >>> A comment here about why you're deleting this token would be nice. >>> >>> Otherwise, I have no further torture to inflict on you :) Looks good to me now. >>> If you have tested it to your satisfaction, OK for HEAD. >>> >>> Thanks, >>> -Adam >>> >>> >> Thanks again for all the feedback! >> Pushed: >> > > I would like to propose the patch + some clean-up that was eventually done for back-port to 1.3. > The clean-up simply extracted common elements from an if block and the else block. It was done as a > part of Jiri's code-coverage instrumentation patch. > > Some basic testing verifies that the jvm arguments are applied (putting gibberish is easiest). I > have also read over the resulting code, and it checks out to me. > > Thanks, > -Adam Oh how I wish an reproducer for this in head... When there will be time it would be nice to have working reproducer in suite for for RHU issue. Anyway ok for 1.3 Thanx for it, j. From ptisnovs at icedtea.classpath.org Thu Apr 4 01:55:30 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 04 Apr 2013 08:55:30 +0000 Subject: /hg/gfx-test: Added ten new tests to the test suite ClippingCirc... Message-ID: changeset e3f6ec64979e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=e3f6ec64979e author: Pavel Tisnovsky date: Thu Apr 04 10:58:44 2013 +0200 Added ten new tests to the test suite ClippingCircleByConcavePolygonalShape. Added two new static helper methods used by some test cases. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonRenderingStyles.java | 28 + src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 230 ++++++++++ 3 files changed, 265 insertions(+), 0 deletions(-) diffs (320 lines): diff -r 2ac0d3616507 -r e3f6ec64979e ChangeLog --- a/ChangeLog Wed Apr 03 09:40:52 2013 +0200 +++ b/ChangeLog Thu Apr 04 10:58:44 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-04 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonRenderingStyles.java: + Added two new static helper methods used by some test cases. + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + Added ten new tests to this test suite. + 2013-04-03 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltBasicTests.java: diff -r 2ac0d3616507 -r e3f6ec64979e src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Apr 03 09:40:52 2013 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Thu Apr 04 10:58:44 2013 +0200 @@ -182,6 +182,20 @@ } /** + * Set transparent black color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillBlackColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(0.0f, 0.0f, 0.0f, value)); + } + + /** * Set transparent red color. * * @param graphics @@ -252,6 +266,20 @@ } /** + * Set transparent yellow color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillYellowColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(1.0f, 1.0f, 0.0f, value)); + } + + /** * Set horizontal gradient fill for given graphics context. * * @param image diff -r 2ac0d3616507 -r e3f6ec64979e src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Wed Apr 03 09:40:52 2013 +0200 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Thu Apr 04 10:58:44 2013 +0200 @@ -120,6 +120,31 @@ /** * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with black color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlack(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlackColor(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 red color and selected transparency. * * @param image @@ -244,6 +269,31 @@ } /** + * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with yellow color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintYellow(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillYellowColor(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. * @@ -355,6 +405,96 @@ /** * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with black color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlack(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 black color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlack(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 black color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlack(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 black color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlack(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 black color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintBlack(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 red color at 0% transparency. * * @param image @@ -805,6 +945,96 @@ /** * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with yellow color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintYellow(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 yellow color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintYellow(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 yellow color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintYellow(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 yellow color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintYellow(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 yellow color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is * rendered using horizontal gradient paint. * * @param image From jvanek at icedtea.classpath.org Thu Apr 4 02:21:08 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 04 Apr 2013 09:21:08 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 0f12ec95deb0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0f12ec95deb0 author: Jiri Vanek date: Thu Apr 04 11:20:09 2013 +0200 Plugin is now honoring the custom jre changeset fbb6b3605538 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fbb6b3605538 author: Jiri Vanek date: Thu Apr 04 11:21:04 2013 +0200 Fixing typo in changelog annotion -> annotation diffstat: ChangeLog | 12 +++++++++++- launcher/itweb-settings.in | 9 +++++++-- launcher/javaws.in | 13 +++++++++---- plugin/icedteanp/IcedTeaNPPlugin.cc | 28 ++++++++++++++++++++++++---- 4 files changed, 51 insertions(+), 11 deletions(-) diffs (137 lines): diff -r 8f99fc51187e -r fbb6b3605538 ChangeLog --- a/ChangeLog Wed Apr 03 20:17:10 2013 +0200 +++ b/ChangeLog Thu Apr 04 11:21:04 2013 +0200 @@ -1,3 +1,13 @@ +2013-04-04 Jiri Vanek + + Plugin is now honoring the custom jre + * launcher/itweb-settings.in : + * launcher/javaws.in: + In case that custom jre do not exists, complains, and use default rather + * plugin/icedteanp/IcedTeaNPPlugin.cc: (get_plugin_executable) and + (get_plugin_rt_jar) now tries to return custom values before returning the + default one. + 2013-04-03 Jana Fabrikova * /test/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java: @@ -18,7 +28,7 @@ current browser are detected in addition to the tests that are k2f in all browsers * /tests/junit-runner/LessVerboseTextListener.java: - added method (getK2FinB) reading the annotion, + added method (getK2FinB) reading the annotation, in method (printK2F) the testcases that are known to fail in current browser are detected in addition to the tests that are k2f in all browsers diff -r 8f99fc51187e -r fbb6b3605538 launcher/itweb-settings.in --- a/launcher/itweb-settings.in Wed Apr 03 20:17:10 2013 +0200 +++ b/launcher/itweb-settings.in Thu Apr 04 11:21:04 2013 +0200 @@ -7,13 +7,18 @@ BINARY_LOCATION=@ITWEB_SETTINGS_BIN_LOCATION@ PROGRAM_NAME=itweb-settings -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" +PROPERTY_NAME=deployment.jre.dir +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` if [ "x$CUSTOM_JRE" = "x" ] ; then CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - JAVA=$CUSTOM_JRE/bin/java + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" ] ; then + JAVA=$CUSTOM_JRE/bin/java + else + echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA) in attempt to start. Please fix this." + fi fi; ${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \ diff -r 8f99fc51187e -r fbb6b3605538 launcher/javaws.in --- a/launcher/javaws.in Wed Apr 03 20:17:10 2013 +0200 +++ b/launcher/javaws.in Thu Apr 04 11:21:04 2013 +0200 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh JAVA=@JAVA@ LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@ @@ -9,14 +9,19 @@ PROGRAM_NAME=javaws CP=@JRE@/lib/rt.jar -CUSTOM_JRE_REGEX="^deployment.jre.dir *= *" +PROPERTY_NAME=deployment.jre.dir +CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *" CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` if [ "x$CUSTOM_JRE" = "x" ] ; then CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - JAVA=$CUSTOM_JRE/bin/java - CP=$CUSTOM_JRE/lib/rt.jar + if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" -a -f "$CUSTOM_JRE/lib/rt.jar" ] ; then + JAVA=$CUSTOM_JRE/bin/java + CP=$CUSTOM_JRE/lib/rt.jar + else + echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this." + fi fi; JAVA_ARGS=( ) diff -r 8f99fc51187e -r fbb6b3605538 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Apr 03 20:17:10 2013 +0200 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 04 11:21:04 2013 +0200 @@ -48,6 +48,9 @@ #include #include +//IcedTea-plugin includes +#include "IcedTeaPluginUtils.h" +#include "IcedTeaParseProperties.h" // Liveconnect extension #include "IcedTeaScriptablePluginObject.h" #include "IcedTeaNPPlugin.h" @@ -74,6 +77,7 @@ #include #endif + // Error reporting macros. #define PLUGIN_ERROR(message) \ g_printerr ("%s:%d: thread %p: Error: %s\n", __FILE__, __LINE__, \ @@ -287,13 +291,29 @@ #endif static std::string get_plugin_executable(){ - return std::string (appletviewer_default_executable); - + std::string custom_jre; + bool custom_jre_defined = find_custom_jre(custom_jre); + if (custom_jre_defined) { + if (IcedTeaPluginUtilities::file_exists(custom_jre+"/bin/java")){ + return custom_jre+"/bin/java"; + } else { + fprintf(stderr, "Your custom jre (/bin/java check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str()); + } + } + return appletviewer_default_executable; } static std::string get_plugin_rt_jar(){ - return std::string (appletviewer_default_rtjar); - + std::string custom_jre; + bool custom_jre_defined = find_custom_jre(custom_jre); + if (custom_jre_defined) { + if (IcedTeaPluginUtilities::file_exists(custom_jre+"/lib/rt.jar")){ + return custom_jre+"/lib/rt.jar"; + } else { + fprintf(stderr, "Your custom jre (/lib/rt.jar check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str()); + } + } + return appletviewer_default_rtjar; } From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 02:35:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 04 Apr 2013 09:35:50 +0000 Subject: [Bug 1384] New: Crash with importing project in eclipse on OpenSuSE x64 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384 Bug ID: 1384 Summary: Crash with importing project in eclipse on OpenSuSE x64 Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: christof.donat at adfinis-sygroup.ch CC: unassigned at icedtea.classpath.org Created attachment 847 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=847&action=edit crash report of vm I don't know if this is more an issue of the vm, or of eclipse. What I did is, I tried to import an existing project, which is in a subdirectory of a git repository into eclipse. obviously the import did succeed. The project was available as expected after I restarted eclipse. But before that it crashed with the attached report. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/6a327d06/attachment.html From jvanek at redhat.com Thu Apr 4 03:18:26 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Apr 2013 12:18:26 +0200 Subject: [rfc][icedtea-web] dialogue for set jre dir In-Reply-To: <515C2CAF.1010408@redhat.com> References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com> <514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com> <515C2CAF.1010408@redhat.com> Message-ID: <515D5372.1070204@redhat.com> On 04/03/2013 03:20 PM, Adam Domurad wrote: > On 03/29/2013 11:49 AM, Jiri Vanek wrote: > > On 03/21/2013 04:27 PM, Adam Domurad wrote: > >> On 03/20/2013 06:54 AM, Jiri Vanek wrote: > >>> > >>> ping? > >>> > >>> -------- Original Message -------- > >>> Subject: [rfc][icedtea-web] dialogue for set jre dir > >>> Date: Fri, 22 Feb 2013 15:01:17 +0100 > >>> From: Jiri Vanek > >>> To: IcedTea Distro List > >>> > >>> This is only java part of "make-jredir-configurable after install effort" > >>> To jvm settings pane it adds text-field to allow to write path to jre, whih is then saved to > >>> properties. There is also button which fill launch jfilechooser (with correct default location) to > >>> allow to choose the jre directory > >>> And one funny button to validate his effort (with funny colourful messages;). As if the user will > >>> add wrong location, he will not even start itw-settings (later). > >>> > >>> > >>> J. > >>> > >>> > >> > >> It looked quite well done. I liked the visual validation a lot. General comments: > >> > >> - We should validate as soon as the user picks a path, and we should not let the user accept a > >> configuration that couldn't possibly work. (itweb-settings will not be able to save them from a > >> broken jre dir, correct?) > > Ok. Although I don like it, added (added checkbox to disable type-time validation) > >> - I would like a message here stating that misconfiguration of the JRE will require manual editing > >> of the properties file. > > God idea. added. Can also cancel closing of dialogue with invalid value. > >> > >> - I liked the colourful checking, however note that as it stands we currently only support > >> *IcedTea*, > > > > Not true. We support OpenJdk. > > Discussed on IRC, we don't for the plugin. But at least javaws, which is better than I expected (I > guess NetxPanel can be in the jar as long as it's never used?). > >>> + > >>> + private String resetValidationResult(final String value, String result, String headerKey) { > >>> + return "" + Translator.R(headerKey) + ":
"+value+"
"+result+"
>>> />"; > >>> + } > >>> } > >> > >> > >> The Swing code looked otherwise fine to me, although I tend to not like to stare at Swing code too > >> long :-). > >>> diff -r 125c427b7a42 netx/net/sourceforge/jnlp/resources/Messages.properties > >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Feb 14 15:48:21 2013 -0500 > >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Feb 22 09:45:06 2013 +0100 > >>> @@ -301,6 +301,25 @@ > >>> CPDebuggingDescription=Enable options here to help with debugging > >>> CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. > >>> CPJVMPluginArguments=Set JVM arguments for plugin. > >>> +CPJVMPluginExec=Set JVM for icedtea-web > >> > >> The difference between 'plugin' and 'icedtea-web' setting may not be clear, I'd like to see 'Set > JVM > >> for icedtea-web (plugin and javaws)' > > > > If you are refering to CPJVMPluginExec and CPJVMPluginExecValidationthen you are right. > > > > If you are referring to CPJVMPluginArguments, then I'm afraid javaws do not read this. But should! > > Worthy of another, simple patch? > > Or add CPJVMJavawsArguments ? > >>> +CPJVMPluginExecValidation=Validate JVM for icedtea-web > >>> +CPJVMPluginSelectExec=Select JVM for icedtea-web > >>> +CPJVMnone=None validation result for > >> > >> I'm sorry, I have no clue what 'None validation result' means or why it is needed. From when I saw > >> it occur, it seems nothing be outputted would suffice. > > > > It is used whn there is no valid result (eg erro during processing or no invocation of validation) > > kept. > > I saw it occur just from switching to the JVM settings panel inside ITW-settings, I think. > > >>> +CPJVMvalidated=Validation result for > >>> +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used > >>> +CPJVMnotLaunched=Error, process was not launched, see console outputs for more info > >> > >> s/outputs/output/ > >>> +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java > >>> is not set correctly > >> > >> It's a nit, but I'd like these all to end with periods. Especially the messages with more than one > >> sentence. > >>> +CPJVMopenJdkFound=Excellent, OpenJDK detected > >>> +CPJVMoracleFound=Great, Oracle java detected > >>> +CPJVMibmFound=Good, IBM java detected > >>> +CPJVMgijFound=Warning, gij detected > >> > >> These messages are a little too 'funny' IMHO. Anyway as stated, we should have exactly one correct > >> state, 'Valid JRE, IcedTea was successfully detected'. You should really just have one message > >> 'Valid JRE, {0} was successfully detected', to ease translation efforts. GIJ never got past java5, > >> there's no need to do anything but fail on it (although we can say why). > > > > Not mentioned to be funny. Little bit reworded and hints leading to OpenJDK added. > > General comments: > - I like the validate-as-you-type :-) > [nit], the validate button could be greyed out when you are on 'auto-validate' mode > - I got the error "java.io.IOException: Cannot run program "/usr/java/latest/bi/bin/java"" when > validating Oracle JDK. Not sure why. It correctly said my directory (/usr/java/latest/) had > bin/java, but got that error while running it. > > Patch comments: > > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/Defaults.java > > --- a/netx/net/sourceforge/jnlp/config/Defaults.java Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Fri Mar 29 16:49:02 2013 +0100 > > @@ -391,6 +391,12 @@ > > DeploymentConfiguration.KEY_SECURITY_LEVEL, > > new SecurityValueValidator(), > > null > > + }, > > + //JVM executable for itw > > + { > > + DeploymentConfiguration.KEY_JRE_DIR, > > + null, > > + null > > } > > }; > > > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java > > --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Mar 29 16:49:02 2013 +0100 > > @@ -166,6 +166,7 @@ > > * JVM arguments for plugin > > */ > > public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; > > + public static final String KEY_JRE_DIR= "deployment.jre.dir"; > > > > public enum ConfigType { > > System, User > > @@ -178,6 +179,10 @@ > > private File systemPropertiesFile = null; > > /** The user's deployment.config file */ > > private File userPropertiesFile = null; > > + > > + /*default user file*/ > > + public static final File USER_DEPLOYMENT_PROPERTIES_FILE = new > File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR > > + + File.separator + DEPLOYMENT_PROPERTIES); > > > > /** the current deployment properties */ > > private Map> currentConfiguration; > > @@ -221,8 +226,7 @@ > > */ > > public void load(boolean fixIssues) throws ConfigurationException { > > // make sure no state leaks if security check fails later on > > - File userFile = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR > > - + File.separator + DEPLOYMENT_PROPERTIES); > > + File userFile = new File(USER_DEPLOYMENT_PROPERTIES_FILE.getAbsolutePath()); > > > > SecurityManager sm = System.getSecurityManager(); > > if (sm != null) { > > @@ -415,8 +419,25 @@ > > return etcFile; > > } > > > > - File jreFile = new File(System.getProperty("java.home") + File.separator + "lib" > > - + File.separator + DEPLOYMENT_CONFIG); > > + String jrePath = null; > > + try { > > + Map> tmpProperties = > parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE); > > + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR); > > + if (jreSetting != null) { > > + jrePath = jreSetting.getValue(); > > + } > > + } catch (Exception ex) { > > + ex.printStackTrace(); > > + } > > + > > + File jreFile; > > + if (jrePath != null) { > > + jreFile = new File(jrePath + File.separator + "lib" > > + + File.separator + DEPLOYMENT_CONFIG); > > + } else { > > + jreFile = new File(System.getProperty("java.home") + File.separator + "lib" > > + + File.separator + DEPLOYMENT_CONFIG); > > + } > > Looks OK > > > if (jreFile.isFile()) { > > return jreFile; > > } > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java > > --- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Mar 29 16:49:02 2013 +0100 > > @@ -53,6 +53,7 @@ > > import javax.swing.event.ListSelectionListener; > > > > import net.sourceforge.jnlp.config.DeploymentConfiguration; > > +import net.sourceforge.jnlp.controlpanel.JVMPanel.JvmValidationResult; > > import net.sourceforge.jnlp.runtime.Translator; > > import net.sourceforge.jnlp.security.KeyStores; > > import net.sourceforge.jnlp.security.viewer.CertificatePane; > > @@ -157,6 +158,20 @@ > > topPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); > > return topPanel; > > } > > + > > + private int validateJdk() { > > + String s = ControlPanel.this.config.getProperty(DeploymentConfiguration.KEY_JRE_DIR); > > + JvmValidationResult validationResult = JVMPanel.validateJvm(s); > > + if (validationResult.id == JvmValidationResult.ID.NOT_DIR > > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_DIR > > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_JDK) { > > + return JOptionPane.showConfirmDialog(ControlPanel.this, > > + ""+Translator.R("CPJVMNotokMessage1", s)+"
" > > + + validationResult.formatedText+"
" > > + + Translator.R("CPJVMNotokMessage2", DeploymentConfiguration.KEY_JRE_DIR, > DeploymentConfiguration.USER_DEPLOYMENT_PROPERTIES_FILE)+""); > > + } > > + return JOptionPane.OK_OPTION; > > + } > > > > /** > > * Creates the "ok" "apply" and "cancel" buttons. > > @@ -173,6 +188,10 @@ > > @Override > > public void actionPerformed(ActionEvent e) { > > ControlPanel.this.saveConfiguration(); > > + int i = validateJdk(); > > [nit] 'i' could be better named > > > + if (i!= JOptionPane.OK_OPTION){ > > + return; > > + } > > ControlPanel.this.dispose(); > > } > > }); > > @@ -183,6 +202,7 @@ > > @Override > > public void actionPerformed(ActionEvent e) { > > ControlPanel.this.saveConfiguration(); > > + validateJdk(); > > } > > }); > > buttons.add(applyButton); > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java > > --- a/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Fri Mar 29 16:49:02 2013 +0100 > > @@ -40,17 +40,44 @@ > > import java.awt.Dimension; > > import java.awt.GridBagConstraints; > > import java.awt.GridBagLayout; > > - > > +import java.awt.Insets; > > +import java.awt.event.ActionEvent; > > +import java.awt.event.ActionListener; > > +import java.io.File; > > import javax.swing.Box; > > +import javax.swing.JButton; > > +import javax.swing.JCheckBox; > > +import javax.swing.JFileChooser; > > import javax.swing.JLabel; > > import javax.swing.JTextField; > > - > > +import javax.swing.event.DocumentEvent; > > +import javax.swing.event.DocumentListener; > > +import javax.swing.text.Document; > > import net.sourceforge.jnlp.config.DeploymentConfiguration; > > import net.sourceforge.jnlp.runtime.Translator; > > +import net.sourceforge.jnlp.util.StreamUtils; > > > > @SuppressWarnings("serial") > > public class JVMPanel extends NamedBorderPanel { > > - private DeploymentConfiguration config; > > + > > + public static class JvmValidationResult { > > + > > + public static enum ID{ > > [nit] space here after ID > Why is this called ID ? It doesn't identify anything, it's a result. > > > + EMPTY, NOT_DIR, NOT_VALID_DIR, NOT_VALID_JDK, VALID_JDK; > > + } > > + public final String formatedText; > > s/formatedText/formattedText/ > > > + public final ID id; > > + > > + public JvmValidationResult(String formatedText, ID id) { > > + this.id = id; > > + this.formatedText = formatedText; > > Indent this please. > > > + } > > + > > + > > + } > > + > > + private DeploymentConfiguration config; > > + private File lastPath = new File("/usr/lib/jvm/java/jre/"); > > > > JVMPanel(DeploymentConfiguration config) { > > super(Translator.R("CPHeadJVMSettings"), new GridBagLayout()); > > @@ -59,22 +86,130 @@ > > } > > > > private void addComponents() { > > - JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
/>"); > > - JTextField testFieldArguments = new JTextField(25); > > + final JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + > "
"); > > + final JTextField testFieldArguments = new JTextField(25); > > > > testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config, > DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); > > testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); > > > > + > > + final JLabel descriptionExec = new JLabel("" + Translator.R("CPJVMitwExec") + "
/>"); > > + final JTextField testFieldArgumentsExec = new JTextField(100); > > + final JLabel validationResult = new > JLabel(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); > > + final JCheckBox allowTypoTimeValidation = new > JCheckBox(Translator.R("CPJVMPluginAllowTTValidation"), true); > > + allowTypoTimeValidation.addActionListener(new ActionListener() { > > + @Override > > + public void actionPerformed(ActionEvent e) { > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", > "CPJVMnone")); > > + } > > + }); > > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentListener() { > > + String last = ""; > > + int c = 0; > > Am I missing something ? Where are last & c used ? > > > + > > + private String documentToString(Document d) { > > + try { > > + return d.getText(0, d.getLength()); > > + } catch (Exception ex) { > > + return ""; > > + } > > + } > > + > > + @Override > > + public void insertUpdate(DocumentEvent e) { > > + if (allowTypoTimeValidation.isSelected()) { > > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), > s.formatedText, "CPJVMvalidated")); > > + } > > + } > > + > > + @Override > > + public void removeUpdate(DocumentEvent e) { > > + if (allowTypoTimeValidation.isSelected()) { > > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), > s.formatedText, "CPJVMvalidated")); > > + } > > + } > > + > > + @Override > > + public void changedUpdate(DocumentEvent e) { > > + if (allowTypoTimeValidation.isSelected()) { > > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), > s.formatedText, "CPJVMvalidated")); > > + } > > + } > > + }); > > + > > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentAdapter(config, > DeploymentConfiguration.KEY_JRE_DIR)); > > + testFieldArgumentsExec.setText(config.getProperty(DeploymentConfiguration.KEY_JRE_DIR)); > > + > > + final JButton selectJvm = new JButton(Translator.R("CPJVMPluginSelectExec")); > > + selectJvm.addActionListener(new ActionListener() { > > + @Override > > + public void actionPerformed(ActionEvent e) { > > + JFileChooser jfch; > > + if (lastPath != null && lastPath.exists()) { > > + jfch = new JFileChooser(lastPath); > > + } else { > > + jfch = new JFileChooser(); > > + } > > + jfch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); > > + int i = jfch.showOpenDialog(JVMPanel.this); > > + if (i == JFileChooser.APPROVE_OPTION && jfch.getSelectedFile() != null) { > > + lastPath = jfch.getSelectedFile().getParentFile(); > > + String nws = jfch.getSelectedFile().getAbsolutePath(); > > + String olds = testFieldArgumentsExec.getText(); > > + if (!nws.equals(olds)) { > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", > "CPJVMnone")); > > + } > > + testFieldArgumentsExec.setText(nws); > > + } > > + > > + } > > + }); > > + final JButton validateJvm = new JButton(Translator.R("CPJVMitwExecValidation")); > > + validateJvm.addActionListener(new ActionListener() { > > + @Override > > + public void actionPerformed(ActionEvent e) { > > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); > > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), > s.formatedText, "CPJVMvalidated")); > > + > > + } > > + }); > > + > > // Filler to pack the bottom of the panel. > > GridBagConstraints c = new GridBagConstraints(); > > c.fill = GridBagConstraints.BOTH; > > c.weightx = 1; > > + c.gridwidth = 4; > > c.gridx = 0; > > c.gridy = 0; > > + c.insets = new Insets(2, 2, 4, 4); > > > > this.add(description, c); > > c.gridy++; > > this.add(testFieldArguments, c); > > + c.gridy++; > > + this.add(descriptionExec, c); > > + c.gridy++; > > + this.add(testFieldArgumentsExec, c); > > + c.gridy++; > > + GridBagConstraints cb1 = (GridBagConstraints) c.clone(); > > + cb1.fill = GridBagConstraints.NONE; > > + cb1.gridwidth = 1; > > + this.add(selectJvm, cb1); > > + GridBagConstraints cb3 = (GridBagConstraints) c.clone(); > > + cb3.fill = GridBagConstraints.NONE; > > + cb3.gridx = 2; > > + cb3.gridwidth = 1; > > + this.add(allowTypoTimeValidation, cb3); > > + GridBagConstraints cb2 = (GridBagConstraints) c.clone(); > > + cb2.fill = GridBagConstraints.NONE; > > + cb2.gridx = 3; > > + cb2.gridwidth = 1; > > + this.add(validateJvm, cb2); > > + c.gridy++; > > + this.add(validationResult, c); > > > > // This is to keep it from expanding vertically if resized. > > Component filler = Box.createRigidArea(new Dimension(1, 1)); > > @@ -82,4 +217,104 @@ > > c.weighty++; > > this.add(filler, c); > > } > > + > > + public static JvmValidationResult validateJvm(String cmd) { > > + if (cmd == null || cmd.trim().equals("")) { > > + return new JvmValidationResult("" + > Translator.R("CPJVMvalueNotSet") + "", > > + JvmValidationResult.ID.EMPTY); > > + } > > + String validationResult = ""; > > + File jreDirFile = new File(cmd); > > + JvmValidationResult.ID latestOne = JvmValidationResult.ID.EMPTY; > > + if (jreDirFile.isDirectory()) { > > + validationResult += "" + Translator.R("CPJVMisDir") + > "
"; > > + } else { > > + validationResult += "" + Translator.R("CPJVMnotDir") + > "
"; > > + latestOne = JvmValidationResult.ID.NOT_DIR; > > + } > > + File javaFile = new File(cmd + File.separator + "bin" + File.separator + "java"); > > + if (javaFile.isFile()) { > > + validationResult += "" + Translator.R("CPJVMjava") + > "
"; > > + } else { > > + validationResult += "" + Translator.R("CPJVMnoJava") + > "
"; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + } > > + File rtFile = new File(cmd + File.separator + "lib" + File.separator + "rt.jar"); > > + if (javaFile.isFile()) { > > + validationResult += "" + Translator.R("CPJVMrtJar") + > "
"; > > + } else { > > + validationResult += "" + Translator.R("CPJVMnoRtJar") + > "
"; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + } > > + ProcessBuilder sb = new ProcessBuilder(javaFile.getAbsolutePath(), "-version"); > > + Process p = null; > > + String processErrorStream = ""; > > + String processStdOutStream = ""; > > + Integer r = null; > > + try { > > + p = sb.start(); > > + p.waitFor(); > > + processErrorStream = StreamUtils.readStreamAsString(p.getErrorStream()); > > + processStdOutStream = StreamUtils.readStreamAsString(p.getInputStream()); > > + r = p.exitValue(); > > + //System.err.println(processErrorStream); > > + //System.out.println(processStdOutStream); > > + processErrorStream = processErrorStream.toLowerCase(); > > + processStdOutStream = processStdOutStream.toLowerCase(); > > + } catch (Exception ex) {; > > + ex.printStackTrace(); > > + > > + } > > + if (r == null) { > > + validationResult += "" + Translator.R("CPJVMnotLaunched") + > ""; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + return new JvmValidationResult(validationResult, latestOne); > > + } > > + if (r.intValue() != 0) { > > + validationResult += "" + Translator.R("CPJVMnoSuccess") + > ""; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + return new JvmValidationResult(validationResult, latestOne); > > + } > > + if (processErrorStream.contains("openjdk") || processStdOutStream.contains("openjdk")) { > > + validationResult += "" + Translator.R("CPJVMopenJdkFound") + > ""; > > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.VALID_JDK); > > + } > > + if (processErrorStream.contains("ibm") || processStdOutStream.contains("ibm")) { > > + validationResult += "" + Translator.R("CPJVMibmFound") + > ""; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + return new JvmValidationResult(validationResult, latestOne); > > + } > > + if (processErrorStream.contains("gij") || processStdOutStream.contains("gij")) { > > + validationResult += "" + Translator.R("CPJVMgijFound") + > ""; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + return new JvmValidationResult(validationResult, latestOne); > > + } > > + if (processErrorStream.contains("oracle") || processStdOutStream.contains("oracle") > > + || processErrorStream.contains("Java(TM)") || > processStdOutStream.contains("Java(TM)")) { > > + validationResult += "" + Translator.R("CPJVMoracleFound") + > ""; > > + if (latestOne != JvmValidationResult.ID.NOT_DIR) { > > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK; > > + } > > + return new JvmValidationResult(validationResult, latestOne); > > + } > > + validationResult += "" + Translator.R("CPJVMstrangeProcess") + > ""; > > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.NOT_VALID_JDK); > > + > > + } > > + > > + private String resetValidationResult(final String value, String result, String headerKey) { > > + return "" + Translator.R(headerKey) + ":
" + value + "
" + result + > "
"; > > + } > > } > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/resources/Messages.properties > > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 29 16:49:02 2013 +0100 > > @@ -310,6 +310,29 @@ > > CPDebuggingDescription=Enable options here to help with debugging > > CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. > > CPJVMPluginArguments=Set JVM arguments for plugin. > > +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK > > +CPJVMitwExecValidation=Validate JVM for icedtea-web > > +CPJVMPluginSelectExec=Select JVM for icedtea-web > > +CPJVMnone=None validation result for > > s/None/No/ > > > +CPJVMvalidated=Validation result for > > +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used. > > +CPJVMnotLaunched=Error, process was not launched, see console output for more info. > > +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java > is not set correctly. > > +CPJVMopenJdkFound=Excellent, OpenJDK detected > > +CPJVMoracleFound=Great, Oracle java detected > > +CPJVMibmFound=Good, IBM java detected > > +CPJVMgijFound=Warning, gij detected > > +CPJVMstrangeProcess=Your path had an executable process, but it was not recognized. Verify the > Java version in the console output. > > +CPJVMnotDir=Error, The path you chose is not a directory. > > +CPJVMisDir=Ok, the path you chose is a directory. > > +CPJVMnoJava=Error, the directory you chose does not contain bin/java. > > +CPJVMjava=Ok, the directory you chose contains bin/java. > > +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar > > +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar. > > +CPJVMPluginAllowTTValidation=Allow type-time validation > > +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) with following error message: > > +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not able to start.
You will > have to modify or remove {0} property in your configuration file {1}.
You should > try to search for OpenJDK in your system or be sure you know what you are doing. > > Looks OK, although I haven't see this 'CPJVMNotokMessage2'. > > > + > > > > # Control Panel - Buttons > > CPButAbout=About... > > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/util/StreamUtils.java > > --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Mar 28 14:40:11 2013 -0400 > > +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Fri Mar 29 16:49:02 2013 +0100 > > @@ -37,9 +37,11 @@ > > > > package net.sourceforge.jnlp.util; > > > > +import java.io.BufferedReader; > > import java.io.Closeable; > > import java.io.IOException; > > import java.io.InputStream; > > +import java.io.InputStreamReader; > > > > public class StreamUtils { > > > > @@ -71,4 +73,21 @@ > > } > > } > > } > > + > > + > > + public static String readStreamAsString(InputStream stream) throws IOException { > > + InputStreamReader is = new InputStreamReader(stream); > > + StringBuilder sb = new StringBuilder(); > > + BufferedReader br = new BufferedReader(is); > > + while (true) { > > + String read = br.readLine(); > > + if (read == null) { > > + break; > > + } > > + sb.append(read); > > + > > + } > > + > > + return sb.toString(); > > + } > > } Nits fixed... > > Looks good overall! Only really thing is I still don't have it detecting Oracle JDK =/ I do not have issues with oracle jvm :(( Today verified aon jre, jdk > As well as we discussed, it should perhaps indicate that only javaws works with non-icedtea JVM's. It does:) It expalins why you have never seen CPJVMNotokMessage2. When you click ok/apply, then there is one more validation. And if there is something else then openjdk, then user is warned about troubles (CPJVMNotokMessage2:) ) J. -------------- next part -------------- A non-text attachment was scrubbed... Name: setupaAbleJVM-itwsettings_3.diff Type: text/x-patch Size: 22089 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/e9006f06/setupaAbleJVM-itwsettings_3.diff From adomurad at redhat.com Thu Apr 4 08:43:27 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 04 Apr 2013 11:43:27 -0400 Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function return types" tests In-Reply-To: <515C7698.8020708@redhat.com> References: <50FE6C4C.4040902@redhat.com> <515C7698.8020708@redhat.com> Message-ID: <515D9F9F.1030505@redhat.com> On 04/03/2013 02:36 PM, Jana Fabrikova wrote: > Hi, I am resending last of the JS->J reproducers that was maybe lost > in the big amount of [rfc][icedtea-web] mail, Sorry, yes it was. Thanks for the ping! I don't know how I feel about reproducers being this in-depth. In theory, the conversion code for Java -> Javascript should be shared, and does not need to be tested yet again just because it is a function return value. But as it is already written, I suppose we shouldn't remove tests. > > thank you for any comments, > > Jana > > On 01/22/2013 11:39 AM, Jana Fabrikova wrote: >> Hello, >> >> I have rewritten also the JSToJFuncReturn reproducer with respect to >> Adam's comments, its structure is very similar to JSToJFuncParam, please >> find the patch attached, >> >> Jana >> >> >> 2013-01-15 Jana Fabrikova >> >> * >> /tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java: >> >> >> adding 22 testcases - 21 based on the interactive Liveconnect JS->Java >> function return types tests, 1 additional testcase for returning >> JSObject (calling a Java method from JS) >> >> * /tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java: >> the applet whose methods are invoked from JS during the tests >> >> * >> /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js: >> >> the JavaScript code for calling the applet methods from JS >> >> * >> /tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp: >> >> java network launch protocol file for displaying applet in the html page >> >> * >> /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html: >> the html page with java applet embedded, displayed in browser during the >> tests > > diff --git a/JSToJFuncReturn_modification.patch > b/JSToJFuncReturn_modification.patch > new file mode 100644 > diff --git > a/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html > b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html > new file mode 100644 > --- /dev/null > +++ > b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html > @@ -0,0 +1,26 @@ > + > + > + > + JavaScript to Java LiveConnect - Function return values from > applet > + > + > + > + > + > + > + > +

The JSToJFuncReturn html page

> + > + > + id="jstojFuncReturnApplet" MAYSCRIPT> > + > + > + > +
> + > + > + > + > + > diff --git > a/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js > b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js > new file mode 100644 > --- /dev/null > +++ > b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js > @@ -0,0 +1,17 @@ > +function doFuncReturnTests(){ > + var urlArgs = document.URL.split("?"); > + var applet = document.getElementById('jstojFuncReturnApplet'); > + var method = urlArgs[1]; > + > + eval('var value = applet.' + method + '()'); > + > + var checked_string = typeof(value)+' '; > + if( method === '_JSObject'){ > + checked_string = checked_string +value.key1; > + }else{ > + checked_string = checked_string +value; > + } > + > + applet.printStringAndFinish(checked_string); > +} > + > diff --git > a/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp > b/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp > new file mode 100644 > --- /dev/null > +++ > b/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp > @@ -0,0 +1,23 @@ > + > + > + > + > + JavaScript to Java LiveConnect - FuncReturn > + RedHat > + href="http://icedtea.classpath.org/wiki/IcedTea-Web#Testing_IcedTea-Web"/> > + LiveConnect - tests to process various return types > from Java side function calls. > + > + > + > + + href="http://java.sun.com/products/autodl/j2se"/> > + > + > + > + + name="JS to J FuncReturn" > + main-class="JSToJFuncReturn" > + width="1000" > + height="100"> > + > + > diff --git > a/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java > b/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java > new file mode 100644 > --- /dev/null > +++ b/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java > @@ -0,0 +1,158 @@ > +import java.applet.Applet; > +import java.awt.Label; > +import java.awt.BorderLayout; > +import netscape.javascript.JSObject; > + > +public class JSToJFuncReturn extends Applet { > + > + private Label statusLabel; > + > + public int _int() { > + int i = 1; > + return i; > + } > + > + public double _double() { > + double d = 1.1; > + return d; > + } > + > + public float _float() { > + float f = 1.1F; > + return f; > + } > + > + public long _long() { > + long l = 10000L; > + return l; > + } > + > + public boolean _boolean() { > + boolean b = true; > + return b; > + } > + > + public char _char() { > + char c = 'a'; > + return c; > + } > + > + public byte _byte() { > + byte by = 10; > + return by; > + } > + > + public char _charArrayElement(){ > + char[] ca = new char[3]; char[] ca = new char[]{'a', 'b', 'c'}); is simpler > + > + ca[0] = 'a'; > + ca[1] = 'b'; > + ca[2] = 'c'; > + > + return ca[0]; > + } > + > + public char[] _charArray() { > + char[] ca = new char[3]; return new char[]{'a', 'b', 'c'}; is simpler > + > + ca[0] = 'a'; > + ca[1] = 'b'; > + ca[2] = 'c'; > + > + return ca; > + } > + > + public String _regularString() { > + String rs = "test"; > + return rs; > + } > + > + public String _specialString() { > + String ss = "????$????"; > + return ss; > + } > + > + public void _void() { > + } > + > + public Object _null() { > + return null; > + } > + > + public Integer _Integer() { > + Integer I = 1; > + return I; > + } > + > + public Double _Double() { > + Double D = 1.1; > + return D; > + } > + > + public Float _Float() { > + Float F = 1.1F; > + return F; > + } > + > + public Long _Long() { > + Long L = 10000L; > + return L; > + } > + > + public Boolean _Boolean() { > + Boolean B = true; > + return B; > + } > + > + public Character _CharacterArrayElement(){ > + Character[] Ca = new Character[3]; You should be able to define this array on one line. > + > + Ca[0] = 'A'; > + Ca[1] = 'B'; > + Ca[2] = 'C'; > + > + return Ca[0]; > + } > + > + public Character _Character() { > + Character C = 'A'; > + return C; > + } > + > + public Byte _Byte() { > + Byte By = 10; > + return By; > + } > + > + public Character[] _CharacterArray() { > + Character[] Ca = new Character[3]; You should be able to define this array on one line. > + > + Ca[0] = 'A'; > + Ca[1] = 'B'; > + Ca[2] = 'C'; > + > + return Ca; > + } > + > + public JSObject _JSObject(){ > + JSObject win = JSObject.getWindow(this); > + JSObject jso = (JSObject) win.getMember("document"); > + jso.setMember("key1","value1"); > + > + return jso; > + } > + > + public void init() { > + setLayout(new BorderLayout()); > + statusLabel = new Label(); > + add(statusLabel); > + String initStr = "JSToJFuncReturn applet initialized."; > + System.out.println(initStr); > + statusLabel.setText(initStr); > + } > + > + public void printStringAndFinish(String str){ > + System.out.println(str); > + System.out.println("afterTests"); > + } > +} > diff --git > a/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java > b/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java > new file mode 100644 > --- /dev/null > +++ > b/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java > @@ -0,0 +1,242 @@ > +/* JSToJFuncReturnTest.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.ProcessResult; > +import net.sourceforge.jnlp.ServerAccess; > +import net.sourceforge.jnlp.browsertesting.BrowserTest; > +import net.sourceforge.jnlp.browsertesting.Browsers; > +import net.sourceforge.jnlp.closinglisteners.CountingClosingListener; > +import net.sourceforge.jnlp.annotations.KnownToFail; > +import net.sourceforge.jnlp.annotations.NeedsDisplay; > +import net.sourceforge.jnlp.annotations.TestInBrowsers; > +import org.junit.Assert; > + > +import org.junit.Test; > + > +public class JSToJFuncReturnTest extends BrowserTest { > + > + private final String initStr = "JSToJFuncReturn applet initialized."; > + private final String afterStr = "afterTests"; > + > + private class CountingClosingListenerImpl extends > CountingClosingListener { > + > + @Override > + protected boolean isAlowedToFinish(String s) { > + > + return (s.contains(initStr) && s.contains(afterStr)); > + } > + } > + > + private void evaluateStdoutContents(String expectedStdout, > ProcessResult pr) { > + // Assert that the applet was initialized. > + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+ > initStr + " but it didnt.", pr.stdout.contains(initStr)); > + > + // Assert that the tests have passed. > + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+ > expectedStdout + " but it didnt.", pr.stdout.contains(expectedStdout)); > + } > + > + > + private void jsToJavaFuncReturnNormalTest(String methodStr, String > expectedStdout) throws Exception { > + String strURL = "/JSToJFuncReturn.html?" + methodStr; > + ProcessResult pr = server.executeBrowser(strURL, new > CountingClosingListenerImpl(), new CountingClosingListenerImpl()); > + evaluateStdoutContents(expectedStdout, pr); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_int_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_int", "number 1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_double_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_double", "number 1.1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_float_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_float", "number 1.1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_long_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_long", "number 10000"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_boolean_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_boolean", "boolean true"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_char_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_char", "number 97"); //'a' > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_byte_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_byte", "number 10"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_charArrayElement_Test() throws > Exception { > + jsToJavaFuncReturnNormalTest("_charArrayElement", "number 97"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_void_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_void", "undefined undefined"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_regularString_Test() throws > Exception { > + jsToJavaFuncReturnNormalTest("_regularString", "string test"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_specialCharsString_Test() throws > Exception { > + jsToJavaFuncReturnNormalTest("_specialString", "string ????$????"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_null_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_null", "object null"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Integer_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Integer", "object 1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Double_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Double", "object 1.1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Float_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Float", "object 1.1"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Long_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Long", "object 10000"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Boolean_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Boolean", "object true"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Character_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Character", "object A"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_Byte_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_Byte", "object 10"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @KnownToFail > + public void AppletJSToJFuncReturn_CharArrayElement_Test() throws > Exception { > + jsToJavaFuncReturnNormalTest("_CharacterArrayElement", "object A"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_CharFullArray_Test() throws > Exception { > + jsToJavaFuncReturnNormalTest("_CharacterArray", "object > [Ljava.lang.Character;@"); > + } > + > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + public void AppletJSToJFuncReturn_JSObject_Test() throws Exception { > + jsToJavaFuncReturnNormalTest("_JSObject", "object value1"); > + } > + > + > +} Looks fine to me otherwise, OK for HEAD. -Adam From adomurad at redhat.com Thu Apr 4 09:43:30 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 04 Apr 2013 12:43:30 -0400 Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning decision for entire codebase Message-ID: <515DADB2.4020807@redhat.com> As discussed between Jiri and myself. This allows for the decision chosen with unsigned applet confirmation to apply to an entire codebase, and not just a single applet. 2013-04-04 Adam Domurad Allow remembering applet confirmation for whole codebase. * netx/net/sourceforge/jnlp/resources/Messages.properties: Added SRememberAppletOnly, SRememberCodebase messages * netx/net/sourceforge/jnlp/security/SecurityDialogs.java (showUnsignedWarningDialog): Use UnsignedWarningAction * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: Introduce UnsignedWarningAction, add additional confirmation choices * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: Support remembering action for entire codebase. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: unsigned-confirm-remember-for-site.patch Type: text/x-patch Size: 13890 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/2908200a/unsigned-confirm-remember-for-site.patch From adomurad at icedtea.classpath.org Thu Apr 4 09:51:30 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 04 Apr 2013 16:51:30 +0000 Subject: /hg/release/icedtea-web-1.3: PR1217: Add command line arguments ... Message-ID: changeset ca8b00cca4c3 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=ca8b00cca4c3 author: Saad Mohammad date: Thu Apr 04 12:52:57 2013 -0400 PR1217: Add command line arguments for plugins diffstat: ChangeLog | 26 + netx/net/sourceforge/jnlp/config/Defaults.java | 6 + netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java | 5 + netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java | 5 + netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java | 85 ++++++ netx/net/sourceforge/jnlp/resources/Messages.properties | 3 + plugin/icedteanp/IcedTeaNPPlugin.cc | 136 ++++++--- plugin/icedteanp/IcedTeaPluginUtils.cc | 18 + plugin/icedteanp/IcedTeaPluginUtils.h | 3 + 9 files changed, 241 insertions(+), 46 deletions(-) diffs (415 lines): diff -r f63bdf513e9d -r ca8b00cca4c3 ChangeLog --- a/ChangeLog Fri Mar 01 13:12:21 2013 -0500 +++ b/ChangeLog Thu Apr 04 12:52:57 2013 -0400 @@ -1,3 +1,29 @@ +2013-04-04 Saad Mohammad + + Added new option in itw-settings which allows users to set JVM + arguments when plugin is initialized. + * netx/net/sourceforge/jnlp/config/Defaults.java (getDefaults): + Added defaults for DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS. + * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: + Added new property (KEY_PLUGIN_JVM_ARGUMENTS) which stores the value of + JVM plugin arguments. + * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java: + (createMainSettingsPanel): Added JVM settings to the list of tabs. + (createJVMSettingsPanel): Returns a new JVMPanel object. + * netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java: + JVM settings panel. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added a new items (CPJVMPluginArguments, CPHeadJVMSettings, + CPTabJVMSettings). + * plugin/icedteanp/IcedTeaNPPlugin.cc: + (plugin_start_appletviewer): Adds JVM arguments to the commands line list. + (get_jvm_args): Returns JVM arguments set in itw-settings. + * plugin/icedteanp/IcedTeaPluginUtils.cc: + (IcedTeaPluginUtilities::vectorStringToVectorGchar): New helper method + which returns a vector of gchar* from the vector of strings passed. + * plugin/icedteanp/IcedTeaPluginUtils.h: + Declaration of IcedTeaPluginUtilities::vectorStringToVectorGchar. + 2013-03-01 Adam Domurad Fix PR1157: Applets can hang browser after fatal exception diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/config/Defaults.java --- a/netx/net/sourceforge/jnlp/config/Defaults.java Fri Mar 01 13:12:21 2013 -0500 +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Thu Apr 04 12:52:57 2013 -0400 @@ -378,6 +378,12 @@ DeploymentConfiguration.KEY_UPDATE_TIMEOUT, BasicValueValidators.getRangedIntegerValidator(0, 10000), String.valueOf(500) + }, + //JVM arguments for plugin + { + DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS, + null, + null } }; diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Mar 01 13:12:21 2013 -0500 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Apr 04 12:52:57 2013 -0400 @@ -158,6 +158,11 @@ public static final String KEY_BROWSER_PATH = "deployment.browser.path"; public static final String KEY_UPDATE_TIMEOUT = "deployment.javaws.update.timeout"; + /* + * JVM arguments for plugin + */ + public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; + public enum ConfigType { System, User } diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Mar 01 13:12:21 2013 -0500 +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Apr 04 12:52:57 2013 -0400 @@ -226,6 +226,7 @@ // new SettingsPanel(Translator.R("CPTabClassLoader"), createClassLoaderSettingsPanel()), new SettingsPanel(Translator.R("CPTabDebugging"), createDebugSettingsPanel()), new SettingsPanel(Translator.R("CPTabDesktopIntegration"), createDesktopSettingsPanel()), + new SettingsPanel(Translator.R("CPTabJVMSettings"), createJVMSettingsPanel()), new SettingsPanel(Translator.R("CPTabNetwork"), createNetworkSettingsPanel()), // TODO: This is commented out since this is not implemented yet // new SettingsPanel(Translator.R("CPTabRuntimes"), createRuntimesSettingsPanel()), @@ -319,6 +320,10 @@ return new SecuritySettingsPanel(this.config); } + private JPanel createJVMSettingsPanel() { + return new JVMPanel(this.config); + } + /** * This is a placeholder panel. * diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Apr 04 12:52:57 2013 -0400 @@ -0,0 +1,85 @@ +/* PluginPanel.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.controlpanel; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; + +import javax.swing.Box; +import javax.swing.JLabel; +import javax.swing.JTextField; + +import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.runtime.Translator; + + at SuppressWarnings("serial") +public class JVMPanel extends NamedBorderPanel { + private DeploymentConfiguration config; + + JVMPanel(DeploymentConfiguration config) { + super(Translator.R("CPHeadJVMSettings"), new GridBagLayout()); + this.config = config; + addComponents(); + } + + private void addComponents() { + JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
"); + JTextField testFieldArguments = new JTextField(25); + + testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); + testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); + + // Filler to pack the bottom of the panel. + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.BOTH; + c.weightx = 1; + c.gridx = 0; + c.gridy = 0; + + this.add(description, c); + c.gridy++; + this.add(testFieldArguments, c); + + // This is to keep it from expanding vertically if resized. + Component filler = Box.createRigidArea(new Dimension(1, 1)); + c.gridy++; + c.weighty++; + this.add(filler, c); + } +} diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 01 13:12:21 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr 04 12:52:57 2013 -0400 @@ -298,6 +298,7 @@ CPSecurityDescription=Use this to configure security settings. CPDebuggingDescription=Enable options here to help with debugging CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. +CPJVMPluginArguments=Set JVM arguments for plugin. # Control Panel - Buttons CPButAbout=About... @@ -316,6 +317,7 @@ CPHeadDebugging=Debugging Settings CPHeadDesktopIntegration=Desktop Integrations CPHeadSecurity=Security Settings +CPHeadJVMSettings=JVM Settings # Control Panel - Tabs CPTabAbout=About IcedTea-Web @@ -327,6 +329,7 @@ CPTabNetwork=Network CPTabRuntimes=Runtimes CPTabSecurity=Security +CPTabJVMSettings=JVM Settings # Control Panel - AboutPanel CPAboutInfo=This is the control panel for setting deployments.properties.
Not all options will take effect until implemented.
The use of multiple JREs is currently unsupported.
diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Mar 01 13:12:21 2013 -0500 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 04 12:52:57 2013 -0400 @@ -241,6 +241,8 @@ void plugin_send_initialization_message(char* instance, gulong handle, int width, int height, char* url); +/* Returns JVM options set in itw-settings */ +static std::vector* get_jvm_args(); // Global instance counter. // Mutex to protect plugin_instance_counter. @@ -1591,48 +1593,48 @@ PLUGIN_DEBUG ("plugin_start_appletviewer\n"); NPError error = NPERR_NO_ERROR; - gchar** command_line; - gchar** environment; - - int cmd_num = 0; + std::vector command_line; + gchar** environment = NULL; + std::vector* jvm_args = get_jvm_args(); + + // Construct command line parameters + + command_line.push_back(appletviewer_executable); + + //Add JVM args to command_line + for (int i = 0; i < jvm_args->size(); i++) + { + command_line.push_back(*jvm_args->at(i)); + } + + command_line.push_back(PLUGIN_BOOTCLASSPATH); + // set the classpath to avoid using the default (cwd). + command_line.push_back("-classpath"); + command_line.push_back(ICEDTEA_WEB_JRE "/lib/rt.jar"); + if (plugin_debug) { - command_line = (gchar**) malloc(sizeof(gchar*)*11); - command_line[cmd_num++] = g_strdup(appletviewer_executable); - command_line[cmd_num++] = g_strdup(PLUGIN_BOOTCLASSPATH); - // set the classpath to avoid using the default (cwd). - command_line[cmd_num++] = g_strdup("-classpath"); - command_line[cmd_num++] = g_strdup_printf("%s/lib/rt.jar", ICEDTEA_WEB_JRE); - command_line[cmd_num++] = g_strdup("-Xdebug"); - command_line[cmd_num++] = g_strdup("-Xnoagent"); - if (plugin_debug_suspend) - { - command_line[cmd_num++] = g_strdup("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"); - } else - { - command_line[cmd_num++] = g_strdup("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"); - } - command_line[cmd_num++] = g_strdup("sun.applet.PluginMain"); - command_line[cmd_num++] = g_strdup(out_pipe_name); - command_line[cmd_num++] = g_strdup(in_pipe_name); - command_line[cmd_num] = NULL; - } else - { - command_line = (gchar**) malloc(sizeof(gchar*)*8); - command_line[cmd_num++] = g_strdup(appletviewer_executable); - command_line[cmd_num++] = g_strdup(PLUGIN_BOOTCLASSPATH); - command_line[cmd_num++] = g_strdup("-classpath"); - command_line[cmd_num++] = g_strdup_printf("%s/lib/rt.jar", ICEDTEA_WEB_JRE); - command_line[cmd_num++] = g_strdup("sun.applet.PluginMain"); - command_line[cmd_num++] = g_strdup(out_pipe_name); - command_line[cmd_num++] = g_strdup(in_pipe_name); - command_line[cmd_num] = NULL; + command_line.push_back("-Xdebug"); + command_line.push_back("-Xnoagent"); + + //Debug flags + std::string debug_flags = "-Xrunjdwp:transport=dt_socket,address=8787,server=y,"; + debug_flags += plugin_debug_suspend ? "suspend=y" : "suspend=n"; + command_line.push_back(debug_flags); } + command_line.push_back("sun.applet.PluginMain"); + command_line.push_back(out_pipe_name); + command_line.push_back(in_pipe_name); + + // Finished command line parameters + environment = plugin_filter_environment(); - - if (!g_spawn_async (NULL, command_line, environment, - (GSpawnFlags) G_SPAWN_DO_NOT_REAP_CHILD, + std::vector vector_gchar = IcedTeaPluginUtilities::vectorStringToVectorGchar(&command_line); + gchar **command_line_args = &vector_gchar[0]; + + if (!g_spawn_async (NULL, command_line_args, environment, + (GSpawnFlags) G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &appletviewer_pid, &channel_error)) { if (channel_error) @@ -1647,15 +1649,11 @@ error = NPERR_GENERIC_ERROR; } - g_strfreev (environment); - - for (int i = 0; i < cmd_num; i++) { - g_free (command_line[i]); - command_line[i] = NULL; - } - - g_free(command_line); - command_line = NULL; + //Free memory + g_strfreev(environment); + IcedTeaPluginUtilities::freeStringPtrVector(jvm_args); + jvm_args = NULL; + command_line_args = NULL; if (appletviewer_pid) { @@ -1669,6 +1667,52 @@ } /* + * Returns JVM options set in itw-settings + */ +static std::vector* +get_jvm_args() +{ + std::vector < std::string> commands; + gchar *output = NULL; + std::vector* tokenOutput = NULL; + + commands.push_back(appletviewer_executable); + commands.push_back(PLUGIN_BOOTCLASSPATH); + commands.push_back("-classpath"); + commands.push_back(ICEDTEA_WEB_JRE "/lib/rt.jar"); + commands.push_back("net.sourceforge.jnlp.controlpanel.CommandLine"); + commands.push_back("get"); + commands.push_back("deployment.plugin.jvm.arguments"); + + std::vector vector_gchar = IcedTeaPluginUtilities::vectorStringToVectorGchar(&commands); + gchar **command_line_args = &vector_gchar[0]; + + if (!g_spawn_sync(NULL, command_line_args, NULL, + (GSpawnFlags) G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &output, NULL, NULL, + &channel_error)) + { + PLUGIN_ERROR("Failed to get JVM arguments set for plugin."); + output = NULL; + } + + tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n"); + + if (!tokenOutput->empty() && *tokenOutput->at(0) =="null") + { + delete tokenOutput->at(0); + tokenOutput->erase(tokenOutput->begin()); + } + + //Free memory + g_free(output); + output = NULL; + command_line_args = NULL; + + return tokenOutput; +} + + +/* * Replaces certain characters (\r, \n, etc) with HTML escape equivalents. * * Return string is allocated on the heap. Caller assumes responsibility diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Fri Mar 01 13:12:21 2013 -0500 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Apr 04 12:52:57 2013 -0400 @@ -978,6 +978,24 @@ } /** + * Returns a vector of gchar* pointing to the elements of the vector string passed in. + * @param stringVec The vector of strings reference. + */ +std::vector +IcedTeaPluginUtilities::vectorStringToVectorGchar(const std::vector* stringVec) +{ + std::vector charVec; + + for (int i = 0; i < stringVec->size(); i++) + { + gchar* element = (gchar*) stringVec->at(i).c_str(); //cast from const char + charVec.push_back(element); + } + charVec.push_back(NULL); + return charVec; +} + +/** * Runs through the async call wait queue and executes all calls * * @param param Ignored -- required to conform to NPN_PluginThreadAsynCall API diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaPluginUtils.h --- a/plugin/icedteanp/IcedTeaPluginUtils.h Fri Mar 01 13:12:21 2013 -0500 +++ b/plugin/icedteanp/IcedTeaPluginUtils.h Thu Apr 04 12:52:57 2013 -0400 @@ -269,6 +269,9 @@ static void decodeURL(const char* url, char** decoded_url); + /* Returns a vector of gchar* pointing to the elements of the vector string passed in*/ + static std::vector vectorStringToVectorGchar(const std::vector* stringVec); + /* Posts call in async queue and waits till execution completes */ static void callAndWaitForResult(NPP instance, void (*func) (void *), AsyncCallThreadData* data); }; From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 09:51:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 04 Apr 2013 16:51:49 +0000 Subject: [Bug 1217] Add command line arguments for plugins In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1217 --- Comment #5 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea-web-1.3?cmd=changeset;node=ca8b00cca4c3 author: Saad Mohammad date: Thu Apr 04 12:52:57 2013 -0400 PR1217: Add command line arguments for plugins -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/2cf516e4/attachment.html From adomurad at redhat.com Thu Apr 4 13:17:53 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 04 Apr 2013 16:17:53 -0400 Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue classloaders Message-ID: <515DDFF1.60405@redhat.com> This puts a bandaid over http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is probably too generous. With this, the SweetHome3D JNLP [1] runs again. The applet version had worked before. This is explicitly *not* wanted for HEAD. I am posting this for review now to be considered for any release branches where a proper fix is not found. (1.4 definitely, who knows maybe even previous & future releases. But such hackery should not be in HEAD.) 2013-XX-XX Adam Domurad Hack to ensure AppContext is set correctly. * netx/net/sourceforge/jnlp/Launcher.java (forceContextClassLoaderHack): Force stored class-loader for thread-group's AppContext and EventQueue to be our JNLPClassLoader. (createApplet): Call forceContextClassLoaderHack. (createAppletObject): Call forceContextClassLoaderHack. (createApplication): Call forceContextClassLoaderHack. I have not found any potential problems this may cause (and I've digged quite deep). Let me know of any concerns. [1] www.sweethome3d.com/SweetHome3D.jnlp Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: app-context-hack.patch Type: text/x-patch Size: 3219 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/5f6e2c9d/app-context-hack.patch From andrew at icedtea.classpath.org Thu Apr 4 14:53:11 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 04 Apr 2013 21:53:11 +0000 Subject: /hg/icedtea7: Update to u20 b17. Message-ID: changeset 397dd0f8e62a in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=397dd0f8e62a author: Andrew John Hughes date: Thu Apr 04 22:52:56 2013 +0100 Update to u20 b17. 2013-04-04 Andrew John Hughes * patches/zero_libffi.patch: Removed; upstreamed to IcedTea. * Makefile.am: (OPENJDK_VERSION): Bump to b17. (JDK_UPDATE_VERSION): Bump to 20. (CORBA_CHANGESET): Update to IcedTea7 forest head. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Set empty again. * hotspot.map: Update to IcedTea7 forest head. * patches/boot/ecj-diamond.patch: Regenerate, add new cases in JarFileFactory.java, java.util.logging.Level, java.util.logging.LogManager and JdpPacketReader. * patches/boot/ecj-multicatch.patch: Regenerate, add new case in java.lang.reflect.Proxy. * patches/boot/ecj-stringswitch.patch, * patches/boot/ecj-trywithresources.patch: Regenerated. * patches/boot/xsltproc.patch: Undo removal of XSLT setting as not needed (command line overrides anyway). Patch new trace.make as well. * patches/systemtap_gc.patch: Regenerated. diffstat: ChangeLog | 36 + Makefile.am | 30 +- hotspot.map | 3 +- patches/boot/ecj-diamond.patch | 2150 +++++++++++++++--------------- patches/boot/ecj-multicatch.patch | 404 ++--- patches/boot/ecj-stringswitch.patch | 55 +- patches/boot/ecj-trywithresources.patch | 563 +++---- patches/boot/xsltproc.patch | 21 +- patches/systemtap_gc.patch | 106 +- patches/zero_libffi.patch | 37 - 10 files changed, 1719 insertions(+), 1686 deletions(-) diffs (truncated from 5982 to 500 lines): diff -r 9b9b5df83038 -r 397dd0f8e62a ChangeLog --- a/ChangeLog Thu Mar 28 00:18:00 2013 +0000 +++ b/ChangeLog Thu Apr 04 22:52:56 2013 +0100 @@ -1,3 +1,39 @@ +2013-04-04 Andrew John Hughes + + * patches/zero_libffi.patch: + Removed; upstreamed to IcedTea. + * Makefile.am: + (OPENJDK_VERSION): Bump to b17. + (JDK_UPDATE_VERSION): Bump to 20. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (ICEDTEA_PATCHES): Set empty again. + * hotspot.map: Update to IcedTea7 forest head. + * patches/boot/ecj-diamond.patch: + Regenerate, add new cases in JarFileFactory.java, + java.util.logging.Level, java.util.logging.LogManager + and JdpPacketReader. + * patches/boot/ecj-multicatch.patch: + Regenerate, add new case in java.lang.reflect.Proxy. + * patches/boot/ecj-stringswitch.patch, + * patches/boot/ecj-trywithresources.patch: + Regenerated. + * patches/boot/xsltproc.patch: + Undo removal of XSLT setting as not needed (command + line overrides anyway). Patch new trace.make as + well. + * patches/systemtap_gc.patch: Regenerated. + 2013-03-27 Andrew John Hughes * Makefile.am: diff -r 9b9b5df83038 -r 397dd0f8e62a Makefile.am --- a/Makefile.am Thu Mar 28 00:18:00 2013 +0000 +++ b/Makefile.am Thu Apr 04 22:52:56 2013 +0100 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b09 -JDK_UPDATE_VERSION = 12 +OPENJDK_VERSION = b17 +JDK_UPDATE_VERSION = 20 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 679412ed11d5 -JAXP_CHANGESET = cba4d3377850 -JAXWS_CHANGESET = a7541d353428 -JDK_CHANGESET = 67b0266bbd5d -LANGTOOLS_CHANGESET = 31539542e9e5 -OPENJDK_CHANGESET = 2d1ddf672d61 +CORBA_CHANGESET = 04ad0a30f564 +JAXP_CHANGESET = e17ab897041e +JAXWS_CHANGESET = 7169780eff51 +JDK_CHANGESET = bc455fc9948f +LANGTOOLS_CHANGESET = 5f4ad2269018 +OPENJDK_CHANGESET = 8714dddd443a -CORBA_SHA256SUM = 20b9840fa09f8e89a141cbe0b08794588f8534ba760cf08cee34feaea3018bc4 -JAXP_SHA256SUM = d04ae1702118dd42e5f7c3796dab0214a44f27b8381464536877cded732f6b77 -JAXWS_SHA256SUM = ada222989022c456d6ebd417891fb4b575d47da1134bd0ca631fb5deea7cbed8 -JDK_SHA256SUM = 8f7b1ce3fea28901366530e152c479117cbb3c37a5a7f069a52531f7b7d01c4f -LANGTOOLS_SHA256SUM = 7cc3816acebfeac0211161cc39472b38f87587f4d41fa3e153109e27df4c02c8 -OPENJDK_SHA256SUM = 43aef86d067f66f2cd3b6895cc166e056b05603ee585ba50b5a82d41e7924a16 +CORBA_SHA256SUM = 625fd145c5e7bbd92f28321d2584d116279cb0bf07f417d0f463f57c78b90526 +JAXP_SHA256SUM = 698244f0a12cc7fa6c2994db7b0771ff7c4e00d6457aabb9c326778d0a078650 +JAXWS_SHA256SUM = cff9fb3f14aad77b6415418556805cbb23779d2b5fc6b7ebfd7bea5100b139fe +JDK_SHA256SUM = 54c3fff10484ce96b23599228ca99be89f4c433441da7489648c42fd8f03c0c8 +LANGTOOLS_SHA256SUM = 925f8166907dda64491dcaff51460ee83090d060f76abb4ff0efa7b9e1612a17 +OPENJDK_SHA256SUM = 7b500b6306981d0182a12e90b37182741df9931b34107a13686a77951ff7b0b3 CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 @@ -232,7 +232,7 @@ # Patch list -ICEDTEA_PATCHES = patches/zero_libffi.patch +ICEDTEA_PATCHES = # Conditional patches diff -r 9b9b5df83038 -r 397dd0f8e62a hotspot.map --- a/hotspot.map Thu Mar 28 00:18:00 2013 +0000 +++ b/hotspot.map Thu Apr 04 22:52:56 2013 +0100 @@ -1,1 +1,2 @@ -default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 7e12b7098f20 dc85dde54f736507e83f718a587020b89d5e6c532a33a18cabd17dedef5db80b +# version url changeset sha256sum +default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot b9bbe418db87 af823ea6283514495a42c291ed1d7d79c2ee86f8917e5f6f2782218a193546d9 diff -r 9b9b5df83038 -r 397dd0f8e62a patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Thu Mar 28 00:18:00 2013 +0000 +++ b/patches/boot/ecj-diamond.patch Thu Apr 04 22:52:56 2013 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java ---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2012-11-30 12:17:00.000000000 +0000 -+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2012-11-30 15:09:47.167537938 +0000 +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-04-03 14:17:36.000000000 +0100 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-04-04 18:13:31.220314739 +0100 @@ -58,7 +58,7 @@ private CorbaConnection conn; @@ -11,8 +11,8 @@ public static synchronized void cleanCache( ORB orb ) { synchronized (iorMapLock) { diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java ---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2012-11-30 12:17:00.000000000 +0000 -+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2012-11-30 15:09:47.183538189 +0000 +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-04-03 14:17:36.000000000 +0100 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-04-04 18:13:31.232314934 +0100 @@ -1316,7 +1316,7 @@ protected void shutdownServants(boolean wait_for_completion) { Set oaset; @@ -23,8 +23,8 @@ for (ObjectAdapterFactory oaf : oaset) diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java ---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2012-11-30 12:17:00.000000000 +0000 -+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2012-11-30 15:09:47.183538189 +0000 +--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-04-03 14:17:36.000000000 +0100 ++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-04-04 18:13:31.236314998 +0100 @@ -108,7 +108,7 @@ private ThreadGroup threadGroup; @@ -44,8 +44,8 @@ for (WorkerThread wt : copy) { diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-11-30 15:19:29.516788251 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-11-30 15:20:13.301492126 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-04 18:13:31.240315064 +0100 @@ -62,9 +62,10 @@ */ public final class DocumentHandler extends DefaultHandler { @@ -61,8 +61,8 @@ private Reference loader; private ExceptionListener listener; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2012-11-30 15:09:47.183538189 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-04 18:13:31.244315128 +0100 @@ -46,7 +46,7 @@ */ public final class TypeResolver { @@ -82,8 +82,8 @@ CACHE.put(actual, map); } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-11-30 15:09:47.183538189 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-04 18:13:31.252315258 +0100 @@ -104,9 +104,9 @@ return this.def.compareTo(that.def); } @@ -155,8 +155,8 @@ for (int i = 0; i < layout.length(); i++) { if (layout.charAt(i++) != '[') diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-11-30 15:06:26.904399058 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-11-30 15:09:47.183538189 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-04 18:13:31.272315583 +0100 @@ -257,7 +257,7 @@ assert(basicCodings[_meta_default] == null); assert(basicCodings[_meta_canon_min] != null); @@ -166,7 +166,7 @@ for (int i = 0; i < basicCodings.length; i++) { Coding c = basicCodings[i]; if (c == null) continue; -@@ -1068,8 +1068,8 @@ +@@ -1067,8 +1067,8 @@ // Bootstrap support for CPRefBands. These are needed to record // intended CP indexes, before the CP has been created. @@ -177,7 +177,7 @@ int encodeRef(Entry e, Index ix) { -@@ -1704,7 +1704,7 @@ +@@ -1705,7 +1705,7 @@ protected int attrClassFileVersionMask; // Mapping from Attribute.Layout to Band[] (layout element bands). @@ -186,7 +186,7 @@ // Well-known attributes: protected final Attribute.Layout attrCodeEmpty; -@@ -1713,11 +1713,11 @@ +@@ -1714,11 +1714,11 @@ protected final Attribute.Layout attrConstantValue; // Mapping from Attribute.Layout to Integer (inverse of attrDefs) @@ -200,7 +200,7 @@ { for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) { assert(attrIndexLimit[i] == 0); -@@ -1912,7 +1912,7 @@ +@@ -1913,7 +1913,7 @@ protected List getPredefinedAttrs(int ctype) { assert(attrIndexLimit[ctype] != 0); @@ -209,7 +209,7 @@ // Remove nulls and non-predefs. for (int ai = 0; ai < attrIndexLimit[ctype]; ai++) { if (testBit(attrDefSeen[ctype], 1L< codeMap; @@ -281,8 +281,8 @@ Coding x1 = codeMap.get(x0); if (x1 == null) codeMap.put(x0, x1 = x0); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-04 18:13:31.292315907 +0100 @@ -919,7 +919,7 @@ public static Index[] partition(Index ix, int[] keys) { @@ -301,7 +301,7 @@ } part.add(cpMap[i]); } -@@ -1137,7 +1137,7 @@ +@@ -1139,7 +1139,7 @@ void completeReferencesIn(Set cpRefs, boolean flattenSigs) { cpRefs.remove(null); for (ListIterator work = @@ -311,8 +311,8 @@ Entry e = work.previous(); work.remove(); // pop stack diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-11-30 15:06:26.904399058 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-04-04 18:13:31.292315907 +0100 @@ -61,7 +61,7 @@ ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource"); @@ -350,8 +350,8 @@ for (String optline : options.split("\n")) { String[] words = optline.split("\\p{Space}+"); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-04 18:13:31.296315973 +0100 @@ -45,7 +45,7 @@ private final ArrayList flist; @@ -362,8 +362,8 @@ for (int i = 0 ; i < capacity ; i++) { flist.add(null); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-11-30 15:06:23.688348668 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-04-04 18:12:33.863382065 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-04-04 18:13:31.304316103 +0100 @@ -112,7 +112,7 @@ public static final Attribute.Layout attrSourceFileSpecial; public static final Map attrDefs; @@ -519,8 +519,8 @@ // Add to the end of ths list: if (!fileSet.contains(cls.file)) diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-11-30 15:06:26.908399120 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-04 18:13:31.308316167 +0100 @@ -686,7 +686,7 @@ cp_Signature_classes.expectLength(getIntTotal(numSigClasses)); cp_Signature_classes.readFrom(in); @@ -634,8 +634,8 @@ ClassEntry thisClass = curClass.thisClass; ClassEntry superClass = curClass.superClass; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-11-30 15:06:26.908399120 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-04 18:13:31.312316233 +0100 @@ -116,7 +116,7 @@ int[][] attrCounts; // count attr. occurences @@ -691,8 +691,8 @@ for (Class cls : pkg.classes) { if (!cls.hasInnerClasses()) continue; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-04 18:13:31.316316297 +0100 @@ -183,8 +183,8 @@ final Map attrDefs; final Map attrCommands; @@ -723,8 +723,8 @@ for (JarEntry je : Collections.list(jf.entries())) { InFile inFile = new InFile(jf, je); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-11-30 15:09:47.187538251 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-04 18:13:31.316316297 +0100 @@ -309,7 +309,7 @@ // As each new value is added, we assert that the value // was not already in the set. @@ -735,8 +735,8 @@ maxForDebug += fillp; int min = Integer.MIN_VALUE; // farthest from the center diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-11-30 15:06:26.908399120 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-04 18:13:31.320316362 +0100 @@ -48,8 +48,8 @@ */ @@ -767,8 +767,8 @@ while (res.remove(null)); return res; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-04 18:13:31.324316427 +0100 @@ -58,12 +58,12 @@ private final Map memberEntries; @@ -789,8 +789,8 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-11-30 15:06:26.908399120 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-04 18:13:31.328316492 +0100 @@ -233,7 +233,7 @@ props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50"); pkg.ensureAllClassFiles(); @@ -801,8 +801,8 @@ String name = file.nameString; JarEntry je = new JarEntry(Utils.getJarEntryName(name)); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-11-30 15:06:26.908399120 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-04 18:12:33.935383238 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-04 18:13:31.328316492 +0100 @@ -132,7 +132,7 @@ // Keep a TLS point to the global data and environment. // This makes it simpler to supply environmental options @@ -812,9 +812,33 @@ // convenience methods to access the TL globals static TLGlobals getTLGlobals() { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2013-04-04 18:13:31.752323374 +0100 +@@ -231,7 +231,7 @@ + * Create an empty ExecOptionPermissionCollection. + */ + public ExecOptionPermissionCollection() { +- permissions = new Hashtable<>(11); ++ permissions = new Hashtable(11); + all_allowed = false; + } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2013-04-04 18:13:31.752323374 +0100 +@@ -235,7 +235,7 @@ + * Create an empty ExecPermissionCollection. + */ + public ExecPermissionCollection() { +- permissions = new Vector<>(); ++ permissions = new Vector(); + } + + /** diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-04 18:13:31.332316557 +0100 @@ -1284,7 +1284,7 @@ */ public Collection toCollection() throws SQLException { @@ -834,8 +858,8 @@ // create a copy CachedRowSetImpl crsTemp; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-04 18:13:31.336316622 +0100 @@ -222,7 +222,7 @@ // either of the setter methods have been set. if(boolColId){ @@ -846,8 +870,8 @@ if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) { iMatchKey = cRowset.findColumn(strMatchKey); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-11-30 15:09:47.191538314 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-04 18:13:31.340316687 +0100 @@ -99,10 +99,10 @@ throws UnsupportedCallbackException { @@ -862,8 +886,8 @@ ConfirmationInfo confirmation = new ConfirmationInfo(); diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-11-30 15:09:47.195538377 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-04 18:13:31.344316752 +0100 @@ -152,7 +152,7 @@ // new configuration @@ -892,8 +916,8 @@ String value; while (peek(";") == false) { diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-11-30 15:09:47.195538377 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-04 18:13:31.344316752 +0100 @@ -184,7 +184,7 @@ private UnixNumericUserPrincipal UIDPrincipal; private UnixNumericGroupPrincipal GIDPrincipal; @@ -904,8 +928,8 @@ // initial state private Subject subject; diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2012-11-30 15:09:47.195538377 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-04 18:13:31.348316816 +0100 @@ -658,7 +658,7 @@ throw new FailedLoginException( "Unable to find X.509 certificate chain in keystore"); @@ -916,8 +940,8 @@ certList.add(fromKeyStore[i]); } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2012-11-30 12:17:08.000000000 +0000 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2012-11-30 15:09:47.195538377 +0000 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-03 14:18:05.000000000 +0100 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-04 18:13:31.352316882 +0100 @@ -76,7 +76,7 @@ private SolarisNumericUserPrincipal UIDPrincipal; private SolarisNumericGroupPrincipal GIDPrincipal; @@ -928,8 +952,8 @@ /** From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 22:34:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 05 Apr 2013 05:34:29 +0000 Subject: [Bug 1385] New: Open JDK error while running eclipse on fedora 17 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385 Bug ID: 1385 Summary: Open JDK error while running eclipse on fedora 17 Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: critical Priority: P3 Component: JamVM Assignee: xerxes at zafena.se Reporter: boop601 at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 848 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=848&action=edit Log file while getting terminated Eclipse getting closed automatically when i try to work in eclipse. I use eclipse helios, on fedora 17 with java 1.7.0. Eclipse is getting terminated with error message "A problem in the java-1.7.0-openjdk-1.7.0.9-2.3.8.0.fc17 package has been detected". Please give me a solution to fix this error. Thanks in advance . -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/a4808f10/attachment.html From ptisnovs at icedtea.classpath.org Fri Apr 5 00:35:18 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 05 Apr 2013 07:35:18 +0000 Subject: /hg/rhino-tests: Added various tests into ScriptEngineManagerCla... Message-ID: changeset 93cd198056e3 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=93cd198056e3 author: Pavel Tisnovsky date: Fri Apr 05 09:38:32 2013 +0200 Added various tests into ScriptEngineManagerClassTest: getAnnotation, getComponentType, getClasses, getDeclaredClasses, getDeclaringClass, getEnclosingClass, getEnclosingConstructor and getEnclosingMethod. diffstat: ChangeLog | 8 + src/org/RhinoTests/ScriptEngineManagerClassTest.java | 81 ++++++++++++++++++++ 2 files changed, 89 insertions(+), 0 deletions(-) diffs (106 lines): diff -r 45ce30265490 -r 93cd198056e3 ChangeLog --- a/ChangeLog Thu Apr 04 10:14:43 2013 +0200 +++ b/ChangeLog Fri Apr 05 09:38:32 2013 +0200 @@ -1,3 +1,11 @@ +2013-04-05 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Added various tests into ScriptEngineManagerClassTest: + getAnnotation, getComponentType, getClasses, getDeclaredClasses, + getDeclaringClass, getEnclosingClass, getEnclosingConstructor and + getEnclosingMethod. + 2013-04-04 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: diff -r 45ce30265490 -r 93cd198056e3 src/org/RhinoTests/ScriptEngineManagerClassTest.java --- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Thu Apr 04 10:14:43 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Fri Apr 05 09:38:32 2013 +0200 @@ -860,6 +860,87 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.scriptEngineManagerClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getClasses() + */ + protected void testGetClasses() { + Class[] cls = this.scriptEngineManagerClass.getClasses(); + assertNotNull(cls, "getClasses() returns null"); + assertEquals(cls.length, 0, "getClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredClasses() + */ + protected void testGetDeclaredClasses() { + Class[] cls = this.scriptEngineManagerClass.getDeclaredClasses(); + assertNotNull(cls, "getDeclaredClasses() returns null"); + assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getDeclaringClass() + */ + protected void testGetDeclaringClass() { + Class cls = this.scriptEngineManagerClass.getDeclaringClass(); + assertNull(cls, "getDeclaringClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.scriptEngineManagerClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.scriptEngineManagerClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.scriptEngineManagerClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptEngineManager */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Fri Apr 5 00:48:16 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 05 Apr 2013 07:48:16 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltUsingBgColorAlpha t... Message-ID: changeset b97916c69b85 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=b97916c69b85 author: Pavel Tisnovsky date: Fri Apr 05 09:51:31 2013 +0200 Ten new tests added into BitBltUsingBgColorAlpha test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java | 150 ++++++++++++++++ 2 files changed, 155 insertions(+), 0 deletions(-) diffs (172 lines): diff -r e3f6ec64979e -r b97916c69b85 ChangeLog --- a/ChangeLog Thu Apr 04 10:58:44 2013 +0200 +++ b/ChangeLog Fri Apr 05 09:51:31 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-05 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: + Ten new tests added into BitBltUsingBgColorAlpha test suite. + 2013-04-04 Pavel Tisnovsky * src/org/gfxtest/framework/CommonRenderingStyles.java: diff -r e3f6ec64979e -r b97916c69b85 src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Thu Apr 04 10:58:44 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Fri Apr 05 09:51:31 2013 +0200 @@ -808,6 +808,156 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 1.00f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 1.00f); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. * Background color is set to Color.black. * From jvanek at redhat.com Fri Apr 5 01:58:04 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 10:58:04 +0200 Subject: Upcoming releases of IcedTea-Web 1.2, 1.3, 1.4 Message-ID: <515E921C.2030207@redhat.com> Hi all! There are two releases of IcedTea-Web approaching: We would like to release 1.2 and 1.3 in 17th of April Please count with freezing of branches in week 10-17.4, but there is not so much traffic on branches anyway. At 1th of May is planed release of IcedTea-Web 1.4! This release is bringing many improvements and IcedTea-Web was never as stable as is now. I would like to encourage every distribution to move to this release. Unless something unlucky will be found in 1.4, some time later the 1.2 will be proclaimed dead. Please count with head frozen in last week of April. Best regards J. From jvanek at redhat.com Fri Apr 5 06:06:28 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 15:06:28 +0200 Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning decision for entire codebase In-Reply-To: <515DADB2.4020807@redhat.com> References: <515DADB2.4020807@redhat.com> Message-ID: <515ECC54.10002@redhat.com> On 04/04/2013 06:43 PM, Adam Domurad wrote: > As discussed between Jiri and myself. This allows for the decision chosen with unsigned applet confirmation to apply to an entire codebase, and not just a single applet. > > 2013-04-04 Adam Domurad > > Allow remembering applet confirmation for whole codebase. > * netx/net/sourceforge/jnlp/resources/Messages.properties: > Added SRememberAppletOnly, SRememberCodebase messages > * netx/net/sourceforge/jnlp/security/SecurityDialogs.java > (showUnsignedWarningDialog): Use UnsignedWarningAction > * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java > (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction > * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: > Introduce UnsignedWarningAction, add additional confirmation choices > * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: > Support remembering action for entire codebase. > > Happy hacking, > -Adam Ok. Nothing directly against this patch. Working fine and so this can go to head (after nit is fixed) and we will see users feedback after 1.4 will be out unless you *want* to think about it little bit more:) Only nit (and RFC IRC here:) - Do you think you can show both documentbase and codebase to the user? You have now text say "Unsigned Applet from CODEBASE wants to run...." I would like "Unsugned applet from page DOCUMENTBASE with code from CODEBASE wants to run..." And in radio button then +SRememberCodebase=For site {0} where {0} will be CODEBASE (as it is what you are allowing. (maybe it will need some Layout changes as codebase can grow, but you have the radiobuttons on separate row so it should be ok) My concerns are about codebase. Well, it is quite hidden information for user but there is mostly what one expects. My imagination runs in ways like: "allow just htis appelt" => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E \Qhttp://localhost:34556/\E JavascriptSet.jar (ou how I miss main class here...) "allow everything from page http://localhost:34556/JavascriptSet.html" => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E .* "allow everything from domain http://localhost:34556/" => A 1365157531641 \Qhttp://localhost:34556\E.* .* allow everything from codebase http://localhost:34556/" => A 1365157531641 .* \Qhttp://localhost:34556/\E Both last two can have longer path "where to cut": http://domain.net/dir2/dir1/dir0/page.html Then best for me would be to allow/deny: http://domain.net/dir2/dir1/dir0/page.html http://domain.net/dir2/dir1/dir0/.* http://domain.net/dir2/dir1/.* http://domain.net/dir2/.* http://domain.net/.* And some combinations with .* and without it and so on.... :) But I know you do not like this. One of the reasons I wont your patch in is, that I'm not sure how to intelligently connect codebase and documentbase :-/ So this can be nice task for some new person. And less code/logic == less errors. J. ps, thank you for disagreeing with me on several topics in this issue;) From chrisphi at icedtea.classpath.org Fri Apr 5 06:04:46 2013 From: chrisphi at icedtea.classpath.org (chrisphi at icedtea.classpath.org) Date: Fri, 05 Apr 2013 13:04:46 +0000 Subject: /hg/icedtea6: Bug 1362: Fedora 19 / rawhide FTBFS SIGILL Message-ID: changeset 3584aac9d62d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3584aac9d62d author: chrisphi date: Fri Apr 05 09:01:48 2013 -0400 Bug 1362: Fedora 19 / rawhide FTBFS SIGILL Summary: Fix reg alloc problem in thumb2.cpp compiler. diffstat: arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 30 ++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 5 deletions(-) diffs (85 lines): diff -r 241d297ff5e3 -r 3584aac9d62d arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 27 21:14:08 2013 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Apr 05 09:01:48 2013 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2013 Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -399,6 +400,8 @@ static jmp_buf compiler_error_env; +#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED) + #ifdef PRODUCT #define JASSERT(cond, msg) 0 @@ -3505,8 +3508,6 @@ #define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3]) #define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4]) -#define POP(jstack) ((jstack)->stack[--(jstack)->depth]) -#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r)) #define SWAP(jstack) do { \ Reg r = (jstack)->stack[(jstack)->depth-1]; \ (jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \ @@ -3516,6 +3517,17 @@ #define JSTACK_REG(jstack) jstack_reg(jstack) #define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer) +int PUSH(Thumb2_Stack *jstack, unsigned reg) { + jstack->stack[jstack->depth] = reg; + jstack->depth++; + return reg; +} + +int POP(Thumb2_Stack *jstack) { + jstack->depth--; + return jstack->stack[jstack->depth]; +} + static const unsigned last_clear_bit[] = { 3, // 0000 3, // 0001 @@ -3532,11 +3544,13 @@ 1, // 1100 1, // 1101 0, // 1110 - 0, // 1111 + 0, // 1111 // No registers available... }; #define LAST_CLEAR_BIT(mask) last_clear_bit[mask] +unsigned long thumb2_register_allocation_failures = 0; + unsigned jstack_reg(Thumb2_Stack *jstack) { unsigned *stack = jstack->stack; @@ -3547,7 +3561,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } @@ -3563,7 +3580,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1)); - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:04:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 05 Apr 2013 13:04:58 +0000 Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=3584aac9d62d author: chrisphi date: Fri Apr 05 09:01:48 2013 -0400 Bug 1362: Fedora 19 / rawhide FTBFS SIGILL Summary: Fix reg alloc problem in thumb2.cpp compiler. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/018837ae/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:13:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 05 Apr 2013 13:13:29 +0000 Subject: [Bug 1386] New: Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386 Bug ID: 1386 Summary: Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: mate at sci.brooklyn.cuny.edu CC: unassigned at icedtea.classpath.org Created attachment 849 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=849&action=edit It is the report by Think or Swim when the program stopped Error occurred when running Think or Swim program. The program unexpectedly stopped at various times. Bug reports are attached. Several similar bug reports are available, but your website seems to allow only one attachment. System is Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/83b051eb/attachment.html From chrisphi at icedtea.classpath.org Fri Apr 5 06:25:40 2013 From: chrisphi at icedtea.classpath.org (chrisphi at icedtea.classpath.org) Date: Fri, 05 Apr 2013 13:25:40 +0000 Subject: /hg/release/icedtea6-1.12: Bug 1362: Fedora 19 / rawhide FTBFS ... Message-ID: changeset 623621d29d04 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=623621d29d04 author: chrisphi date: Fri Apr 05 09:01:48 2013 -0400 Bug 1362: Fedora 19 / rawhide FTBFS SIGILL Summary: Fix reg alloc problem in thumb2.cpp compiler. diffstat: arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 30 ++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 5 deletions(-) diffs (85 lines): diff -r 12f5fe9e85d3 -r 623621d29d04 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 20 11:00:45 2013 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Apr 05 09:01:48 2013 -0400 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2013 Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -399,6 +400,8 @@ static jmp_buf compiler_error_env; +#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED) + #ifdef PRODUCT #define JASSERT(cond, msg) 0 @@ -3505,8 +3508,6 @@ #define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3]) #define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4]) -#define POP(jstack) ((jstack)->stack[--(jstack)->depth]) -#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r)) #define SWAP(jstack) do { \ Reg r = (jstack)->stack[(jstack)->depth-1]; \ (jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \ @@ -3516,6 +3517,17 @@ #define JSTACK_REG(jstack) jstack_reg(jstack) #define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer) +int PUSH(Thumb2_Stack *jstack, unsigned reg) { + jstack->stack[jstack->depth] = reg; + jstack->depth++; + return reg; +} + +int POP(Thumb2_Stack *jstack) { + jstack->depth--; + return jstack->stack[jstack->depth]; +} + static const unsigned last_clear_bit[] = { 3, // 0000 3, // 0001 @@ -3532,11 +3544,13 @@ 1, // 1100 1, // 1101 0, // 1110 - 0, // 1111 + 0, // 1111 // No registers available... }; #define LAST_CLEAR_BIT(mask) last_clear_bit[mask] +unsigned long thumb2_register_allocation_failures = 0; + unsigned jstack_reg(Thumb2_Stack *jstack) { unsigned *stack = jstack->stack; @@ -3547,7 +3561,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } @@ -3563,7 +3580,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1)); - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:25:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 05 Apr 2013 13:25:49 +0000 Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=623621d29d04 author: chrisphi date: Fri Apr 05 09:01:48 2013 -0400 Bug 1362: Fedora 19 / rawhide FTBFS SIGILL Summary: Fix reg alloc problem in thumb2.cpp compiler. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/ad469812/attachment.html From jvanek at redhat.com Fri Apr 5 06:59:54 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 15:59:54 +0200 Subject: [icedtea-web] RFC: use tagsoup to try and parse malformed JNLP files Message-ID: <515ED8DA.9070905@redhat.com> pinging this to not let it die -------- Original Message -------- Subject: RE: [icedtea-web] RFC: use tagsoup to try and parse malformed JNLP files Date: Wed, 06 Jun 2012 15:12:17 -0400 From: Adam Domurad To: distro-pkg-dev at openjdk.java.net I have attached the patch of what I ended up with after applying the patch to the recent code, to make further review easier hopefully. I have also attached only the updated test changes from the same patch. (Note that my changes to Makefile.am are dubious, I was just doing what was necessary to test the patch.) I'd appreciate if another reviewer ran the tests as I'm having trouble getting with running a few of them (in general). From what I see though this patch passes more tests than normal, including two of the malformed XML unit tests. >From what I've seen the changes to the code look solid, I'd comment more but I'm not too sure of the impact of some of the changes. > Hi, > > I have come across a number of JNLP files that are not valid xml. Netx > can not parse these files using a xml parser, and fails to run them. I > spent some time looking for a solution and came across TagSoup[1]. The > TagSoup library parses a malformed HTML document into a well-formed > xml-like HTML document, but it works almost perfectly for our purposes too. > > The attached patch makes use of TagSoup for parsing input jnlp files. > > Parsing is currently implemented in two passes. In the first pass, > TagSoup reads the "xml" (which can be malformed and hence not really > xml), and outputs valid XML. Netx then uses this valid XML and uses it's > own XML parser to parse the file. > > The patch requires TagSoup as an optional dependency. To use TagSoup, > run configure (--with-tagsoup can be used to point to a TagSoup jar). To > not use TagSoup (even if it installed), use --with-tagsoup=no > > The patch also adds an additional command line option, -xml ,to the > javaws binary. This option can be used to force Netx to use the normal > xml parser instead of TagSoup to parse the jnlp file. > > Any thoughts or comments? > > ChangeLog: > 2011-01-10 Omair Majid > > * Makefile.am: Add NETX_EXCLUDE_SRCS, NETX_DUMMY_CLASSPATH > (netx-source-files.txt): Selectively exclude some sources from > compilation. > (stamps/netx.stamp): Depend on netx-dummy.jar > (netx-dummy.jar): New target. Empty jar. Used so there is always at > least one class on the classpath. > ($(NETX_DIR)/launcher/%.o): Add classpath. > * NEWS: Update with fix. > * acinclude.m4: Add IT_CHECK_FOR_TAGSOUP. > * configure.ac: Call IT_CHECK_FOR_TAGSOUP. > * netx/net/sourceforge/jnlp/JNLPFile.java: Add new member > parserSettings. > (JNLPFile(URL)): Pass a ParserSettings object. > (JNLPFile(URL,boolean)): Refactored into... > (JNLPFile(URL,ParserSettings)): New method. > (JNLPFile(URL,Version,boolean)): Refactored into... > (JNLPFile(URL,Version,ParserSettings)): New method. > (JNLPFile(URL,Version,boolean,UpdatePolicy)): Refactored into... > (JNLPFile(URL,Version,ParserSettings,UpdatePolicy)): New method. > (JNLPFile(URL,String,Version,boolean,UpdatePolicy)): Refactored > into... > (JNLPFile(URL,String,Version,ParserSettings,UpdatePolicy)): New > method. > (JNLPFile(InputStream,boolean)): Refactored into... > (JNLPFile(InputStream,ParserSettings)): New method. > (getParserSettings): New method. > (parse(Node,boolean,URL)): Refactored into... > (parse(InputStream,URL)): New method. Invoke parser to get the root > node and then parse it. > * netx/net/sourceforge/jnlp/Launcher.java > (toFile): Use new ParserSettings object. > * netx/net/sourceforge/jnlp/Parser.java > (Parser(JNLPFile,URL,Node,boolean,boolean)): Refactored into... > (Parser(JNLPFile,URL,Node,ParserSettings)): New method. > (getRootNode): Implementation moved into XMLParser.getRootNode. > Selects the right subclass of XMLParser to use. > (getEncoding): Moved to XMLParser. > * netx/net/sourceforge/jnlp/ParserSettings.java: New file. > (ParserSettings): New method. > (ParserSettings(boolean,boolean,boolean)): New method. > (isExtensionAllowed): New method. > (isMalfromedXmlAllowed): New method. > (isStrict): New method. > * netx/net/sourceforge/jnlp/XMLParser.java > (getRootNode): New method. Contains implementation from > Parser.getRootNode. > (getEncoding): New method. Moved from Parser. > * netx/net/sourceforge/jnlp/MalformedXMLParser.java: New file. > (getRootNode): New method. Transform input into valid xml and > delegate to parent to parse it. > (xmlizeInputStream): New method. Read contents from an input stream > and transform it into valid xml. > * netx/net/sourceforge/jnlp/resources/Messages.properties: Add > BOXml. > * netx/net/sourceforge/jnlp/runtime/Boot.java: Add -xml option. > (getFile): Parse -xml option and create a new ParserSettings object > based on it. > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > (getInstance(URL,String,Version,UpdatePolicy)): Refactored into... > (getInstance(URL,String,Version,ParserSettings,UpdatePolicy): New > method. > (initializeExtensions): Use the same parser settings to parse the > extension as used in the original file. > > Cheers, > Omair > > [1] http://home.ccil.org/~cowan/XML/tagsoup/ -------------- next part -------------- A non-text attachment was scrubbed... Name: update_to_patch.patch Type: text/x-patch Size: 41913 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/0e261339/update_to_patch.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: test_changes.patch Type: text/x-patch Size: 9777 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/0e261339/test_changes.patch From jvanek at redhat.com Fri Apr 5 07:02:34 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 16:02:34 +0200 Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue classloaders In-Reply-To: <515DDFF1.60405@redhat.com> References: <515DDFF1.60405@redhat.com> Message-ID: <515ED97A.8020406@redhat.com> On 04/04/2013 10:17 PM, Adam Domurad wrote: > This puts a bandaid over http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is probably too generous. > With this, the SweetHome3D JNLP [1] runs again. The applet version had worked before. > > This is explicitly *not* wanted for HEAD. I am posting this for review now to be considered for any release branches where a proper fix is not found. (1.4 definitely, who knows maybe even previous & future releases. But such hackery should not be in HEAD.) > > 2013-XX-XX Adam Domurad > > Hack to ensure AppContext is set correctly. > * netx/net/sourceforge/jnlp/Launcher.java > (forceContextClassLoaderHack): Force stored class-loader for > thread-group's AppContext and EventQueue to be our JNLPClassLoader. > (createApplet): Call forceContextClassLoaderHack. > (createAppletObject): Call forceContextClassLoaderHack. > (createApplication): Call forceContextClassLoaderHack. > > I have not found any potential problems this may cause (and I've digged quite deep). Let me know of any concerns. > > [1] www.sweethome3d.com/SweetHome3D.jnlp > > Happy hacking, > -Adam Hi! Thanx for this. Can you write (point to) more information about the (possible) patch for head? Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to push to it. Anyway It will need some focus during 1.4 release regression testing to be sure we have not broken anything.... Btw - changes like this NEEDS reproducers. The rule from wiki[1] is not obeyed those times too offten. The development of ITW have speed up a lot now, but we are loosing a testcoverage a bit :( [1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches "IcedTea-Web code changes/new feature should be accompanied with appropriate tests (JUnit class and/or reproducer). If no tests are added/modified, changes should be accompanied with an explanation as to why. " J. From adomurad at redhat.com Fri Apr 5 08:01:05 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 05 Apr 2013 11:01:05 -0400 Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue classloaders In-Reply-To: <515ED97A.8020406@redhat.com> References: <515DDFF1.60405@redhat.com> <515ED97A.8020406@redhat.com> Message-ID: <515EE731.6050000@redhat.com> On 04/05/2013 10:02 AM, Jiri Vanek wrote: > On 04/04/2013 10:17 PM, Adam Domurad wrote: >> This puts a bandaid over >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is >> probably too generous. >> With this, the SweetHome3D JNLP [1] runs again. The applet version >> had worked before. >> >> This is explicitly *not* wanted for HEAD. I am posting this for >> review now to be considered for any release branches where a proper >> fix is not found. (1.4 definitely, who knows maybe even previous & >> future releases. But such hackery should not be in HEAD.) >> >> 2013-XX-XX Adam Domurad >> >> Hack to ensure AppContext is set correctly. >> * netx/net/sourceforge/jnlp/Launcher.java >> (forceContextClassLoaderHack): Force stored class-loader for >> thread-group's AppContext and EventQueue to be our JNLPClassLoader. >> (createApplet): Call forceContextClassLoaderHack. >> (createAppletObject): Call forceContextClassLoaderHack >> (createApplication): Call forceContextClassLoaderHack. >> >> I have not found any potential problems this may cause (and I've >> digged quite deep). Let me know of any concerns. >> >> [1] www.sweethome3d.com/SweetHome3D.jnlp >> >> Happy hacking, >> -Adam > > Hi! Thanx for this. > > Can you write (point to) more information about the (possible) patch > for head? > > Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to > push to it. Anyway It will need some focus during 1.4 release > regression testing to be sure we have not broken anything.... > Btw - changes like this NEEDS reproducers. The rule from wiki[1] is > not obeyed those times too offten. The development of ITW have speed > up a lot now, but we are loosing a testcoverage a bit :( While I certainly can't say I disagree, I do think some of the changes you are considering here apply broadly enough to already be covered by the reproducer suite (eg initialization changes). Also, I do sometimes write pure testing patches :-) > > [1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches > "IcedTea-Web code changes/new feature should be accompanied with > appropriate tests (JUnit class and/or reproducer). If no tests are > added/modified, changes should be accompanied with an explanation as > to why. " > > J. Sorry for not pointing to the reproducer (I actually thought this reproducer was already in HEAD). Please check the email: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader For the reproducer and additional information. To summarize: JNLPClassLoader needs to be created before the AppContext. The naive approach results in unclickable pop-ups (although it's a little hard to explain why without digging into it again). The correct approach is to ensure all pop-ups occur on some 'security thread', or to have JNLPClassLoader creation be far more light-weight. Sorry for fairly unsatisfying reply, I have lost the details a bit. I'll have to pick this up again some time. Happy hacking, -Adam From jvanek at redhat.com Fri Apr 5 08:32:22 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 17:32:22 +0200 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <515C3805.1090802@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> Message-ID: <515EEE86.3000703@redhat.com> On 04/03/2013 04:09 PM, Adam Domurad wrote: > On 03/28/2013 07:53 AM, Jiri Vanek wrote: > > On 03/27/2013 09:20 PM, Adam Domurad wrote: > >> It appears having parameters in the URL for the stored document-base > >> can cause problems with some > >> applets, namely the Oracle LMS applet. > >> > >> A small bit of refactoring is needed to move the URL stripping code: > >> > >> Refactoring ChangeLog: > >> 2013-03-26 Adam Domurad > >> > >> * > >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java > >> > >> (normalizeUrlAndStripParams): Moved. > >> * netx/net/sourceforge/jnlp/util/UrlUtils.java > >> (normalizeUrlAndStripParams): New, moved from > >> UnsignedAppletTrustConfirmation. > >> * > >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java > >> > >> > >> (testNormalizeUrlAndStripParams): Moved. > >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: > >> New, has (testNormalizeUrlAndStripParams) from > >> UnsignedAppletTrustConfirmationTest. > >> > >> > >> And the fix itself: > >> 2013-03-26 Adam Domurad > >> > >> * netx/net/sourceforge/jnlp/NetxPanel.java > >> (NetxPanel): Ensure documentURL has stripped parameters > >> > >> Happy hacking, > >> -Adam > > > > The refactoring is ok. But to use completely stripped codeabse in base > > codebase sounds to me as quite big change. As far as i looked, I was > > not able to judge all the impact and would rather stay with more > > conservative change or with very deep testing of this change on your > > side. > > Actually, stripping in the code-base was always done. The bug was that > URL's such as: > > http://example.com/?test/ > > Were not being stripped properly, because the last part looked like a > directory. > However after further testing it looks like Oracle does not strip the > document-base. It was a bit ugly but I have managed to ensure that our > documentbase & codebase are always the same as Oracle's. > > There is some refactoring attached that moves normalizeUrl from > ResourceTracker to UrlUtils, as well as adding an option whether to > encode file:// based URL's or not. For compatibility purposes, we must > encode URL's in the code-base & document-base, even if local. This is a > good idea for matching purposes too. > > However, for actually accessing these URL's, the file:// based URL's > should not be encoded. > > add-url-utils.patch ChangeLog: > 2013-04-02 Adam Domurad > > * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no > longer used constants. Remove (normalizeUrl). Update calls. > * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports. > Update calls. > * > netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: > Ensure file://-protocol URLs are encoded. > * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl), > and related utility methods. Allow for optionally encoding file:// > URLs. > Thanx for deep checks! > There is some non-ideal code in the fix itself, because first we pass a > stripped document-base, and then restore it to its original form. I > blame this on the rigidity of inheriting from AppletViewerPanel, but I > did not want to remove this inheritance in this patch. > > properly-strip-codebase.patch: > 2013-04-02 Adam Domurad > > Ensure code-base is stripped of parameters that look like > directories. > * netx/net/sourceforge/jnlp/NetxPanel.java > (NetxPanel): Ensure code-base is created from stripped > document-base. > Don't strip document-base itself. > (runLoader): Ensure URL used for resource loaded is not > encoded. > > The biggest change I think is the fact that the document-base & > code-base are now encoded, otherwise code-bases were (almost) always > stripped already. The code-base is decoded for resource-loading > purposes, as it was before. > > It looks fine from my testing (so far). Ok, I thnk this look ok even for upcoming release. Anyway - before push please add unittests for all new static methods. and also enhance already existing test in UrlUtilsTest for new corner cases (file/http/ftp x , true/false...) . + /* Decode a percent-encoded URL. Catch checked exceptions and log. */ + public static URL decodeUrlQuietly(URL url) { + try { + return new URL(URLDecoder.decode(url.toString(), UTF8)); + } catch (IOException e) { + return url; + } + } + Where is the log? if it is adding of ex.printStacktrace then ok without further review. J. From adomurad at redhat.com Fri Apr 5 08:38:21 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 05 Apr 2013 11:38:21 -0400 Subject: [rfc][icedtea-web] dialogue for set jre dir In-Reply-To: <515D5372.1070204@redhat.com> References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com> <514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com> <515C2CAF.1010408@redhat.com> <515D5372.1070204@redhat.com> Message-ID: <515EEFED.1080000@redhat.com> [.. Everything snipped ..] Looks good overall. - Detecting Oracle JDK works. However I'm not sure this is a 'great' result if nothing works. Also note: http://i.imgur.com/OwmiVVq.png This should be more clear that the warning is because we are not selecting OpenJDK, and perhaps say why (ie, plugin won't work) More issues: Using javaws with Oracle JDK: Your custom JRE /usr/java/jdk1.7.0_13 read from deployment.properties under key deployment.jre.dir as /usr/java/jdk1.7.0_13 is not valid. Using default (/usr/lib/jvm/java-openjdk/jre/bin/java, /usr/lib/jvm/java-openjdk/jre/lib/rt.jar) in attempt to start. Please fix this. Note thate bin/javaws exists in this directory. Adding a / to the end of the dir didn't help. It did at least fall back to IcedTea correctly. Using plugin with Oracle JDK: "Your custom jre (/lib/rt.jar check) /usr/java/jdk1.7.0_13/ is not valid. Please fix deployment.jre.dir in your deployment.properties. In attempt to run using default one. Exception in thread "PluginMessageHandlerWorker1" java.lang.IllegalAccessError: class net.sourceforge.jnlp.NetxPanel cannot access its superclass sun.applet.AppletViewerPanel" The exception is expected -- but the 'is not valid' message is not. Additionally it does not seem to be falling back correctly. Nits: - It'd be nice if the explicit validate option were greyed out when automatic validation is enabled - There's a YES/NO/CANCEL option on the warning dialogue (the one in my image), but it seems NO & CANCEL do the same thing. It'd be nice if one of the options reverted to the default. Comments on code: > [.. snip ..] > - File jreFile = new File(System.getProperty("java.home") + > File.separator + "lib" > - + File.separator + DEPLOYMENT_CONFIG); > + String jrePath = null; > + try { > + Map> tmpProperties = > parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE); > + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR); > + if (jreSetting != null) { > + jrePath = jreSetting.getValue(); > + } > + } catch (Exception ex) { [nit] Rather explicitly catch exceptions we want to ignore, but OK. > + ex.printStackTrace(); > + } > + > [..snip..] > + try { > + p = sb.start(); > + p.waitFor(); > + processErrorStream = > StreamUtils.readStreamAsString(p.getErrorStream()); > + processStdOutStream = > StreamUtils.readStreamAsString(p.getInputStream()); > + r = p.exitValue(); > + //System.err.println(processErrorStream); > + //System.out.println(processStdOutStream); Please remove these comments. > + processErrorStream = processErrorStream.toLowerCase(); > + processStdOutStream = processStdOutStream.toLowerCase(); > + } catch (Exception ex) {; [nit] Rather just catch any checked exceptions, but OK. > + ex.printStackTrace(); > + > + } > + if (r == null) { > + validationResult += "" + > Translator.R("CPJVMnotLaunched") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (r.intValue() != 0) { > + validationResult += "" + > Translator.R("CPJVMnoSuccess") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("openjdk") || > processStdOutStream.contains("openjdk")) { > + validationResult += "" + > Translator.R("CPJVMopenJdkFound") + ""; > + return new JvmValidationResult(validationResult, > JvmValidationResult.STATE.VALID_JDK); > + } > + if (processErrorStream.contains("ibm") || > processStdOutStream.contains("ibm")) { > + validationResult += "" + > Translator.R("CPJVMibmFound") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("gij") || > processStdOutStream.contains("gij")) { > + validationResult += "" + > Translator.R("CPJVMgijFound") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("oracle") || > processStdOutStream.contains("oracle") > + || processErrorStream.contains("java(tm)") || > processStdOutStream.contains("java(tm)")) { > + validationResult += "" + > Translator.R("CPJVMoracleFound") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + validationResult += "" + > Translator.R("CPJVMstrangeProcess") + ""; > + return new JvmValidationResult(validationResult, > JvmValidationResult.STATE.NOT_VALID_JDK); > + > + } > + > + private String resetValidationResult(final String value, String > result, String headerKey) { > + return "" + Translator.R(headerKey) + ":
" + > value + "
" + result + "
"; > + } > } > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr > 04 11:21:04 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr > 04 12:09:43 2013 +0200 > @@ -310,6 +310,29 @@ > CPDebuggingDescription=Enable options here to help with debugging > CPDesktopIntegrationDescription=Set whether or not to allow creation > of desktop shortcut. > CPJVMPluginArguments=Set JVM arguments for plugin. > +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK > +CPJVMitwExecValidation=Validate JVM for icedtea-web > +CPJVMPluginSelectExec=Select JVM for icedtea-web > +CPJVMnone=No validation result for > +CPJVMvalidated=Validation result for > +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used. > +CPJVMnotLaunched=Error, process was not launched, see console output > for more info. > +CPJVMnoSuccess=Error, process have not ended successfully, see output > for details, but your java is not set correctly. > +CPJVMopenJdkFound=Excellent, OpenJDK detected > +CPJVMoracleFound=Great, Oracle java detected > +CPJVMibmFound=Good, IBM java detected > +CPJVMgijFound=Warning, gij detected > +CPJVMstrangeProcess=Your path had an executable process, but it was > not recognized. Verify the Java version in the console output. > +CPJVMnotDir=Error, The path you chose is not a directory. > +CPJVMisDir=Ok, the path you chose is a directory. > +CPJVMnoJava=Error, the directory you chose does not contain bin/java. > +CPJVMjava=Ok, the directory you chose contains bin/java. > +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar > +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar. > +CPJVMPluginAllowTTValidation=Allow type-time validation > +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) > with following error message: > +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not > able to start.
You will have to modify or remove {0} > property in your configuration file {1}.
You should try to > search for OpenJDK in your system or be sure you know what you are doing. > + > > # Control Panel - Buttons > CPButAbout=About... > diff -r fbb6b3605538 netx/net/sourceforge/jnlp/util/StreamUtils.java > --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Apr 04 > 11:21:04 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Apr 04 > 12:09:43 2013 +0200 > @@ -37,9 +37,11 @@ > > package net.sourceforge.jnlp.util; > > +import java.io.BufferedReader; > import java.io.Closeable; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > > public class StreamUtils { > > @@ -71,4 +73,21 @@ > } > } > } > + > + > + public static String readStreamAsString(InputStream stream) > throws IOException { > + InputStreamReader is = new InputStreamReader(stream); > + StringBuilder sb = new StringBuilder(); > + BufferedReader br = new BufferedReader(is); > + while (true) { > + String read = br.readLine(); > + if (read == null) { > + break; > + } > + sb.append(read); > + > + } > + > + return sb.toString(); > + } > } Thanks for moving this method! Nothing else stands out code-wise, thanks for sticking with it. As far as I know, the bugs I mentioned above are related to already-pushed patches, so they can (and should) be fixed separately. To summarize before pushing, I view these as a must: - Remove commented out println's - Clarify the 'error message' that isn't an error in the image I showed. Please explicitly mention that the warning concerns not choosing IcedTea. And of course, consider the nits. You may push without sending to list again, your call. Happy hacking, -Adam From jvanek at redhat.com Fri Apr 5 09:04:44 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 18:04:44 +0200 Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue classloaders In-Reply-To: <515EE731.6050000@redhat.com> References: <515DDFF1.60405@redhat.com> <515ED97A.8020406@redhat.com> <515EE731.6050000@redhat.com> Message-ID: <515EF61C.6090306@redhat.com> On 04/05/2013 05:01 PM, Adam Domurad wrote: > On 04/05/2013 10:02 AM, Jiri Vanek wrote: >> On 04/04/2013 10:17 PM, Adam Domurad wrote: >>> This puts a bandaid over http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is probably too generous. >>> With this, the SweetHome3D JNLP [1] runs again. The applet version had worked before. >>> >>> This is explicitly *not* wanted for HEAD. I am posting this for review now to be considered for any release branches where a proper fix is not found. (1.4 definitely, who knows maybe even previous & future releases. But such hackery should not be in HEAD.) >>> >>> 2013-XX-XX Adam Domurad >>> >>> Hack to ensure AppContext is set correctly. >>> * netx/net/sourceforge/jnlp/Launcher.java >>> (forceContextClassLoaderHack): Force stored class-loader for >>> thread-group's AppContext and EventQueue to be our JNLPClassLoader. >>> (createApplet): Call forceContextClassLoaderHack. >>> (createAppletObject): Call forceContextClassLoaderHack >>> (createApplication): Call forceContextClassLoaderHack. >>> >>> I have not found any potential problems this may cause (and I've digged quite deep). Let me know of any concerns. >>> >>> [1] www.sweethome3d.com/SweetHome3D.jnlp >>> >>> Happy hacking, >>> -Adam >> >> Hi! Thanx for this. >> >> Can you write (point to) more information about the (possible) patch for head? >> >> Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to push to it. Anyway It will need some focus during 1.4 release regression testing to be sure we have not broken anything.... >> Btw - changes like this NEEDS reproducers. The rule from wiki[1] is not obeyed those times too offten. The development of ITW have speed up a lot now, but we are loosing a testcoverage a bit :( > > While I certainly can't say I disagree, I do think some of the changes you are considering here apply broadly enough to already be covered by the reproducer suite (eg initialization changes). Also, I do sometimes write pure testing patches :-) > >> >> [1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches >> "IcedTea-Web code changes/new feature should be accompanied with appropriate tests (JUnit class and/or reproducer). If no tests are added/modified, changes should be accompanied with an explanation as to why. " >> >> J. > > Sorry for not pointing to the reproducer (I actually thought this reproducer was already in HEAD). > > Please check the email:arg! > [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader > For the reproducer and additional information. > > To summarize: JNLPClassLoader needs to be created before the AppContext. The naive approach results in unclickable pop-ups (although it's a little hard to explain why without digging into it again). The correct approach is to ensure all pop-ups occur on some 'security thread', or to have JNLPClassLoader creation be far more light-weight. > > Sorry for fairly unsatisfying reply, I have lost the details a bit. I'll have to pick this up again some time. > > Happy hacking, > -Adam Argh! ReflectiveOperationException is jdk7 specific! From jvanek at redhat.com Fri Apr 5 09:18:15 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 18:18:15 +0200 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <50F5898A.40108@redhat.com> References: <50F5898A.40108@redhat.com> Message-ID: <515EF947.8090104@redhat.com> On 01/15/2013 05:53 PM, Adam Domurad wrote: > This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D furniture dragging. > > I'll preface by saying, I'm not particularly fond of the changes in this patch, but they have to be done to fix JNLP applications that load resources on the Swing thread, like eg SweetHome3D. > > The patch adds a flag to JNLPClassLoader that specifies whether it has been initialized. The default for getInstance remains the same, it grabs an initialized JNLPClassLoader. However an alternate getInstance was added to be able to grab JNLPClassLoader that hasn't been fully initialized. > > The problem with initialization: > - To create AppContext we need JNLPClassLoader object constructed > - To construct JNLPClassLoader we must initialize it > - Initializing JNLPClassLoader implies downloading all resources, and updating Swing components > > However, we cannot update swing components before we create our AppContext, or the result will be a mess (eg unclickable popups). > In essence, it's a bootstrapping problem. So the patch makes it possible to get a constructed JNLPClassLoader, which is initialized in a separate step. > > What else was tried ? > The only other option is to set the context classloader to some other classloader. A proxy classloader can be created that initially points to the system classloader, but can be set to JNLPClassLoader after it is created. Determined too much of a hack, and getParent cannot be properly proxied. > > Basically with this patch, the life-time of the context classloaders for each thread is: > 1. By default system classloader is context classloader. > 2. Create new AppContext, capture JNLPClassLoader that isn't yet valid. Ensure we keep using system classloader as context classloader for all threads. > 3. Initialize JNLPClassLoader. Before start of applet, ensure all threads context classloaders are set to (now initialized) JNLPClassLoader. > > Recommendations welcome -- it was a lot of deliberation before I decided to take this route. If someone has a simpler/cleaner solution than by all means suggest it! > > Reproducer changelog: > 2013-XX-XX Adam Domurad > > * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: > Test AppContext context classloader from HTML applet > * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: > Test AppContext context classloader from JNLP application > * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: > Test AppContext context classloader from JNLP applet > * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: > Print out context classloader for thread & AppContext, for > current thread & Swing thread. > * tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: > Test runner for AppContextHasJNLPClassLoader > > REPRODUCER NOTES: > This exposes an additional bug in JNLP applets. start/init incorrectly runs on the Swing thread, and invokeAndWait hangs forever. I'm not sure how this wasn't caught, but the JNLP applet reproducer is broken pending a separate bug fix. > > Fixes changelog: > 2013-XX-XX Adam Domurad > > Fix PR1251: AppContext has wrong context classloader > * netx/net/sourceforge/jnlp/Launcher.java: > Remove unused context flag. Make new AppContext capture not-yet- > initialized JNLPClassLoader. > * netx/net/sourceforge/jnlp/NetxPanel.java: > Move PluginBridge initialization into constructor. > Make new AppContext capture not-yet-initialized JNLPClassLoader. > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > Add initialization flag. Move part of constructor into initialize > method. Modify getInstance to allow temporarily bypassing > initialization. > * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java > (createAppContext): New, creates an AppContext that captures the given > (not necessarily yet valid) > > -Adam The reproducer have to go in with your new patch. It should go both to 1.4 and to head (with proper known to fail). But needs fixing - missing @TestInBrowser annotation is quite crucial :) Without patch, all three failed (but thebrowser test because of unset browser) with patch (after fixing of annotation) Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest) stdout should contains 'main-thread: thread context classloader == JNLPClassLoader', but did not - This test is known to fail Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext - google-chrome Should the jnlp fial? ( i guess yes as it is mark as known), but have faile dto early: /* Connecting /home/jvanek/icedtea-web-image/bin/javaws http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp Fri Apr 05 18:10:40 CEST 2013 net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680) net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589) net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550) AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:616) org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106) net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) org.junit.runners.ParentRunner.run(ParentRunner.java:236) org.junit.runners.Suite.runChild(Suite.java:128) org.junit.runners.Suite.runChild(Suite.java:24) org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) org.junit.runners.ParentRunner.run(ParentRunner.java:236) org.junit.runner.JUnitCore.run(JUnitCore.java:157) org.junit.runner.JUnitCore.run(JUnitCore.java:136) org.junit.runner.JUnitCore.run(JUnitCore.java:117) CommandLine.runMain(CommandLine.java:49) CommandLine.runMainAndExit(CommandLine.java:28) CommandLine.main(CommandLine.java:24) and now the important one: */ Attempted to download http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp, but failed to connect! netx: Read Error: Could not read or parse the JNLP file. (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp) reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader* -rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10 AppContextHasJNLPClassLoaderForJNLPApplet.jnlp -rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10 AppContextHasJNLPClassLoader.html -rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08 AppContextHasJNLPClassLoader.jar -rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10 AppContextHasJNLPClassLoader.jnlp Wrong name perhaps? J. Anyway why was the review of initial patch[1] abandoned? [1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader - in january 2013 From adomurad at redhat.com Fri Apr 5 09:49:33 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 05 Apr 2013 12:49:33 -0400 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <515EEE86.3000703@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com> Message-ID: <515F009D.2080108@redhat.com> On 04/05/2013 11:32 AM, Jiri Vanek wrote: > On 04/03/2013 04:09 PM, Adam Domurad wrote: >> On 03/28/2013 07:53 AM, Jiri Vanek wrote: >> > On 03/27/2013 09:20 PM, Adam Domurad wrote: >> >> It appears having parameters in the URL for the stored document-base >> >> can cause problems with some >> >> applets, namely the Oracle LMS applet. >> >> >> >> A small bit of refactoring is needed to move the URL stripping code: >> >> >> >> Refactoring ChangeLog: >> >> 2013-03-26 Adam Domurad >> >> >> >> * >> >> >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java >> >> >> >> (normalizeUrlAndStripParams): Moved. >> >> * netx/net/sourceforge/jnlp/util/UrlUtils.java >> >> (normalizeUrlAndStripParams): New, moved from >> >> UnsignedAppletTrustConfirmation. >> >> * >> >> >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java >> >> >> >> >> >> (testNormalizeUrlAndStripParams): Moved. >> >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: >> >> New, has (testNormalizeUrlAndStripParams) from >> >> UnsignedAppletTrustConfirmationTest. >> >> >> >> >> >> And the fix itself: >> >> 2013-03-26 Adam Domurad >> >> >> >> * netx/net/sourceforge/jnlp/NetxPanel.java >> >> (NetxPanel): Ensure documentURL has stripped parameters >> >> >> >> Happy hacking, >> >> -Adam >> > >> > The refactoring is ok. But to use completely stripped codeabse in >> base >> > codebase sounds to me as quite big change. As far as i looked, I was >> > not able to judge all the impact and would rather stay with more >> > conservative change or with very deep testing of this change on your >> > side. >> >> Actually, stripping in the code-base was always done. The bug was that >> URL's such as: >> >> http://example.com/?test/ >> >> Were not being stripped properly, because the last part looked like a >> directory. >> However after further testing it looks like Oracle does not strip the >> document-base. It was a bit ugly but I have managed to ensure that our >> documentbase & codebase are always the same as Oracle's. >> >> There is some refactoring attached that moves normalizeUrl from >> ResourceTracker to UrlUtils, as well as adding an option whether to >> encode file:// based URL's or not. For compatibility purposes, we must >> encode URL's in the code-base & document-base, even if local. This is a >> good idea for matching purposes too. >> >> However, for actually accessing these URL's, the file:// based URL's >> should not be encoded. >> >> add-url-utils.patch ChangeLog: >> 2013-04-02 Adam Domurad >> >> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no >> longer used constants. Remove (normalizeUrl). Update calls. >> * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports. >> Update calls. >> * >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: >> >> Ensure file://-protocol URLs are encoded. >> * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl), >> and related utility methods. Allow for optionally encoding file:// >> URLs. >> > Thanx for deep checks! > >> There is some non-ideal code in the fix itself, because first we pass a >> stripped document-base, and then restore it to its original form. I >> blame this on the rigidity of inheriting from AppletViewerPanel, but I >> did not want to remove this inheritance in this patch. >> >> properly-strip-codebase.patch: >> 2013-04-02 Adam Domurad >> >> Ensure code-base is stripped of parameters that look like >> directories. >> * netx/net/sourceforge/jnlp/NetxPanel.java >> (NetxPanel): Ensure code-base is created from stripped >> document-base. >> Don't strip document-base itself. >> (runLoader): Ensure URL used for resource loaded is not >> encoded. >> >> The biggest change I think is the fact that the document-base & >> code-base are now encoded, otherwise code-bases were (almost) always >> stripped already. The code-base is decoded for resource-loading >> purposes, as it was before. >> >> It looks fine from my testing (so far). > > > Ok, I thnk this look ok even for upcoming release. Anyway - before > push please add unittests for all new static methods. and also enhance > already existing test in UrlUtilsTest for new corner cases > (file/http/ftp x , true/false...) . I think the only corner case here is file:// + true/false. Included additional tests. > > + /* Decode a percent-encoded URL. Catch checked exceptions and > log. */ > + public static URL decodeUrlQuietly(URL url) { > + try { > + return new URL(URLDecoder.decode(url.toString(), UTF8)); > + } catch (IOException e) { > + return url; > + } > + } > + > > Where is the log? if it is adding of ex.printStacktrace then ok > without further review. Good catch, I'll add this before pushing. > > J. Unit tests attached. ChangeLog: 2013-XX-XX Adam Domurad * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: Added tests for decodeUrlQuietly, normalizeUrl, normalizeUrlQuietly. -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: url-utils-unit-tests.patch Type: text/x-patch Size: 2345 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/67d9953c/url-utils-unit-tests.patch From jvanek at redhat.com Fri Apr 5 10:14:18 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 05 Apr 2013 19:14:18 +0200 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <515F009D.2080108@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com> <515F009D.2080108@redhat.com> Message-ID: <515F066A.7060005@redhat.com> On 04/05/2013 06:49 PM, Adam Domurad wrote: > On 04/05/2013 11:32 AM, Jiri Vanek wrote: >> On 04/03/2013 04:09 PM, Adam Domurad wrote: >>> On 03/28/2013 07:53 AM, Jiri Vanek wrote: >>> > On 03/27/2013 09:20 PM, Adam Domurad wrote: >>> >> It appears having parameters in the URL for the stored document-base >>> >> can cause problems with some >>> >> applets, namely the Oracle LMS applet. >>> >> >>> >> A small bit of refactoring is needed to move the URL stripping code: >>> >> >>> >> Refactoring ChangeLog: >>> >> 2013-03-26 Adam Domurad >>> >> >>> >> * >>> >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java >>> >> >>> >> (normalizeUrlAndStripParams): Moved. >>> >> * netx/net/sourceforge/jnlp/util/UrlUtils.java >>> >> (normalizeUrlAndStripParams): New, moved from >>> >> UnsignedAppletTrustConfirmation. >>> >> * >>> >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java >>> >> >>> >> >>> >> (testNormalizeUrlAndStripParams): Moved. >>> >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: >>> >> New, has (testNormalizeUrlAndStripParams) from >>> >> UnsignedAppletTrustConfirmationTest. >>> >> >>> >> >>> >> And the fix itself: >>> >> 2013-03-26 Adam Domurad >>> >> >>> >> * netx/net/sourceforge/jnlp/NetxPanel.java >>> >> (NetxPanel): Ensure documentURL has stripped parameters >>> >> >>> >> Happy hacking, >>> >> -Adam >>> > >>> > The refactoring is ok. But to use completely stripped codeabse in base >>> > codebase sounds to me as quite big change. As far as i looked, I was >>> > not able to judge all the impact and would rather stay with more >>> > conservative change or with very deep testing of this change on your >>> > side. >>> >>> Actually, stripping in the code-base was always done. The bug was that >>> URL's such as: >>> >>> http://example.com/?test/ >>> >>> Were not being stripped properly, because the last part looked like a >>> directory. >>> However after further testing it looks like Oracle does not strip the >>> document-base. It was a bit ugly but I have managed to ensure that our >>> documentbase & codebase are always the same as Oracle's. >>> >>> There is some refactoring attached that moves normalizeUrl from >>> ResourceTracker to UrlUtils, as well as adding an option whether to >>> encode file:// based URL's or not. For compatibility purposes, we must >>> encode URL's in the code-base & document-base, even if local. This is a >>> good idea for matching purposes too. >>> >>> However, for actually accessing these URL's, the file:// based URL's >>> should not be encoded. >>> >>> add-url-utils.patch ChangeLog: >>> 2013-04-02 Adam Domurad >>> >>> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no >>> longer used constants. Remove (normalizeUrl). Update calls. >>> * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports. >>> Update calls. >>> * >>> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: >>> Ensure file://-protocol URLs are encoded. >>> * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl), >>> and related utility methods. Allow for optionally encoding file:// >>> URLs. >>> >> Thanx for deep checks! >> >>> There is some non-ideal code in the fix itself, because first we pass a >>> stripped document-base, and then restore it to its original form. I >>> blame this on the rigidity of inheriting from AppletViewerPanel, but I >>> did not want to remove this inheritance in this patch. >>> >>> properly-strip-codebase.patch: >>> 2013-04-02 Adam Domurad >>> >>> Ensure code-base is stripped of parameters that look like >>> directories. >>> * netx/net/sourceforge/jnlp/NetxPanel.java >>> (NetxPanel): Ensure code-base is created from stripped >>> document-base. >>> Don't strip document-base itself. >>> (runLoader): Ensure URL used for resource loaded is not >>> encoded. >>> >>> The biggest change I think is the fact that the document-base & >>> code-base are now encoded, otherwise code-bases were (almost) always >>> stripped already. The code-base is decoded for resource-loading >>> purposes, as it was before. >>> >>> It looks fine from my testing (so far). >> >> >> Ok, I thnk this look ok even for upcoming release. Anyway - before push please add unittests for all new static methods. and also enhance already existing test in UrlUtilsTest for new corner cases (file/http/ftp x , true/false...) . > > I think the only corner case here is file:// + true/false. Included additional tests. > >> >> + /* Decode a percent-encoded URL. Catch checked exceptions and log. */ >> + public static URL decodeUrlQuietly(URL url) { >> + try { >> + return new URL(URLDecoder.decode(url.toString(), UTF8)); >> + } catch (IOException e) { >> + return url; >> + } >> + } >> + >> >> Where is the log? if it is adding of ex.printStacktrace then ok without further review. > > Good catch, I'll add this before pushing. > >> >> J. > > Unit tests attached. > ChangeLog: > 2013-XX-XX Adam Domurad > > * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: > Added tests for decodeUrlQuietly, normalizeUrl, normalizeUrlQuietly. > > > -Adam > At least something ;) Thank you. From adomurad at redhat.com Fri Apr 5 11:08:21 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 05 Apr 2013 14:08:21 -0400 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <515EF947.8090104@redhat.com> References: <50F5898A.40108@redhat.com> <515EF947.8090104@redhat.com> Message-ID: <515F1315.7080805@redhat.com> On 04/05/2013 12:18 PM, Jiri Vanek wrote: > On 01/15/2013 05:53 PM, Adam Domurad wrote: >> This fixes one of the (numerous) issues in ADOMII, and fixes >> SweetHome3D furniture dragging. >> >> I'll preface by saying, I'm not particularly fond of the changes in >> this patch, but they have to be done to fix JNLP applications that >> load resources on the Swing thread, like eg SweetHome3D. >> >> The patch adds a flag to JNLPClassLoader that specifies whether it >> has been initialized. The default for getInstance remains the same, >> it grabs an initialized JNLPClassLoader. However an alternate >> getInstance was added to be able to grab JNLPClassLoader that hasn't >> been fully initialized. >> >> The problem with initialization: >> - To create AppContext we need JNLPClassLoader object constructed >> - To construct JNLPClassLoader we must initialize it >> - Initializing JNLPClassLoader implies downloading all resources, and >> updating Swing components >> >> However, we cannot update swing components before we create our >> AppContext, or the result will be a mess (eg unclickable popups). >> In essence, it's a bootstrapping problem. So the patch makes it >> possible to get a constructed JNLPClassLoader, which is initialized >> in a separate step. >> >> What else was tried ? >> The only other option is to set the context classloader to some other >> classloader. A proxy classloader can be created that initially points >> to the system classloader, but can be set to JNLPClassLoader after it >> is created. Determined too much of a hack, and getParent cannot be >> properly proxied. >> >> Basically with this patch, the life-time of the context classloaders >> for each thread is: >> 1. By default system classloader is context classloader. >> 2. Create new AppContext, capture JNLPClassLoader that isn't yet >> valid. Ensure we keep using system classloader as context classloader >> for all threads. >> 3. Initialize JNLPClassLoader. Before start of applet, ensure all >> threads context classloaders are set to (now initialized) >> JNLPClassLoader. >> >> Recommendations welcome -- it was a lot of deliberation before I >> decided to take this route. If someone has a simpler/cleaner solution >> than by all means suggest it! >> >> Reproducer changelog: >> 2013-XX-XX Adam Domurad >> >> * >> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: >> Test AppContext context classloader from HTML applet >> * >> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: >> Test AppContext context classloader from JNLP application >> * >> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: >> Test AppContext context classloader from JNLP applet >> * >> tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: >> Print out context classloader for thread & AppContext, for >> current thread & Swing thread. >> * >> tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: >> Test runner for AppContextHasJNLPClassLoader >> >> REPRODUCER NOTES: >> This exposes an additional bug in JNLP applets. start/init >> incorrectly runs on the Swing thread, and invokeAndWait hangs >> forever. I'm not sure how this wasn't caught, but the JNLP applet >> reproducer is broken pending a separate bug fix. >> >> Fixes changelog: >> 2013-XX-XX Adam Domurad >> >> Fix PR1251: AppContext has wrong context classloader >> * netx/net/sourceforge/jnlp/Launcher.java: >> Remove unused context flag. Make new AppContext capture not-yet- >> initialized JNLPClassLoader. >> * netx/net/sourceforge/jnlp/NetxPanel.java: >> Move PluginBridge initialization into constructor. >> Make new AppContext capture not-yet-initialized JNLPClassLoader. >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >> Add initialization flag. Move part of constructor into initialize >> method. Modify getInstance to allow temporarily bypassing >> initialization. >> * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java >> (createAppContext): New, creates an AppContext that captures the given >> (not necessarily yet valid) >> >> -Adam > > > The reproducer have to go in with your new patch. > It should go both to 1.4 and to head (with proper known to fail). > But needs fixing - missing @TestInBrowser annotation is quite crucial :) > > Without patch, all three failed (but thebrowser test because of unset > browser) > > with patch (after fixing of annotation) > Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext > FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest) > stdout should contains 'main-thread: thread context classloader == > JNLPClassLoader', but did not > - This test is known to fail Fixed > Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext - > google-chrome > > > Should the jnlp fial? ( i guess yes as it is mark as known), but have > faile dto early: See http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 for why it is known-to-fail > > /* > Connecting /home/jvanek/icedtea-web-image/bin/javaws > http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp > > Fri Apr 05 18:10:40 CEST 2013 > > net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680) > > net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589) > net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550) > AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86) > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > java.lang.reflect.Method.invoke(Method.java:616) > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > > net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) > > net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) > > net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106) > > net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) > > org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > org.junit.runners.ParentRunner.run(ParentRunner.java:236) > org.junit.runners.Suite.runChild(Suite.java:128) > org.junit.runners.Suite.runChild(Suite.java:24) > org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > org.junit.runners.ParentRunner.run(ParentRunner.java:236) > org.junit.runner.JUnitCore.run(JUnitCore.java:157) > org.junit.runner.JUnitCore.run(JUnitCore.java:136) > org.junit.runner.JUnitCore.run(JUnitCore.java:117) > CommandLine.runMain(CommandLine.java:49) > CommandLine.runMainAndExit(CommandLine.java:28) > CommandLine.main(CommandLine.java:24) > > and now the important one: */ > > Attempted to download > http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp, > but failed to connect! > netx: Read Error: Could not read or parse the JNLP file. > (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp) > > reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader* > -rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10 > AppContextHasJNLPClassLoaderForJNLPApplet.jnlp > -rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10 > AppContextHasJNLPClassLoader.html > -rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08 > AppContextHasJNLPClassLoader.jar > -rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10 > AppContextHasJNLPClassLoader.jnlp > > Wrong name perhaps? Fixed > > J. > > > Anyway why was the review of initial patch[1] abandoned? > [1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context > classloader - in january 2013 I spent a while on it struggling with the correct design before I started working on other things. I still intend to get back to it, but the initial patch & approach I worked on was rejected. I still need to come up with a good way to approach this; it isn't trivial. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: appcontext-reproducer2.patch Type: text/x-patch Size: 16570 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/cc2f550f/appcontext-reproducer2.patch From andrew at icedtea.classpath.org Sun Apr 7 17:26:00 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:26:00 +0000 Subject: /hg/release/icedtea7-2.1: PR1363: Fedora 19 / rawhide FTBFS SIGILL Message-ID: changeset 9ee6ad4f47a9 in /hg/release/icedtea7-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=9ee6ad4f47a9 author: Andrew John Hughes date: Mon Apr 08 01:25:42 2013 +0100 PR1363: Fedora 19 / rawhide FTBFS SIGILL 2013-04-08 Andrew John Hughes * Makefile.am: (HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head, bringing in PR1363 ARM fix. (HOTSPOT_CHANGESET): Likewise. * NEWS: Updated. diffstat: ChangeLog | 8 ++++++++ Makefile.am | 4 ++-- NEWS | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diffs (49 lines): diff -r e0baa69f348f -r 9ee6ad4f47a9 ChangeLog --- a/ChangeLog Wed Mar 13 09:18:57 2013 +0000 +++ b/ChangeLog Mon Apr 08 01:25:42 2013 +0100 @@ -1,3 +1,11 @@ +2013-04-08 Andrew John Hughes + + * Makefile.am: + (HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head, + bringing in PR1363 ARM fix. + (HOTSPOT_CHANGESET): Likewise. + * NEWS: Updated. + 2013-03-13 Andrew John Hughes * patches/8002344-krb5loginmodule.patch, diff -r e0baa69f348f -r 9ee6ad4f47a9 Makefile.am --- a/Makefile.am Wed Mar 13 09:18:57 2013 +0000 +++ b/Makefile.am Mon Apr 08 01:25:42 2013 +0100 @@ -4,7 +4,7 @@ JDK_UPDATE_VERSION = 03 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -HOTSPOT_CHANGESET = f6f4d5e6c1dd +HOTSPOT_CHANGESET = 4e4dd75d54e7 CORBA_CHANGESET = 313f1ee32118 JAXP_CHANGESET = 691f82a0de0b JAXWS_CHANGESET = a48ebab198a4 @@ -12,7 +12,7 @@ LANGTOOLS_CHANGESET = c63c8a2164e4 OPENJDK_CHANGESET = c1c649636704 -HOTSPOT_SHA256SUM = 52029034eb2140c06f567aad85f23e7a7d45977b6df441bf7f6ebe30767f9964 +HOTSPOT_SHA256SUM = 46b4bb240e3ebea1e151c57aa9afb0cb4706f4fc467b651a6c5090101352853d CORBA_SHA256SUM = 9326c1fc0dedcbc2af386cb73b80727416e24664ccbf766221450f6e2138e952 JAXP_SHA256SUM = 17a242852010f535c11f874aae07a6d60f7007541fe1586666638cc6d58f8f1f JAXWS_SHA256SUM = 57dab4837468b775ff55e21352c7920f3f35c1e6ceb130154fb89eeb163e176f diff -r e0baa69f348f -r 9ee6ad4f47a9 NEWS --- a/NEWS Wed Mar 13 09:18:57 2013 +0000 +++ b/NEWS Mon Apr 08 01:25:42 2013 +0100 @@ -12,6 +12,9 @@ New in release 2.1.8 (2013-04-XX): +* Bug fixes + - PR1363: Fedora 19 / rawhide FTBFS SIGILL + New in release 2.1.7 (2013-03-11): * Security fixes From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:26:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:26:12 +0000 Subject: [Bug 1363] [IcedTea7] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1363 --- Comment #1 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea7-2.1?cmd=changeset;node=9ee6ad4f47a9 author: Andrew John Hughes date: Mon Apr 08 01:25:42 2013 +0100 PR1363: Fedora 19 / rawhide FTBFS SIGILL 2013-04-08 Andrew John Hughes * Makefile.am: (HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head, bringing in PR1363 ARM fix. (HOTSPOT_CHANGESET): Likewise. * NEWS: Updated. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/f275c61d/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:30:28 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:30:28 +0000 Subject: [Bug 1386] Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #849|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/6459d008/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:31:56 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:31:56 +0000 Subject: [Bug 1386] Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |6-1.12.4 --- Comment #1 from Andrew John Hughes --- Please give details on how to reproduce this. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/efac64e5/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:32:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:32:37 +0000 Subject: [Bug 1384] Crash with importing project in eclipse on OpenSuSE x64 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #847|text/x-log |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/a0290caa/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:33:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:33:32 +0000 Subject: [Bug 1384] Crash with importing project in eclipse on OpenSuSE x64 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew John Hughes --- This is a crash in native code. You should report it to Eclipse. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/a24cd723/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:34:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:34:18 +0000 Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com --- Comment #1 from Andrew John Hughes --- Also, this doesn't appear to be IcedTea. Where did you obtain this JDK? -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/c4f2d194/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:35:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:35:05 +0000 Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #848|text/x-log |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/1f9b618d/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:35:51 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:35:51 +0000 Subject: [Bug 1383] 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=1383 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Hardware|64-bit |x86_64 Resolution|--- |INVALID Severity|critical |normal --- Comment #3 from Andrew John Hughes --- This is a failure in native code and is not running on IcedTea. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/02b560d5/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:37:09 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:37:09 +0000 Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #2 from Andrew John Hughes --- Crash in native code. Please file with Eclipse. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/6e9a5fcb/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:38:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:38:05 +0000 Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Component|JamVM |IcedTea Assignee|xerxes at zafena.se |gnu.andrew at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/bde168a9/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:38:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:38:50 +0000 Subject: [Bug 1332] Error running Netbeans 7.3 on Debian 6.0.7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1332 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com Severity|critical |normal -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/7b5465bd/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:40:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 00:40:32 +0000 Subject: [Bug 1332] Error running Netbeans 7.3 on Debian 6.0.7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1332 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Component|JamVM |IcedTea Version|unspecified |6-1.8.13 Resolution|--- |WONTFIX Assignee|xerxes at zafena.se |gnu.andrew at redhat.com --- Comment #1 from Andrew John Hughes --- This version is no longer supported. Please reopen, with instructions on how to reproduce, if you can do so on a supported version. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/1d95d87f/attachment.html From ptisnovs at icedtea.classpath.org Mon Apr 8 01:13:10 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 08 Apr 2013 08:13:10 +0000 Subject: /hg/rhino-tests: Updated four tests for (Open)JDK8 API: getConst... Message-ID: changeset b3477ca1f6b3 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=b3477ca1f6b3 author: Pavel Tisnovsky date: Mon Apr 08 10:16:25 2013 +0200 Updated four tests for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 6 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 66 +++++++++++++++++- 2 files changed, 68 insertions(+), 4 deletions(-) diffs (126 lines): diff -r 93cd198056e3 -r b3477ca1f6b3 ChangeLog --- a/ChangeLog Fri Apr 05 09:38:32 2013 +0200 +++ b/ChangeLog Mon Apr 08 10:16:25 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-08 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Updated four tests for (Open)JDK8 API: getConstructor, + getDeclaredConstructor, getConstructors and getDeclaredConstructors. + 2013-04-05 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r 93cd198056e3 -r b3477ca1f6b3 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Apr 05 09:38:32 2013 +0200 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Apr 08 10:16:25 2013 +0200 @@ -288,6 +288,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); testedConstructors_jdk6.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); @@ -295,8 +296,21 @@ testedConstructors_jdk7.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); testedConstructors_jdk7.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); + testedConstructors_jdk8.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); + testedConstructors_jdk8.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.abstractScriptEngineClass.getConstructors(); @@ -321,6 +335,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); testedConstructors_jdk6.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); @@ -328,8 +343,21 @@ testedConstructors_jdk7.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); testedConstructors_jdk7.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); + testedConstructors_jdk8.put("public javax.script.AbstractScriptEngine()", "javax.script.AbstractScriptEngine"); + testedConstructors_jdk8.put("public javax.script.AbstractScriptEngine(javax.script.Bindings)", "javax.script.AbstractScriptEngine"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.abstractScriptEngineClass.getDeclaredConstructors(); @@ -359,7 +387,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {}); constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk8.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -393,7 +436,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {}); constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk8.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Mon Apr 8 01:41:59 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 08 Apr 2013 08:41:59 +0000 Subject: /hg/gfx-test: Various helper methods added into BitBltUsingBgCol... Message-ID: changeset 381ff1eacb01 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=381ff1eacb01 author: Pavel Tisnovsky date: Mon Apr 08 10:45:15 2013 +0200 Various helper methods added into BitBltUsingBgColor test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 221 +++++++++++++++++++++ 2 files changed, 226 insertions(+), 0 deletions(-) diffs (243 lines): diff -r b97916c69b85 -r 381ff1eacb01 ChangeLog --- a/ChangeLog Fri Apr 05 09:51:31 2013 +0200 +++ b/ChangeLog Mon Apr 08 10:45:15 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-08 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Helper methods added into BitBltUsingBgColor test suite. + 2013-04-05 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: diff -r b97916c69b85 -r 381ff1eacb01 src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Fri Apr 05 09:51:31 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Mon Apr 08 10:45:15 2013 +0200 @@ -303,6 +303,227 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_3BYTE_BGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageType3ByteRGB(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_4BYTE_ABGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_4BYTE_ABGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageType4ByteABGRPre(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeIntARGBPre(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_BGR, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_INT_RGB, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_BYTE_BINARY + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeByteBinary(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_BYTE_GRAY + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeByteGray(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_BYTE_GRAY, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_BYTE_INDEXED + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeByteIndexed(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_BYTE_INDEXED, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB, backgroundColor); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param backgroundColor + * background color + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltCheckerBufferedImageTypeUshortGRAY(TestImage image, Graphics2D graphics2d, + Color backgroundColor) + { + return CommonBitmapOperations.doBitBltTestWithCheckerImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY, backgroundColor); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. * Background color is set to Color.black. * From bugzilla-daemon at icedtea.classpath.org Mon Apr 8 02:29:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Apr 2013 09:29:01 +0000 Subject: [Bug 1204] Archive URL wrongly resolved In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1204 helpcrypto at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |helpcrypto at gmail.com --- Comment #6 from helpcrypto at gmail.com --- (In reply to comment #3) > Hi, we use the "i" parameter with a random value to force the downloading of > the applet. We had some cases where the applet was resolved from the java > plugin cache, even if a newer one was available. To avoid caching im using this, so far seems to be working: BTW: Consider testing your applet on ie7, cause it use relative URLs and that gave me some headaches when using different document base and loading content from there within Java. I agree with you Java shouldnt remove the i=... part of the URL. Thanks for reporting! -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/df2ecae4/attachment.html From jvanek at redhat.com Mon Apr 8 02:38:45 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 08 Apr 2013 11:38:45 +0200 Subject: [rfc][icedtea-web] dialogue for set jre dir In-Reply-To: <515EEFED.1080000@redhat.com> References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com> <514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com> <515C2CAF.1010408@redhat.com> <515D5372.1070204@redhat.com> <515EEFED.1080000@redhat.com> Message-ID: <51629025.6050809@redhat.com> On 04/05/2013 05:38 PM, Adam Domurad wrote: > [.. Everything snipped ..] > > Looks good overall. > > - Detecting Oracle JDK works. However I'm not sure this is a 'great' result if nothing works. Also > note: > http://i.imgur.com/OwmiVVq.png > > This should be more clear that the warning is because we are not selecting OpenJDK, and perhaps say > why (ie, plugin won't work) > > More issues: > Using javaws with Oracle JDK: > Your custom JRE /usr/java/jdk1.7.0_13 read from deployment.properties under key deployment.jre.dir > as /usr/java/jdk1.7.0_13 is not valid. Using default (/usr/lib/jvm/java-openjdk/jre/bin/java, > /usr/lib/jvm/java-openjdk/jre/lib/rt.jar) in attempt to start. Please fix this. > Yaaaah, there was really a bug in detection code! See line 352 of new and 328 of old patches... It explains also the wrong fallback - it was fallbacking only for rt.jar ( @@ -325,7 +349,7 @@ + } + } + File rtFile = new File(cmd + File.separator + "lib" + File.separator + "rt.jar"); -+ if (javaFile.isFile()) { ++ if (rtFile.isFile()) { + validationResult += "" + Translator.R("CPJVMrtJar") + "
"; + } else { ) > Note thate bin/javaws exists in this directory. Adding a / to the end of the dir didn't help. It did > at least fall back to IcedTea correctly. > > Using plugin with Oracle JDK: > "Your custom jre (/lib/rt.jar check) /usr/java/jdk1.7.0_13/ is not valid. Please fix > deployment.jre.dir in your deployment.properties. In attempt to run using default one. > Exception in thread "PluginMessageHandlerWorker1" java.lang.IllegalAccessError: class > net.sourceforge.jnlp.NetxPanel cannot access its superclass sun.applet.AppletViewerPanel" > catch (Exception ex){ //O:) } >> + p.waitFor(); >> + processErrorStream = StreamUtils.readStreamAsString(p.getErrorStream()); >> + processStdOutStream = StreamUtils.readStreamAsString(p.getInputStream()); >> + r = p.exitValue(); >> + //System.err.println(processErrorStream); >> + //System.out.println(processStdOutStream); > ... >> +CPJVMjava=Ok, the directory you chose contains bin/java. >> +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar >> +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar. >> +CPJVMPluginAllowTTValidation=Allow type-time validation >> +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) with following error message: >> +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not able to start.
You will have >> to modify or remove {0} property in your configuration file {1}.
You should try >> to search for OpenJDK in your system or be sure you know what you are doing. >> + Message a bit improved: CPJVMNotokMessage2=You can see this message because of
* Some validation have not passed
* Non-OpenJDK is detected
With invalid JDK IcedTea-Web will probably not able to start.
You will have to modify or remove {0} property in your configuration file {1}.
You should try to search for OpenJDK in your system or be sure you know what you are doing. >> ... > > Nothing else stands out code-wise, thanks for sticking with it. > > As far as I know, the bugs I mentioned above are related to already-pushed patches, so they can (and > should) be fixed separately. > > To summarize before pushing, I view these as a must: > - Remove commented out println's > - Clarify the 'error message' that isn't an error in the image I showed. Please explicitly mention > that the warning concerns not choosing IcedTea. > > And of course, consider the nits. > > You may push without sending to list again, your call. rather resend if you can recheck...I will pusl later evening today Thanx for review J. -------------- next part -------------- A non-text attachment was scrubbed... Name: setupaAbleJVM-itwsettings_4.diff Type: text/x-patch Size: 23520 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/21c22a09/setupaAbleJVM-itwsettings_4.diff From jvanek at redhat.com Mon Apr 8 03:04:03 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 08 Apr 2013 12:04:03 +0200 Subject: [rfc][icedtea-web] help for both itw-settings and dialogue of extended applets security Message-ID: <51629613.9020307@redhat.com> This is adding pretty long help to ITW settings and to click-and-play dialogue. Used is interactive (inside-linked) jeditorpane with some more links..Well the help appeared to be quite long.... Text itself was revised by local documentarists so should be ok both grammatically and stylistically. Code itself is pretty simple though... J. -------------- next part -------------- A non-text attachment was scrubbed... Name: addedHelp_1.patch Type: text/x-patch Size: 25274 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/ad652caf/addedHelp_1.patch From jvanek at redhat.com Mon Apr 8 04:56:01 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 08 Apr 2013 13:56:01 +0200 Subject: [rfc][icedtea-web] Stop supporting old version of NPAPI for 1.4 In-Reply-To: <515C56C3.7030005@redhat.com> References: <1342127331.2560.6.camel@voip-10-15-18-79.yyz.redhat.com> <4FFF3FA0.3030905@redhat.com> <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> <515C56C3.7030005@redhat.com> Message-ID: <5162B051.3060705@redhat.com> On 04/03/2013 06:20 PM, Adam Domurad wrote: > On 07/13/2012 04:14 PM, Adam Domurad wrote: >> On Thu, 2012-07-12 at 17:20 -0400, Omair Majid wrote: >>> On 07/12/2012 05:08 PM, Adam Domurad wrote: >>>> Hi. This was briefly discussed with Deepak, and by the time 1.4 is >>>> released, there will be no need to support the versions of firefox that >>>> have the old api. >>> Could you tell us what versions are these? What about other browsers >>> that we care about? >>> >>> Thanks, >>> Omair >> Sorry, replied off-list. Resent. >> >> Hi Omair. This affects API versions <1.9, and only affects Firefox <4. >> >> >> > > Ping ? Think this would help maintainability going forward. > -Adam Around and around this looks good. But I'm hesitating for 1.4 with it... I would rather save this patch for head after branching. Thank yo for looking into it. J. From jvanek at icedtea.classpath.org Mon Apr 8 06:08:38 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 08 Apr 2013 13:08:38 +0000 Subject: /hg/icedtea-web: Removed good --sm-client-disable switch. No lon... Message-ID: changeset 89d62a76c9f9 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=89d62a76c9f9 author: Jiri Vanek date: Mon Apr 08 15:08:11 2013 +0200 Removed good --sm-client-disable switch. No longer supported by epiphany. diffstat: ChangeLog | 5 +++++ tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java | 7 ++----- 2 files changed, 7 insertions(+), 5 deletions(-) diffs (29 lines): diff -r fbb6b3605538 -r 89d62a76c9f9 ChangeLog --- a/ChangeLog Thu Apr 04 11:21:04 2013 +0200 +++ b/ChangeLog Mon Apr 08 15:08:11 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-08 Jiri Vanek + + * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: + Removed good --sm-client-disable switch. No longer supported by epiphany + 2013-04-04 Jiri Vanek Plugin is now honoring the custom jre diff -r fbb6b3605538 -r 89d62a76c9f9 tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java --- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java Thu Apr 04 11:21:04 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java Mon Apr 08 15:08:11 2013 +0200 @@ -42,11 +42,8 @@ public class Epiphany extends MozillaFamilyLinuxBrowser { - //the --sm-client-disable is hack which fixed separate calls to epiphany - //without this, the second tab is never open :( - //with this, also no tab, but at least new window in same process. So ok for testsuite. - //may fall to --new-tab with some fix on this issue again - String[] cs = {"--sm-client-disable"}; + + String[] cs = {}; public Epiphany(String bin) { super(bin); From jvanek at redhat.com Mon Apr 8 06:17:45 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 08 Apr 2013 15:17:45 +0200 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <515F1315.7080805@redhat.com> References: <50F5898A.40108@redhat.com> <515EF947.8090104@redhat.com> <515F1315.7080805@redhat.com> Message-ID: <5162C379.3030202@redhat.com> On 04/05/2013 08:08 PM, Adam Domurad wrote: > On 04/05/2013 12:18 PM, Jiri Vanek wrote: >> On 01/15/2013 05:53 PM, Adam Domurad wrote: >>> This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D furniture dragging. >>> >>> I'll preface by saying, I'm not particularly fond of the changes in this patch, but they have to >>> be done to fix JNLP applications that load resources on the Swing thread, like eg SweetHome3D. >>> >>> The patch adds a flag to JNLPClassLoader that specifies whether it has been initialized. The >>> default for getInstance remains the same, it grabs an initialized JNLPClassLoader. However an >>> alternate getInstance was added to be able to grab JNLPClassLoader that hasn't been fully >>> initialized. >>> >>> The problem with initialization: >>> - To create AppContext we need JNLPClassLoader object constructed >>> - To construct JNLPClassLoader we must initialize it >>> - Initializing JNLPClassLoader implies downloading all resources, and updating Swing components >>> >>> However, we cannot update swing components before we create our AppContext, or the result will be >>> a mess (eg unclickable popups). >>> In essence, it's a bootstrapping problem. So the patch makes it possible to get a constructed >>> JNLPClassLoader, which is initialized in a separate step. >>> >>> What else was tried ? >>> The only other option is to set the context classloader to some other classloader. A proxy >>> classloader can be created that initially points to the system classloader, but can be set to >>> JNLPClassLoader after it is created. Determined too much of a hack, and getParent cannot be >>> properly proxied. >>> >>> Basically with this patch, the life-time of the context classloaders for each thread is: >>> 1. By default system classloader is context classloader. >>> 2. Create new AppContext, capture JNLPClassLoader that isn't yet valid. Ensure we keep using >>> system classloader as context classloader for all threads. >>> 3. Initialize JNLPClassLoader. Before start of applet, ensure all threads context classloaders >>> are set to (now initialized) JNLPClassLoader. >>> >>> Recommendations welcome -- it was a lot of deliberation before I decided to take this route. If >>> someone has a simpler/cleaner solution than by all means suggest it! >>> >>> Reproducer changelog: >>> 2013-XX-XX Adam Domurad >>> >>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: >>> Test AppContext context classloader from HTML applet >>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: >>> Test AppContext context classloader from JNLP application >>> * >>> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: >>> >>> Test AppContext context classloader from JNLP applet >>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: >>> Print out context classloader for thread & AppContext, for >>> current thread & Swing thread. >>> * >>> tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: >>> >>> Test runner for AppContextHasJNLPClassLoader >>> >>> REPRODUCER NOTES: >>> This exposes an additional bug in JNLP applets. start/init incorrectly runs on the Swing thread, >>> and invokeAndWait hangs forever. I'm not sure how this wasn't caught, but the JNLP applet >>> reproducer is broken pending a separate bug fix. >>> >>> Fixes changelog: >>> 2013-XX-XX Adam Domurad >>> >>> Fix PR1251: AppContext has wrong context classloader >>> * netx/net/sourceforge/jnlp/Launcher.java: >>> Remove unused context flag. Make new AppContext capture not-yet- >>> initialized JNLPClassLoader. >>> * netx/net/sourceforge/jnlp/NetxPanel.java: >>> Move PluginBridge initialization into constructor. >>> Make new AppContext capture not-yet-initialized JNLPClassLoader. >>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>> Add initialization flag. Move part of constructor into initialize >>> method. Modify getInstance to allow temporarily bypassing >>> initialization. >>> * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java >>> (createAppContext): New, creates an AppContext that captures the given >>> (not necessarily yet valid) >>> >>> -Adam >> >> >> The reproducer have to go in with your new patch. >> It should go both to 1.4 and to head (with proper known to fail). >> But needs fixing - missing @TestInBrowser annotation is quite crucial :) >> >> Without patch, all three failed (but thebrowser test because of unset browser) >> >> with patch (after fixing of annotation) >> Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext >> FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest) stdout should contains >> 'main-thread: thread context classloader == JNLPClassLoader', but did not >> - This test is known to fail > > Fixed > >> Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext - google-chrome >> >> >> Should the jnlp fial? ( i guess yes as it is mark as known), but have faile dto early: > > See http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 for why it is known-to-fail > >> >> /* >> Connecting /home/jvanek/icedtea-web-image/bin/javaws >> http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp >> >> Fri Apr 05 18:10:40 CEST 2013 >> >> net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680) >> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589) >> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550) >> AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86) >> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> java.lang.reflect.Method.invoke(Method.java:616) >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106) >> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> org.junit.runners.Suite.runChild(Suite.java:128) >> org.junit.runners.Suite.runChild(Suite.java:24) >> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> org.junit.runner.JUnitCore.run(JUnitCore.java:136) >> org.junit.runner.JUnitCore.run(JUnitCore.java:117) >> CommandLine.runMain(CommandLine.java:49) >> CommandLine.runMainAndExit(CommandLine.java:28) >> CommandLine.main(CommandLine.java:24) >> >> and now the important one: */ >> >> Attempted to download http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp, but >> failed to connect! >> netx: Read Error: Could not read or parse the JNLP file. >> (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp) >> >> reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader* >> -rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10 AppContextHasJNLPClassLoaderForJNLPApplet.jnlp >> -rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10 AppContextHasJNLPClassLoader.html >> -rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08 AppContextHasJNLPClassLoader.jar >> -rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10 AppConte xtHasJNLPClassLoader.jnlp >> >> Wrong name perhaps? > > Fixed > >> >> J. >> >> >> Anyway why was the review of initial patch[1] abandoned? >> [1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader - in january 2013 > > I spent a while on it struggling with the correct design before I started working on other things. I > still intend to get back to it, but the initial patch & approach I worked on was rejected. I still > need to come up with a good way to approach this; it isn't trivial. > Ach, one more improvemnt - sorry for late notice. Can you add closing listeners for browser tests for case of success? With it it can go to 1.4 with your sweet home patch. But for head should be all methods as knonwToFial. You can add link to @Bug to the 1.4 hack push to keep line between head and 1.4. Please send to one more round both for 1.4 and head when time will come. J From ptisnovs at redhat.com Mon Apr 8 09:24:47 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 8 Apr 2013 12:24:47 -0400 (EDT) Subject: [rfc][icedtea-web] Stop supporting old version of NPAPI for 1.4 In-Reply-To: <5162B051.3060705@redhat.com> References: <1342127331.2560.6.camel@voip-10-15-18-79.yyz.redhat.com> <4FFF3FA0.3030905@redhat.com> <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> <515C56C3.7030005@redhat.com> <5162B051.3060705@redhat.com> Message-ID: <702263531.1001177.1365438287178.JavaMail.root@redhat.com> Hi Adam and Jiri, this change looks ok for me, even for 1.4 (if Jiri has enough time to apply it here...) Cheers, Pavel ----- Jiri Vanek wrote: > On 04/03/2013 06:20 PM, Adam Domurad wrote: > > On 07/13/2012 04:14 PM, Adam Domurad wrote: > >> On Thu, 2012-07-12 at 17:20 -0400, Omair Majid wrote: > >>> On 07/12/2012 05:08 PM, Adam Domurad wrote: > >>>> Hi. This was briefly discussed with Deepak, and by the time 1.4 is > >>>> released, there will be no need to support the versions of firefox that > >>>> have the old api. > >>> Could you tell us what versions are these? What about other browsers > >>> that we care about? > >>> > >>> Thanks, > >>> Omair > >> Sorry, replied off-list. Resent. > >> > >> Hi Omair. This affects API versions <1.9, and only affects Firefox <4. > >> > >> > >> > > > > Ping ? Think this would help maintainability going forward. > > -Adam > > > Around and around this looks good. But I'm hesitating for 1.4 with it... I would rather save this > patch for head after branching. > > Thank yo for looking into it. > > J. From gnu.andrew at redhat.com Mon Apr 8 14:03:32 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 8 Apr 2013 17:03:32 -0400 (EDT) Subject: CFV: New IcedTea Reviewer: Omair Majid In-Reply-To: <764592689.912062.1365454813087.JavaMail.root@redhat.com> Message-ID: <1265665666.912549.1365455012190.JavaMail.root@redhat.com> I hereby nominate Omair Majid for the position of IcedTea reviewer. Omair has been working on IcedTea since his internship at Red Hat in May 2008, and has continued doing so after obtaining full-time employment in June 2010. In this time, he has committed many changesets; the changelogs show 15 in the IcedTea7 forest, 147 in IcedTea6 and 131 in IcedTea-Web. He has also reviewed many patches on behalf of developers. Votes are due by Apr 22, 2013, 21:00 UTC. Only current IcedTea reviewers [1] are eligible to vote on this nomination. For Lazy Consensus voting instructions, see [2]. [1] http://openjdk.java.net/census#icedtea [2] http://openjdk.java.net/projects/#reviewer-vote -- 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 gnu.andrew at redhat.com Mon Apr 8 14:27:59 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 8 Apr 2013 17:27:59 -0400 (EDT) Subject: CFV: New IcedTea Reviewer: Omair Majid In-Reply-To: <1265665666.912549.1365455012190.JavaMail.root@redhat.com> References: <1265665666.912549.1365455012190.JavaMail.root@redhat.com> Message-ID: <1163043771.918183.1365456479071.JavaMail.root@redhat.com> ----- Original Message ----- > I hereby nominate Omair Majid for the position of IcedTea reviewer. > > Omair has been working on IcedTea since his internship at Red Hat in May > 2008, > and has continued doing so after obtaining full-time employment in June 2010. > In this time, he has committed many changesets; the changelogs show 15 in > the IcedTea7 forest, 147 in IcedTea6 and 131 in IcedTea-Web. He has also > reviewed many patches on behalf of developers. > > Votes are due by Apr 22, 2013, 21:00 UTC. > > Only current IcedTea reviewers [1] are eligible to vote on this nomination. > > For Lazy Consensus voting instructions, see [2]. > > [1] http://openjdk.java.net/census#icedtea > [2] http://openjdk.java.net/projects/#reviewer-vote > -- > 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 > > Vote: Yes -- 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 gitne at excite.co.jp Mon Apr 8 16:58:30 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Tue, 9 Apr 2013 08:58:30 +0900 Subject: =?ISO-2022-JP?B?W2ljZWR0ZWEtd2ViXSBCdWc6IFVuYWJsZSB0byByZW1vdmUgcGVybWlzc2lvbnMgb24gJVVTRVJQUk9GSUxFJVwuaWNlZHRlYVxzZWN1cml0eVx0cnVzdGVkLmNhY2VydHMudGVtcCBvbiBXaW5kb3dz?= Message-ID: <201304082358.r38NwUeX003627@mail-web01.excite.co.jp> Hello there! I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%\.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. I do not know whether this is reproducable on Linux systems. @Jiri: Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? Regards, Jacob From gitne at excite.co.jp Mon Apr 8 17:01:01 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Tue, 9 Apr 2013 09:01:01 +0900 Subject: =?ISO-2022-JP?B?W2ljZWR0ZWEtd2ViXSBCdWc6IFVuYWJsZSB0byByZW1vdmUgcGVybWlzc2lvbnMgb24gJVVTRVJQUk9GSUxFJVwuaWNlZHRlYVxzZWN1cml0eVx0cnVzdGVkLmNhY2VydHMudGVtcCBvbiBXaW5kb3dz?= Message-ID: <201304090001.r39011ZT003783@mail-web01.excite.co.jp> Hello there! I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%\.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. I do not know whether this is reproducable on Linux systems. @Jiri: Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? Regards, Jacob -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: netx.stderr.txt Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130409/710485eb/ISO-2022-JPBbmV0eC5zdGRlcnIudHh0.txt From ptisnovs at icedtea.classpath.org Tue Apr 9 00:13:39 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 09 Apr 2013 07:13:39 +0000 Subject: /hg/rhino-tests: Updated four tests in BindingsClassTest for (Op... Message-ID: changeset 00ffd5cdf7b4 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=00ffd5cdf7b4 author: Pavel Tisnovsky date: Tue Apr 09 09:16:53 2013 +0200 Updated four tests in BindingsClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 12 +++++- src/org/RhinoTests/BindingsClassTest.java | 56 ++++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 6 deletions(-) diffs (115 lines): diff -r b3477ca1f6b3 -r 00ffd5cdf7b4 ChangeLog --- a/ChangeLog Mon Apr 08 10:16:25 2013 +0200 +++ b/ChangeLog Tue Apr 09 09:16:53 2013 +0200 @@ -1,8 +1,16 @@ +2013-04-09 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Updated four tests in BindingsClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-08 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: - Updated four tests for (Open)JDK8 API: getConstructor, - getDeclaredConstructor, getConstructors and getDeclaredConstructors. + Updated four tests in AbstractScriptEngineClassTest for (Open)JDK8 + API: getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. 2013-04-05 Pavel Tisnovsky diff -r b3477ca1f6b3 -r 00ffd5cdf7b4 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Mon Apr 08 10:16:25 2013 +0200 +++ b/src/org/RhinoTests/BindingsClassTest.java Tue Apr 09 09:16:53 2013 +0200 @@ -288,10 +288,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.bindingsClass.getConstructors(); @@ -310,10 +321,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.bindingsClass.getDeclaredConstructors(); @@ -332,7 +354,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -362,7 +397,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Tue Apr 9 00:44:32 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 09 Apr 2013 07:44:32 +0000 Subject: /hg/gfx-test: Twelve new tests added into the test suite BitBltB... Message-ID: changeset 186560e3aa5e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=186560e3aa5e author: Pavel Tisnovsky date: Tue Apr 09 09:47:49 2013 +0200 Twelve new tests added into the test suite BitBltBasicTests. One helper method used by various BitBlt-related tests added into CommonBitmapOperations. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonBitmapOperations.java | 26 ++ src/org/gfxtest/testsuites/BitBltBasicTests.java | 181 ++++++++++++++++++ 3 files changed, 214 insertions(+), 0 deletions(-) diffs (248 lines): diff -r 381ff1eacb01 -r 186560e3aa5e ChangeLog --- a/ChangeLog Mon Apr 08 10:45:15 2013 +0200 +++ b/ChangeLog Tue Apr 09 09:47:49 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-09 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + One helper method used by various BitBlt-related tests added. + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Twelve new tests added into the test suite BitBltBasicTests. + 2013-04-08 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r 381ff1eacb01 -r 186560e3aa5e src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Mon Apr 08 10:45:15 2013 +0200 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Tue Apr 09 09:47:49 2013 +0200 @@ -346,6 +346,32 @@ } /** + * Create new buffered image and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param bgcolor + * background color + */ + public static TestResult doBitBltTestWithCheckerImage(TestImage image, Graphics2D graphics2d, int imageType, Color bgcolor) + { + // create new buffered bitmap with given type + // bitmap should be empty - solid color pixels + BufferedImage bufferedImage = ImageFactory.createCheckerImage(GRID_SIZE, DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling, no flipping and no cropping + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, bgcolor) ? TestResult.PASSED : TestResult.FAILED; + } + + /** * Create new buffered image containing checker pattern and then perform basic BitBlt test. * * @param image diff -r 381ff1eacb01 -r 186560e3aa5e src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Mon Apr 08 10:45:15 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Apr 09 09:47:49 2013 +0200 @@ -3019,6 +3019,51 @@ } /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageType3ByteBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_4BYTE_ABGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_4BYTE_ABGR_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageType4ByteABGR_PRE(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE); + } + + /** * Test basic BitBlt operation for horizontal red gradient buffered image * with type TYPE_BYTE_BINARY. * @@ -3035,6 +3080,142 @@ } /** + * Test basic BitBlt operation for horizontal red gradient buffered image + * with type TYPE_BYTE_INDEXED. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeByteIndexed(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_INDEXED); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_BYTE_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeByteGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_GRAY); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_INT_RGB); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeIntARGB_Pre(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientBufferedImageTypeUshortGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY); + } + + /** * Test basic BitBlt operation for vertical red gradient buffered image with type TYPE_3BYTE_BGR. * * @param image From jvanek at redhat.com Tue Apr 9 03:19:11 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 09 Apr 2013 12:19:11 +0200 Subject: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows In-Reply-To: <201304090001.r39011ZT003783@mail-web01.excite.co.jp> References: <201304090001.r39011ZT003783@mail-web01.excite.co.jp> Message-ID: <5163EB1F.1020009@redhat.com> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > Hello there! > > I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%\.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > I do not know whether this is reproducable on Linux systems. > > @Jiri: > Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > > Regards, > Jacob > Hi again! Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea directory and set my home to read only, But I doubt that it is connected to recent patches. By studying the exception: - First -independent - exception is: Exception in thread "AWT-EventQueue-0" net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc (translated as "The process can not access the file because another process has locked a portion") * This happened immediately after start of itw-settings, and is moreover correct. No file to read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only "added by new patch"). Then two more exceptions from old code arise: java.lang.NullPointerException at net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) and java.io.IOException: Removing execute permissions on file C:\Users\Jakob\.icedtea\security\trusted.cacerts.temp failed at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) * all three are unrelated in meaning each to each, but have same root - tehy can not create their config files. So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with workarround to create %USERPROFILE%\.icedtea manually? ANyway I will check once more when I got more free time. Thanx for checking, J. From gitne at excite.co.jp Tue Apr 9 05:00:58 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Tue, 9 Apr 2013 21:00:58 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl0gQnVnOiBVbmFibGUgdG8gcmVtb3ZlIHBlcm1pc3Npb25zIG9uICVVU0VSUFJPRklMRSUuaWNlZHRlYXNlY3VyaXR5dHJ1c3RlZC5jYWNlcnRzLnRlbXBvbiBXaW5kb3dz?= Message-ID: <201304091200.r39C0wUa019100@mail-web02.excite.co.jp> "Jiri Vanek" wrote: > On 04/09/2013 02:01 AM, Jacob Wisor wrote: > > Hello there! > > > > I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > > I do not know whether this is reproducable on Linux systems. > > > > @Jiri: > > Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > > > > Regards, > > Jacob > > > > Hi again! > Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > directory and set my home to read only, But I doubt that it is connected to recent patches. > > By studying the exception: > - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > (translated as "The process can not access the file because another process has locked a portion") > * This happened immediately after start of itw-settings, and is moreover correct. No file to > read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > "added by new patch"). > Then two more exceptions from old code arise: > java.lang.NullPointerException at > net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > and > java.io.IOException: Removing execute permissions on file > C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > * all three are unrelated in meaning each to each, but have same root - tehy can not create their > config files. > > > So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > workarround to create %USERPROFILE%.icedtea manually? > > ANyway I will check once more when I got more free time. > > Thanx for checking, > J. Thank you for your timely response. The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: %USERPROFILE%\.icedtea %USERPROFILE%\.icedtea\security %USERPROFILE%\.icedtea\.appletTrustSettings %USERPROFILE%\.icedtea\security\trusted.cacerts.temp On subsequent launches the app fails with an "Cannot create file %USERPROFILE%\.icedtea\security\trusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) Thank you for your efforts! Jacob From jvanek at redhat.com Tue Apr 9 05:53:25 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 09 Apr 2013 14:53:25 +0200 Subject: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%.icedteasecuritytrusted.cacerts.tempon Windows In-Reply-To: <201304091200.r39C0wUa019100@mail-web02.excite.co.jp> References: <201304091200.r39C0wUa019100@mail-web02.excite.co.jp> Message-ID: <51640F45.5090207@redhat.com> On 04/09/2013 02:00 PM, Jacob Wisor wrote: > "Jiri Vanek" wrote: >> On 04/09/2013 02:01 AM, Jacob Wisor wrote: >>> Hello there! >>> >>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. >>> I do not know whether this is reproducable on Linux systems. >>> >>> @Jiri: >>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? >>> >>> Regards, >>> Jacob >>> >> >> Hi again! >> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea >> directory and set my home to read only, But I doubt that it is connected to recent patches. >> >> By studying the exception: >> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" >> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze >> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc >> (translated as "The process can not access the file because another process has locked a portion") >> * This happened immediately after start of itw-settings, and is moreover correct. No file to >> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only >> "added by new patch"). >> Then two more exceptions from old code arise: >> java.lang.NullPointerException at >> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) >> and >> java.io.IOException: Removing execute permissions on file >> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed >> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) >> * all three are unrelated in meaning each to each, but have same root - tehy can not create their >> config files. >> >> >> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing >> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with >> workarround to create %USERPROFILE%.icedtea manually? >> >> ANyway I will check once more when I got more free time. >> >> Thanx for checking, >> J. > > Thank you for your timely response. > The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > > %USERPROFILE%\.icedtea > %USERPROFILE%\.icedtea\security > %USERPROFILE%\.icedtea\.appletTrustSettings > %USERPROFILE%\.icedtea\security\trusted.cacerts.temp > > On subsequent launches the app fails with an "Cannot create file %USERPROFILE%\.icedtea\security\trusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > > Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > oook... I have attached patch which handles windows restricted files less strictly == tries to set the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will work. I think you can elaborate with it now. But this issue will need more investigations on my side //me have tu make some windows machine around... Hope this helps, J. If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no machine where to verify (work in progress) If the issue will be only X flag, then I will sent official patch. -------------- next part -------------- A non-text attachment was scrubbed... Name: nonFatalPermissionManipulationForWindows.patch Type: text/x-patch Size: 2385 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130409/aebc8268/nonFatalPermissionManipulationForWindows.patch From gitne at excite.co.jp Tue Apr 9 08:33:33 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Wed, 10 Apr 2013 00:33:33 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl0gQnVnOiBVbmFibGUgdG8gcmVtb3ZlIHBlcm1pc3Npb25zIG9uICVVU0VSUFJPRklMRSVcLmljZWR0ZWFcc2VjdXJpdHlcdHJ1c3RlZC5jYWNlcnRzLnRlbXAgb24gV2luZG93cw==?= Message-ID: <201304091533.r39FXXtG013793@mail-web03.excite.co.jp> "Jiri Vanek" wrote: > On 04/09/2013 02:00 PM, Jacob Wisor wrote: > > "Jiri Vanek" wrote: > >> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > >>> Hello there! > >>> > >>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > >>> I do not know whether this is reproducable on Linux systems. > >>> > >>> @Jiri: > >>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > >>> > >>> Regards, > >>> Jacob > >>> > >> > >> Hi again! > >> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > >> directory and set my home to read only, But I doubt that it is connected to recent patches. > >> > >> By studying the exception: > >> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > >> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > >> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > >> (translated as "The process can not access the file because another process has locked a portion") > >> * This happened immediately after start of itw-settings, and is moreover correct. No file to > >> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > >> "added by new patch"). > >> Then two more exceptions from old code arise: > >> java.lang.NullPointerException at > >> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > >> and > >> java.io.IOException: Removing execute permissions on file > >> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > >> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > >> * all three are unrelated in meaning each to each, but have same root - tehy can not create their > >> config files. > >> > >> > >> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > >> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > >> workarround to create %USERPROFILE%\.icedtea manually? > >> > >> ANyway I will check once more when I got more free time. > >> > >> Thanx for checking, > >> J. > > > > Thank you for your timely response. > > The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > > > > %USERPROFILE%\.icedtea > > %USERPROFILE%\.icedtea\security > > %USERPROFILE%\.icedtea\.appletTrustSettings > > %USERPROFILE%\.icedtea\security\trusted.cacerts.temp > > > > On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > > > > Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > > > > oook... I have attached patch which handles windows restricted files less strictly == tries to set > the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will > work. > > I think you can elaborate with it now. But this issue will need more investigations on my side > //me have tu make some windows machine around... > > Hope this helps, > J. > > > If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no > machine where to verify (work in progress) > If the issue will be only X flag, then I will sent official patch. Thank you for this prompt attempt. Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: %USERPROFILE%\.icedtea %USERPROFILE%\.icedtea\security %USERPROFILE%\.icedtea\.appletTrustSettings %USERPROFILE%\.icedtea\security\trusted.cacerts It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) Thanks again for bothering :) Jacob From ptisnovs at icedtea.classpath.org Wed Apr 10 00:24:45 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 10 Apr 2013 07:24:45 +0000 Subject: /hg/rhino-tests: Updated four tests in CompilableClassTest for (... Message-ID: changeset 03d34eb842e5 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=03d34eb842e5 author: Pavel Tisnovsky date: Wed Apr 10 09:28:01 2013 +0200 Updated four tests in CompilableClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 +++ src/org/RhinoTests/CompilableClassTest.java | 56 ++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 4 deletions(-) diffs (107 lines): diff -r 00ffd5cdf7b4 -r 03d34eb842e5 ChangeLog --- a/ChangeLog Tue Apr 09 09:16:53 2013 +0200 +++ b/ChangeLog Wed Apr 10 09:28:01 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-10 Pavel Tisnovsky + + * src/org/RhinoTests/CompilableClassTest.java: + Updated four tests in CompilableClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-09 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r 00ffd5cdf7b4 -r 03d34eb842e5 src/org/RhinoTests/CompilableClassTest.java --- a/src/org/RhinoTests/CompilableClassTest.java Tue Apr 09 09:16:53 2013 +0200 +++ b/src/org/RhinoTests/CompilableClassTest.java Wed Apr 10 09:28:01 2013 +0200 @@ -288,10 +288,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.compilableClass.getConstructors(); @@ -310,10 +321,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.compilableClass.getDeclaredConstructors(); @@ -332,7 +354,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -362,7 +397,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Wed Apr 10 00:54:15 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 10 Apr 2013 07:54:15 +0000 Subject: /hg/gfx-test: Added five new tests to the test suite ClippingCir... Message-ID: changeset 2b45cb03da1d in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=2b45cb03da1d author: Pavel Tisnovsky date: Wed Apr 10 09:57:28 2013 +0200 Added five new tests to the test suite ClippingCircleByConcavePolygonalShape. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonRenderingStyles.java | 14 + src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 115 ++++++++++ 3 files changed, 136 insertions(+), 0 deletions(-) diffs (170 lines): diff -r 186560e3aa5e -r 2b45cb03da1d ChangeLog --- a/ChangeLog Tue Apr 09 09:47:49 2013 +0200 +++ b/ChangeLog Wed Apr 10 09:57:28 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-10 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonRenderingStyles.java: + One helper method used by various BitBlt-related tests added. + * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java: + Added five new tests to this test suite. + 2013-04-09 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r 186560e3aa5e -r 2b45cb03da1d src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Tue Apr 09 09:47:49 2013 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Apr 10 09:57:28 2013 +0200 @@ -280,6 +280,20 @@ } /** + * Set transparent white color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillWhiteColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(1.0f, 1.0f, 1.0f, value)); + } + + /** * Set horizontal gradient fill for given graphics context. * * @param image diff -r 186560e3aa5e -r 2b45cb03da1d src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Tue Apr 09 09:47:49 2013 +0200 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Wed Apr 10 09:57:28 2013 +0200 @@ -294,6 +294,31 @@ } /** + * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha + * paint with white color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintWhite(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillWhiteColor(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. * @@ -1035,6 +1060,96 @@ /** * Check if circle shape could be clipped by a concave polygonal shape. Circle is + * rendered using alpha paint with white color at 0% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintWhite000(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency + drawCircleClippedByPolygonalShapeAlphaPaintWhite(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 white color at 25% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintWhite025(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency + drawCircleClippedByPolygonalShapeAlphaPaintWhite(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 white color at 50% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintWhite050(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency + drawCircleClippedByPolygonalShapeAlphaPaintWhite(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 white color at 75% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintWhite075(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency + drawCircleClippedByPolygonalShapeAlphaPaintWhite(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 white color at 100% transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClipCircleByPolygonalShapeAlphaPaintWhite100(TestImage image, Graphics2D graphics2d) + { + // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency + drawCircleClippedByPolygonalShapeAlphaPaintWhite(image, graphics2d, 100); + // test result + return TestResult.PASSED; + } + + /** + * Check if circle shape could be clipped by a concave polygonal shape. Circle is * rendered using horizontal gradient paint. * * @param image From jfabriko at icedtea.classpath.org Wed Apr 10 05:04:19 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Wed, 10 Apr 2013 12:04:19 +0000 Subject: /hg/icedtea-web: adding JSToJFuncReturn reproducer (testing Live... Message-ID: changeset 37741b256ff4 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=37741b256ff4 author: Jana Fabrikova date: Wed Apr 10 14:07:14 2013 +0200 adding JSToJFuncReturn reproducer (testing Liveconnect JS->J function return types) diffstat: ChangeLog | 14 + tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html | 26 + tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js | 17 + tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp | 23 + tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java | 142 +++++ tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java | 242 ++++++++++ 6 files changed, 464 insertions(+), 0 deletions(-) diffs (491 lines): diff -r 89d62a76c9f9 -r 37741b256ff4 ChangeLog --- a/ChangeLog Mon Apr 08 15:08:11 2013 +0200 +++ b/ChangeLog Wed Apr 10 14:07:14 2013 +0200 @@ -1,3 +1,17 @@ +2013-04-10 Jana Fabrikova + + * /tests/reproducers/simple/JToJSFuncReturn/testcases/JToJSFuncReturnTest.java: + adding 5 testcases based on the interactive Liveconnect JS->Java + function return type tests + * /tests/reproducers/simple/JToJSFuncReturn/srcs/JToJSFuncReturn.java: + the applet that calls JS functions + * tests/reproducers/simple/JToJSFuncReturn/resources/JToJS_FuncReturn.js: + auxiliary JavaScript code + * /tests/reproducers/simple/JToJSFuncReturn/resources/jtojs-funcreturn.jnlp: + jnlp file for displaying applet in the html page + * /tests/reproducers/simple/JToJSFuncReturn/resources/JToJSFuncReturn.html: + the html page where the applet calling JS functions is embedded + 2013-04-08 Jiri Vanek * tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: diff -r 89d62a76c9f9 -r 37741b256ff4 tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html Wed Apr 10 14:07:14 2013 +0200 @@ -0,0 +1,26 @@ + + + + JavaScript to Java LiveConnect - Function return values from applet + + + + + + + +

The JSToJFuncReturn html page

+ + + + + + +
+ + + + + diff -r 89d62a76c9f9 -r 37741b256ff4 tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js Wed Apr 10 14:07:14 2013 +0200 @@ -0,0 +1,17 @@ +function doFuncReturnTests(){ + var urlArgs = document.URL.split("?"); + var applet = document.getElementById('jstojFuncReturnApplet'); + var method = urlArgs[1]; + + eval('var value = applet.' + method + '()'); + + var checked_string = typeof(value)+' '; + if( method === '_JSObject'){ + checked_string = checked_string +value.key1; + }else{ + checked_string = checked_string +value; + } + + applet.printStringAndFinish(checked_string); +} + diff -r 89d62a76c9f9 -r 37741b256ff4 tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp Wed Apr 10 14:07:14 2013 +0200 @@ -0,0 +1,23 @@ + + + + + JavaScript to Java LiveConnect - FuncReturn + RedHat + + LiveConnect - tests to process various return types from Java side function calls. + + + + + + + + + + diff -r 89d62a76c9f9 -r 37741b256ff4 tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java Wed Apr 10 14:07:14 2013 +0200 @@ -0,0 +1,142 @@ +import java.applet.Applet; +import java.awt.Label; +import java.awt.BorderLayout; +import netscape.javascript.JSObject; + +public class JSToJFuncReturn extends Applet { + + private Label statusLabel; + + public int _int() { + int i = 1; + return i; + } + + public double _double() { + double d = 1.1; + return d; + } + + public float _float() { + float f = 1.1F; + return f; + } + + public long _long() { + long l = 10000L; + return l; + } + + public boolean _boolean() { + boolean b = true; + return b; + } + + public char _char() { + char c = 'a'; + return c; + } + + public byte _byte() { + byte by = 10; + return by; + } + + public char _charArrayElement(){ + char[] ca = new char[]{'a', 'b', 'c'}; + + return ca[0]; + } + + public char[] _charArray() { + char[] ca = new char[]{'a', 'b', 'c'}; + + return ca; + } + + public String _regularString() { + String rs = "test"; + return rs; + } + + public String _specialString() { + String ss = "?????????$?????????"; + return ss; + } + + public void _void() { + } + + public Object _null() { + return null; + } + + public Integer _Integer() { + Integer I = 1; + return I; + } + + public Double _Double() { + Double D = 1.1; + return D; + } + + public Float _Float() { + Float F = 1.1F; + return F; + } + + public Long _Long() { + Long L = 10000L; + return L; + } + + public Boolean _Boolean() { + Boolean B = true; + return B; + } + + public Character _CharacterArrayElement(){ + Character[] Ca = new Character[]{'A', 'B', 'C'}; + + return Ca[0]; + } + + public Character _Character() { + Character C = 'A'; + return C; + } + + public Byte _Byte() { + Byte By = 10; + return By; + } + + public Character[] _CharacterArray() { + Character[] Ca = new Character[]{'A', 'B', 'C'}; + + return Ca; + } + + public JSObject _JSObject(){ + JSObject win = JSObject.getWindow(this); + JSObject jso = (JSObject) win.getMember("document"); + jso.setMember("key1","value1"); + + return jso; + } + + public void init() { + setLayout(new BorderLayout()); + statusLabel = new Label(); + add(statusLabel); + String initStr = "JSToJFuncReturn applet initialized."; + System.out.println(initStr); + statusLabel.setText(initStr); + } + + public void printStringAndFinish(String str){ + System.out.println(str); + System.out.println("afterTests"); + } +} diff -r 89d62a76c9f9 -r 37741b256ff4 tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java Wed Apr 10 14:07:14 2013 +0200 @@ -0,0 +1,242 @@ +/* JSToJFuncReturnTest.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.ProcessResult; +import net.sourceforge.jnlp.ServerAccess; +import net.sourceforge.jnlp.browsertesting.BrowserTest; +import net.sourceforge.jnlp.browsertesting.Browsers; +import net.sourceforge.jnlp.closinglisteners.CountingClosingListener; +import net.sourceforge.jnlp.annotations.KnownToFail; +import net.sourceforge.jnlp.annotations.NeedsDisplay; +import net.sourceforge.jnlp.annotations.TestInBrowsers; +import org.junit.Assert; + +import org.junit.Test; + +public class JSToJFuncReturnTest extends BrowserTest { + + private final String initStr = "JSToJFuncReturn applet initialized."; + private final String afterStr = "afterTests"; + + private class CountingClosingListenerImpl extends CountingClosingListener { + + @Override + protected boolean isAlowedToFinish(String s) { + + return (s.contains(initStr) && s.contains(afterStr)); + } + } + + private void evaluateStdoutContents(String expectedStdout, ProcessResult pr) { + // Assert that the applet was initialized. + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+ initStr + " but it didnt.", pr.stdout.contains(initStr)); + + // Assert that the tests have passed. + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+ expectedStdout + " but it didnt.", pr.stdout.contains(expectedStdout)); + } + + + private void jsToJavaFuncReturnNormalTest(String methodStr, String expectedStdout) throws Exception { + String strURL = "/JSToJFuncReturn.html?" + methodStr; + ProcessResult pr = server.executeBrowser(strURL, new CountingClosingListenerImpl(), new CountingClosingListenerImpl()); + evaluateStdoutContents(expectedStdout, pr); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_int_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_int", "number 1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_double_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_double", "number 1.1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_float_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_float", "number 1.1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_long_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_long", "number 10000"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_boolean_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_boolean", "boolean true"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_char_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_char", "number 97"); //'a' + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_byte_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_byte", "number 10"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_charArrayElement_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_charArrayElement", "number 97"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_void_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_void", "undefined undefined"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_regularString_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_regularString", "string test"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_specialCharsString_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_specialString", "string ?????????$?????????"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_null_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_null", "object null"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Integer_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Integer", "object 1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Double_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Double", "object 1.1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Float_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Float", "object 1.1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Long_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Long", "object 10000"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Boolean_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Boolean", "object true"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Character_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Character", "object A"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_Byte_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_Byte", "object 10"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncReturn_CharArrayElement_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_CharacterArrayElement", "object A"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_CharFullArray_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_CharacterArray", "object [Ljava.lang.Character;@"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncReturn_JSObject_Test() throws Exception { + jsToJavaFuncReturnNormalTest("_JSObject", "object value1"); + } + + +} From jvanek at redhat.com Wed Apr 10 05:48:18 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 10 Apr 2013 14:48:18 +0200 Subject: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows In-Reply-To: <201304101200.r3AC0fXJ024485@mail-web01.excite.co.jp> References: <201304101200.r3AC0fXJ024485@mail-web01.excite.co.jp> Message-ID: <51655F92.8090902@redhat.com> Thank you for deep investigations. >From this log is clear that the fatal exception is from newest commmits ad thank you very much for reporting. I Will try to fix the handling of LockedFile and its exception (acually added by me and Adam few weeks ago :( ) asap (but I'm unfortunately quite bussy right now :-/) I'm quite agreeing with you on restricted file usefulness. But its removal/refactoreing will have to wait for 1.5. But for 1.4 this windows issue must be fixed(damn). Sorry for delaying you form better stuff, but give me few days! Best regards J. ps /me keeping you in mind! -------- Original Message -------- Subject: Re: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows Date: Wed, 10 Apr 2013 21:00:41 +0900 From: Jacob Wisor To: JiriVanek , ""@excite.co.jp "Jiri Vanek" wrote: > On 04/09/2013 05:33 PM, Jacob Wisor wrote: > > "Jiri Vanek" wrote: > >> On 04/09/2013 02:00 PM, Jacob Wisor wrote: > >>> "Jiri Vanek" wrote: > >>>> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > >>>>> Hello there! > >>>>> > >>>>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > >>>>> I do not know whether this is reproducable on Linux systems. > >>>>> > >>>>> @Jiri: > >>>>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > >>>>> > >>>>> Regards, > >>>>> Jacob > >>>>> > >>>> > >>>> Hi again! > >>>> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > >>>> directory and set my home to read only, But I doubt that it is connected to recent patches. > >>>> > >>>> By studying the exception: > >>>> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > >>>> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > >>>> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > >>>> (translated as "The process can not access the file because another process has locked a portion") > >>>> * This happened immediately after start of itw-settings, and is moreover correct. No file to > >>>> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > >>>> "added by new patch"). > >>>> Then two more exceptions from old code arise: > >>>> java.lang.NullPointerException at > >>>> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > >>>> and > >>>> java.io.IOException: Removing execute permissions on file > >>>> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > >>>> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > >>>> * all three are unrelated in meaning each to each, but have same root - tehy can not create their > >>>> config files. > >>>> > >>>> > >>>> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > >>>> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > >>>> workarround to create %USERPROFILE%\.icedtea manually? > >>>> > >>>> ANyway I will check once more when I got more free time. > >>>> > >>>> Thanx for checking, > >>>> J. > >>> > >>> Thank you for your timely response. > >>> The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > >>> > >>> %USERPROFILE%\.icedtea > >>> %USERPROFILE%\.icedtea\security > >>> %USERPROFILE%\.icedtea\.appletTrustSettings > >>> %USERPROFILE%\.icedtea\security\trusted.cacerts.temp > >>> > >>> On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > >>> > >>> Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > >>> > >> > >> oook... I have attached patch which handles windows restricted files less strictly == tries to set > >> the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will > >> work. > >> > >> I think you can elaborate with it now. But this issue will need more investigations on my side > >> //me have tu make some windows machine around... > >> > >> Hope this helps, > >> J. > >> > >> > >> If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no > >> machine where to verify (work in progress) > >> If the issue will be only X flag, then I will sent official patch. > > > > Thank you for this prompt attempt. > > Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: > > > > %USERPROFILE%\.icedtea > > %USERPROFILE%\.icedtea\security > > %USERPROFILE%\.icedtea\.appletTrustSettings > > %USERPROFILE%\.icedtea\security\trusted.cacerts > > > > It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) > > > > Thanks again for bothering :) > > Jacob > > > > > The attachment is missing :(( > /me curious Hello Jiri, Sorry, the web mailer is lausy. :( So, here we go again. I have played a little bit with J2SE's access permissions facility on Windows, that is java.io.File.setExecutable(boolean,boolean), java.io.File.setWriteable(boolean,boolean), and java.io.File.setReadable(boolean,boolean). They obviously have no effect on Windows, so one cannot rely on them. Besides, as far as I can tell the whole purpose of this fiddling with access permissions on files is to get a locked file. IMHO the net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(File,boolean,boolean) is redundant and totally misses the point. Actually, there is a file locking facility provided by J2SE via java.nio.channels.FileLock. Although the semantics of java.nio.channels.FileLock can characterized as best effort on varying platforms at best it probably should be used nevertheless. Infact, there is even a utility class net.sourceforge.jnlp.util.lockingfile.LockedFile in netx. So, I am a little bit confused. Why not use that? Correct me if I am wrong, but even if java.nio.c! hannels.FileLock does not provide the desired semantics - let's say perhaps on Linux - fiddling with file access permissions should not be the way to go. Instead, then the prefered way would be to use buffers from java.nio (to get some sort of memory-mapped file) or java.io.BufferdIn/OutputStream with java.io.PipedIn/OutputStream. This process of creating netx' data files should probably be revised and refactored. To cut a long story short, it still does not run on Windows. :D And, I probably will not have the time to refactor it. So it is nice of you to help me out. Regards, Jacob -------------- next part -------------- A non-text attachment was scrubbed... Name: netx.stderr.log Type: application/octet-stream Size: 3536 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130410/c19855e6/netx.stderr.log From jvanek at icedtea.classpath.org Wed Apr 10 06:37:13 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 10 Apr 2013 13:37:13 +0000 Subject: /hg/release/icedtea-web-1.3: Fixed NEWS Message-ID: changeset 6883b7d0a2fc in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=6883b7d0a2fc author: Jiri Vanek date: Wed Apr 10 15:37:00 2013 +0200 Fixed NEWS diffstat: ChangeLog | 8 ++++++++ NEWS | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diffs (35 lines): diff -r ca8b00cca4c3 -r 6883b7d0a2fc ChangeLog --- a/ChangeLog Thu Apr 04 12:52:57 2013 -0400 +++ b/ChangeLog Wed Apr 10 15:37:00 2013 +0200 @@ -1,3 +1,11 @@ +2013-04-10 Jiri Vanek + + Fixed news + * NEWS: stuff from 1.3.3 (2012-XX-XX), namely line PR1157: Applets can + hang browser after fatal exception moved under "New in release 1.3.2 (2012-XX-XX)" + As 1.3.2 was never released. Mentioned previous backport. + Added 1.3.2 release date. + 2013-04-04 Saad Mohammad Added new option in itw-settings which allows users to set JVM diff -r ca8b00cca4c3 -r 6883b7d0a2fc NEWS --- a/NEWS Thu Apr 04 12:52:57 2013 -0400 +++ b/NEWS Wed Apr 10 15:37:00 2013 +0200 @@ -8,12 +8,12 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.3.3 (2012-XX-XX): - PR1157: Applets can hang browser after fatal exception - -New in release 1.3.2 (2012-XX-XX): +New in release 1.3.2 (2013-04-17): +* Common + - Added new option in itw-settings which allows users to set JVM arguments when plugin is initialized. * Plugin PR1260: IcedTea-Web should not rely on GTK + PR1157: Applets can hang browser after fatal exception New in release 1.3.1 (2012-11-07): * Security Updates From jvanek at icedtea.classpath.org Wed Apr 10 06:40:04 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 10 Apr 2013 13:40:04 +0000 Subject: /hg/release/icedtea-web-1.2: Fixed NEWS Message-ID: changeset 94234beee2e9 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=94234beee2e9 author: Jiri Vanek date: Wed Apr 10 15:39:04 2013 +0200 Fixed NEWS diffstat: ChangeLog | 7 +++++++ NEWS | 7 +++---- 2 files changed, 10 insertions(+), 4 deletions(-) diffs (33 lines): diff -r cd4a9f25808e -r 94234beee2e9 ChangeLog --- a/ChangeLog Fri Mar 01 14:22:21 2013 -0500 +++ b/ChangeLog Wed Apr 10 15:39:04 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-10 Jiri Vanek + + Fixed news + * NEWS: stuff from 1.2.4 (2012-XX-XX), namely line PR1157: Applets can + hang browser after fatal exception moved under "New in release 1.2.3 (2012-XX-XX)" + As 1.2.3 was never released. Added 1.2.3 release date. + 2013-03-01 Adam Domurad Fix PR1157: Applets can hang browser after fatal exception diff -r cd4a9f25808e -r 94234beee2e9 NEWS --- a/NEWS Fri Mar 01 14:22:21 2013 -0500 +++ b/NEWS Wed Apr 10 15:39:04 2013 +0200 @@ -8,12 +8,11 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.2.4 (2012-XX-XX): - - PR1157: Applets can hang browser after fatal exception - -New in release 1.2.3 (2012-XX-XX): +New in release 1.2.3 (2013-04-17): * Common - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 +* Plugin + - PR1157: Applets can hang browser after fatal exception New in release 1.2.2 (2012-11-07): * Security Updates From jfabriko at icedtea.classpath.org Wed Apr 10 07:12:19 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Wed, 10 Apr 2013 14:12:19 +0000 Subject: /hg/icedtea-web: adding Liveconnect reproducer for JS->J funtion... Message-ID: changeset 29db8f77bae4 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=29db8f77bae4 author: Jana Fabrikova date: Wed Apr 10 16:15:16 2013 +0200 adding Liveconnect reproducer for JS->J funtion resolution tests diffstat: ChangeLog | 17 + tests/reproducers/simple/JSToJFuncResol/resources/JSToJFuncResol.html | 25 + tests/reproducers/simple/JSToJFuncResol/resources/JSToJava_FuncResol.js | 11 + tests/reproducers/simple/JSToJFuncResol/resources/jstoj-funcresol.jnlp | 23 + tests/reproducers/simple/JSToJFuncResol/srcs/JSToJFuncResol.java | 235 ++++++++++ tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java | 193 ++++++++ 6 files changed, 504 insertions(+), 0 deletions(-) diffs (truncated from 531 to 500 lines): diff -r 37741b256ff4 -r 29db8f77bae4 ChangeLog --- a/ChangeLog Wed Apr 10 14:07:14 2013 +0200 +++ b/ChangeLog Wed Apr 10 16:15:16 2013 +0200 @@ -1,3 +1,20 @@ +2013-04-10 Jana Fabrikova + + * /tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java: + adding 11 testcases based on the interactive Liveconnect JS->Java + overloaded function resolution tests, tests with JSObject were already + included + * /tests/reproducers/simple/JSToJFuncResol/srcs/JSToJFuncResol.java: + the applet whose methods are invoked from JS during the tests + * /tests/reproducers/simple/JSToJFuncResol/resources/JSToJava_FuncResol.js: + the JavaScript code for calling the applet methods from JS + * /tests/reproducers/simple/JSToJFuncResol/resources/jstoj-funcresol.jnlp: + java network launch protocol file for displaying applet in the html + page + * /tests/reproducers/simple/JSToJFuncResol/resources/JSToJFuncResol.html: + the html page with java applet embedded, displayed in browser during + the tests + 2013-04-10 Jana Fabrikova * /tests/reproducers/simple/JToJSFuncReturn/testcases/JToJSFuncReturnTest.java: diff -r 37741b256ff4 -r 29db8f77bae4 tests/reproducers/simple/JSToJFuncResol/resources/JSToJFuncResol.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncResol/resources/JSToJFuncResol.html Wed Apr 10 16:15:16 2013 +0200 @@ -0,0 +1,25 @@ + + + + JavaScript to Java LiveConnect - FuncResol values from applet + + + + + + + +

The JSToJFuncResol html page

+ + + + + + + + + diff -r 37741b256ff4 -r 29db8f77bae4 tests/reproducers/simple/JSToJFuncResol/resources/JSToJava_FuncResol.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncResol/resources/JSToJava_FuncResol.js Wed Apr 10 16:15:16 2013 +0200 @@ -0,0 +1,11 @@ +function doFuncResolTests(){ + + var urlArgs = document.URL.split("?"); + var testParams = urlArgs[1].split(";"); + var applet = document.getElementById('jstojFuncResolApplet'); + var func = testParams[0]; + var value = decodeURIComponent(testParams[1]); + + eval('applet.' + func + '(' + value + ')'); + applet.writeAfterTests(); +} diff -r 37741b256ff4 -r 29db8f77bae4 tests/reproducers/simple/JSToJFuncResol/resources/jstoj-funcresol.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncResol/resources/jstoj-funcresol.jnlp Wed Apr 10 16:15:16 2013 +0200 @@ -0,0 +1,23 @@ + + + + + JavaScript to Java LiveConnect - FuncResol + IcedTea + + LiveConnect - tests for overloaded function resolution when calling Java functions from JS. + + + + + + + + + + diff -r 37741b256ff4 -r 29db8f77bae4 tests/reproducers/simple/JSToJFuncResol/srcs/JSToJFuncResol.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncResol/srcs/JSToJFuncResol.java Wed Apr 10 16:15:16 2013 +0200 @@ -0,0 +1,235 @@ +import java.applet.Applet; +import netscape.javascript.JSObject; + +public class JSToJFuncResol extends Applet { + + /****** Primitive (numeric) value resolutions ******/ + + /* Javascript primitive numeric (int) value resolutions: + * - to an analogous primitive Java type (best - lowest cost) + * - to another primitive numeric Java type (long) (second lowest) + * - to Java String type (third lowest) + */ + + public void numeric( int p){ + System.out.println("numeric(int) with "+p); + } + + public void numeric(long p) { + System.out.println("numeric(long) with "+p); + } + + public void numeric(String p) { + System.out.println("numeric(String) with "+p); + } + + /* Javascript primitive numeric (int) value resolutions: + * - to a different primitive Java numeric type (double) (best - second lowest cost) + * - to Java string (third lowest cost) + */ + + public void numericToDifferentNumeric(double p) { + System.out.println("numericToDifferentNumeric(double) with "+p); + } + + public void numericToDifferentNumeric(String p) { + System.out.println("numericToDifferentNumeric(String) with "+p); + } + + /* Javascript primitive numeric (floating point) value resolutions: + * - to a primitive Java numeric type (double) (best - lowest cost) + * - to Java char + */ + + public void numericToDouble(double p) { + System.out.println("numericToDouble(double) with "+p); + } + + public void numericToDouble(char p) { + System.out.println("numericToDouble(char) with "+p); + } + + + + /****** Null resolutions ******/ + + /* Javascript null value resolutions: + * - to any nonprimitive Java type (e.g. Integer) (best) + * - to a primitive Java type (int) (not allowed) + */ + + public void nullToInteger(Integer p) { + + System.out.println("nullToInteger(Integer) with "+p); + } + + public void nullToInteger(int p) { + System.out.println("nullToInteger(int) with "+p); + } + + /****** Java inherited class resolutions ******/ + + /* Java inherited class (OverloadTestHelper2) value resolutions: + * - to the same class type (OverloadTestHelper2) (best) + * - to a superclass (OverloadTestHelper1) (second best) + * - to a subclass (OverloadTestHelper3) (not possible) + */ + + public void inheritedClass(OverloadTestHelper2 p) { + System.out.println("inheritedClass(OverloadTestHelper2) with "+p); + } + + public void inheritedClass(OverloadTestHelper1 p) { + System.out.println("inheritedClass(OverloadTestHelper1) with "+p); + } + + public void inheritedClass(OverloadTestHelper3 p) { + System.out.println("inheritedClass(OverloadTestHelper3) with "+p); + } + + /* Java inherited class (OverloadTestHelper3) value resolutions: + * - to a superclass (OverloadTestHelper2) (best - second lowest cost) + * - to a superclass of superclass (OverloadTestHelper1) (higher cost) + */ + + public void inheritedClassToParent1(OverloadTestHelper2 p) { + System.out.println("inheritedClassToParent1(OverloadTestHelper2) with "+p); + } + + public void inheritedClassToParent1(OverloadTestHelper1 p) { + System.out.println("inheritedClassToParent1(OverloadTestHelper1) with "+p); + } + + /* Java inherited class (OverloadTestHelper2) resolutions: + * - to the superclass (OverloadTestHelper1) (best - second lowest cost) + * - to Java String (third lowest cost) + */ + + public void inheritedClassToParent2(OverloadTestHelper1 p) { + System.out.println("inheritedClassToParent2(OverloadTestHelper1) with "+p); + } + + public void inheritedClassToParent2(String p) { + System.out.println("inheritedClassToParent2(String) with "+p); + } + + + /****** Java object resolutions ******/ + + /* Java object (OverloadTestHelper1) value resolutions: + * - to Java String (best - third lowest cost) + * - to a different nonprimitive Java class (JSObject) (not possible) + */ + + public void javaObjectToString(String p) { + System.out.println("javaObjectToString(String) with "+p); + } + + public void javaObjectToString(JSObject p) { + System.out.println("javaObjectToString(JSObject) with "+p); + } + + /****** String resolutions ******/ + + /* Javascript string value resolutions: + * - to a primitive numeric Java type (double) (best - second lowest cost) + * - to a nonprimitive Java class (OverloadTestHelper1 as a dummy)(not possible) + */ + + public void javascriptStringToNumeric(double p) { + System.out.println("javascriptStringToNumeric(double) with "+p); + } + + public void javascriptStringToNumeric(OverloadTestHelper1 p) { + System.out.println("javascriptStringToNumeric(OverloadTestHelper1) with "+p); + } + + /****** Javascript object resolutions ******/ + + /* Javascript object value resolutions: + * - to JSObject Java type (best - lowest cost) + * - to Java String type (fourth lowest cost) + * - to Java array of Strings (fourth lowest cost) + * - to a Java superclass (Object) (second lowest cost) + */ + + public void javascriptObject(JSObject p) { + System.out.println("javascriptObject(JSObject) with "+p); + } + + public void javascriptObject(String p) { + System.out.println("javascriptObject(String) with "+p); + } + + public void javascriptObject(String[] p) { + System.out.println("javascriptObject(String[]) with "+p); + } + + public void javascriptObject(Object p) { + System.out.println("javascriptObject(Object) with "+p); + } + + /* Javascript object (array) value resolutions: + * - to a Java array of primitive numeric Java type (int[]) (best - fourth lowest cost) + * - to a nonprimitive Java class Integer (impossible) + */ + + public void javascriptObjectToArray(int[] p) { + System.out.println("javascriptObjectToArray(int[]) with "+p); + } + + public void javascriptObjectToArray(Integer p) { + System.out.println("javascriptObjectToArray(Integer) with "+p); + } + + + /****** Not allowed resolutions *******/ + + /* Impossible resolutions all should result in + * "Error on Java side: No suitable method named ... with matching args found" + * - null to a primitive numeric Java type (int) + * - JSObject (window) to a different nonprimitive Java class (OverloadTestHelper1) + * - non-array value (numeric primitive 25) to array + */ + + public void nullToPrimitive(int p) { + System.out.println("nullToPrimitive(int) with "+p); + } + + public void javascriptObjectToUnrelatedType(OverloadTestHelper1 p) { + System.out.println("javascriptObjectToUnrelatedType(OverloadTesthelper1) with "+p); + } + + public void unsupported(Object[] p) { + System.out.println("unsupported(Object[]) with "+p); + } + + /****** Auxiliary methods and classes ******/ + + public void init() { + String initStr = "JSToJFuncResol applet initialized."; + System.out.println(initStr); + } + + public void writeAfterTests(){ + System.out.println("afterTests"); + } + + //dummy classes for passing objects as function parameters + public class OverloadTestHelper1 {}; + public class OverloadTestHelper2 extends OverloadTestHelper1 {}; + public class OverloadTestHelper3 extends OverloadTestHelper2 {}; + + public OverloadTestHelper1 getNewOverloadTestHelper1(){ + return new OverloadTestHelper1(); + } + + public OverloadTestHelper2 getNewOverloadTestHelper2(){ + return new OverloadTestHelper2(); + } + + public OverloadTestHelper3 getNewOverloadTestHelper3(){ + return new OverloadTestHelper3(); + } + +} diff -r 37741b256ff4 -r 29db8f77bae4 tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java Wed Apr 10 16:15:16 2013 +0200 @@ -0,0 +1,193 @@ +/* JSToJFuncResolTest.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.ProcessResult; +import net.sourceforge.jnlp.ServerAccess; +import net.sourceforge.jnlp.browsertesting.BrowserTest; +import net.sourceforge.jnlp.browsertesting.Browsers; +import net.sourceforge.jnlp.closinglisteners.CountingClosingListener; +import net.sourceforge.jnlp.annotations.NeedsDisplay; +import net.sourceforge.jnlp.annotations.TestInBrowsers; +import net.sourceforge.jnlp.annotations.KnownToFail; +import org.junit.Assert; +import org.junit.Test; + +public class JSToJFuncResolTest extends BrowserTest { + + private final String initStr = "JSToJFuncResol applet initialized."; + private final String afterStr = "afterTests"; + + private class CountingClosingListenerImpl extends CountingClosingListener { + + @Override + protected boolean isAlowedToFinish(String s) { + + return (s.contains(initStr) && s.contains(afterStr)); + } + } + + private void evaluateStdoutContents(String expectedStdout, ProcessResult pr) { + // Assert that the applet was initialized. + Assert.assertTrue("JSToJFuncResol: the stdout should contain " + initStr + + ", but it didnt.", pr.stdout.contains(initStr)); + + // Assert that the values set by JavaScript are ok + Assert.assertTrue("JSToJFuncResol: the output should include: "+expectedStdout+", but it didnt.", + pr.stdout.contains(expectedStdout)); + + } + + private void jsToJavaFuncResolTest( String methodStr, String valueStr, String expectedStdout) throws Exception { + String strURL = "/JSToJFuncResol.html?" + methodStr + ";" + valueStr; + ProcessResult pr = server.executeBrowser(strURL, new CountingClosingListenerImpl(), new CountingClosingListenerImpl()); + evaluateStdoutContents(expectedStdout, pr); + } + + /****** Primitive (numeric) value resolutions ******/ + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_numeric_Test() throws Exception { + jsToJavaFuncResolTest("numeric", "1", "numeric(int) with 1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_numericToDifferentNumeric_Test() throws Exception { + jsToJavaFuncResolTest("numericToDifferentNumeric", "1.1", "numericToDifferentNumeric(double) with 1.1"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + public void AppletJSToJFuncResol_numericToDouble_Test() throws Exception { + jsToJavaFuncResolTest("numericToDouble", "1.1", "numericToDouble(double) with 1.1"); + } + + /****** Null resolutions ******/ + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_nullToInteger_Test() throws Exception { + jsToJavaFuncResolTest("nullToInteger", "null", "nullToInteger(Integer) with null"); + } + + /****** Java inherited class resolutions ******/ + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_inheritedClass_Test() throws Exception { + jsToJavaFuncResolTest("inheritedClass", "applet.getNewOverloadTestHelper2()", "inheritedClass(OverloadTestHelper2) with JSToJFuncResol$OverloadTestHelper2@"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_inheritedClassToParent1_Test() throws Exception { + jsToJavaFuncResolTest("inheritedClassToParent1", "applet.getNewOverloadTestHelper3()", "inheritedClassToParent1(OverloadTestHelper2) with JSToJFuncResol$OverloadTestHelper3@"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_inheritedClassToParent2_Test() throws Exception { + jsToJavaFuncResolTest("inheritedClassToParent2", "applet.getNewOverloadTestHelper2()", "inheritedClassToParent2(OverloadTestHelper1) with JSToJFuncResol$OverloadTestHelper2@"); + } + + /****** Java object resolutions ******/ + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_javaObjectToString_Test() throws Exception { + jsToJavaFuncResolTest("javaObjectToString", "applet.getNewOverloadTestHelper1()", "javaObjectToString(String) with JSToJFuncResol$OverloadTestHelper1@"); + } + + /****** String resolutions ******/ + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_javascriptStringToNumeric_Test() throws Exception { + jsToJavaFuncResolTest("javascriptStringToNumeric", "\"1.1\"", "javascriptStringToNumeric(double) with 1.1"); + } + + /****** Javascript object resolutions ******/ + + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + public void AppletJSToJFuncResol_javascriptObject_Test() throws Exception { + jsToJavaFuncResolTest("javascriptObject", "window", "javascriptObject(JSObject) with [object Window]"); + } + + @Test From jvanek at redhat.com Wed Apr 10 09:20:04 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 10 Apr 2013 18:20:04 +0200 Subject: Upcoming releases of IcedTea-Web 1.2, 1.3, 1.4 In-Reply-To: <515E921C.2030207@redhat.com> References: <515E921C.2030207@redhat.com> Message-ID: <51659134.8050509@redhat.com> On 04/05/2013 10:58 AM, Jiri Vanek wrote: > Hi all! > > There are two releases of IcedTea-Web approaching: > > We would like to release 1.2 and 1.3 in 17th of April > Please count with freezing of branches in week 10-17.4, but there is not so much traffic on > branches anyway. > > At 1th of May is planed release of IcedTea-Web 1.4! > This release is bringing many improvements and IcedTea-Web was never as stable as is now. I would > like to encourage every distribution to move to this release. > Unless something unlucky will be found in 1.4, some time later the 1.2 will be proclaimed dead. > Please count with head frozen in last week of April. > > Best regards > J. Hi! With the approaching release of IcedTea-Web 1.2.3 and 1.3.2, please consider /release/icedtea-web-1.2/ and /release/icedtea-web-1.3/ frozen. 1.2: - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 - PR1157: Applets can hang browser after fatal exception 1.3 - Added new option in itw-settings which allows users to set JVM arguments when plugin is initialized. (backport) PR1260: IcedTea-Web should not rely on GTK PR1157: Applets can hang browser after fatal exception Provide names for unnamed threads for better debugging Both releases will also contain a (currently embargoed) security fix. Thanks for your for patience, understanding and contributions! J. From adomurad at redhat.com Wed Apr 10 12:02:23 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 10 Apr 2013 15:02:23 -0400 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <515F066A.7060005@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com> <515F009D.2080108@redhat.com> <515F066A.7060005@redhat.com> Message-ID: <5165B73F.9000909@redhat.com> [ .. original message snipped ..] Sorry for the confusion. I spent a bit of time creating a reproducer and investigating why we were different from the proprietary plugin to begin with. I have finally found the real reason for the troubles & inconsistency here, the basic fix is: > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > b/plugin/i > --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > @@ -439,8 +439,7 @@ public class PluginAppletViewer extends > String height = msgParts[2]; > > int spaceLocation = message.indexOf(' ', "tag".length() + 1); > - String documentBase = > - UrlUtil.decode(message.substring("tag".length() + 1, > spaceLocat > + String documentBase = message.substring("tag".length() + 1, > spaceLocati > String paramString = message.substring(spaceLocation + 1); > > PluginDebug.debug("Handle = ", handle, "\n", And we're 100% compatible with proprietary plugin, and aren't storing invalid URLs. The only remaining fix-up was ... > diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > @@ -390,7 +390,7 @@ public class ResourceTracker { > return resource.localFile; > > if (location.getProtocol().equalsIgnoreCase("file")) { > - File file = new File(location.getFile()); > + File file = new File(location.toURI().getPath()); > if (file.exists()) > return file; > } > @@ -401,6 +401,9 @@ public class ResourceTracker { > ex.printStackTrace(); > > return null; // need an error exception to throw > + } catch (URISyntaxException e) { > + e.printStackTrace(); > + return null; > } > } Which works around a bad mis-design of URL#getFile() which does not decode the URL. This only applies to local files. URL#getFile() should be avoided, I think. Fix ChangeLog: 2013-XX-XX Adam Domurad Ensure document-base is properly encoded. * netx/net/sourceforge/jnlp/cache/ResourceTracker.java (getCacheFile): Use URL#toUri().getPath() instead of URL#getFile(). * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (handleInitializationMessage): Don't decode document-base. Reproducer ChangeLog: 2013-XX-XX Adam Domurad Reproducer for URL parameters (eg ?a=b) in document-base. * tests/reproducers/simple/URLParametersInDocumentBase/resources/URLParametersInDocumentBase.html: Page that loads applet. * tests/reproducers/simple/URLParametersInDocumentBase/srcs/URLParametersInDocumentBase.java: Applet that prints code-base & document-base. * tests/reproducers/simple/URLParametersInDocumentBase/testcases/URLParametersInDocumentBaseTests.java: Test-driver. The UrlUtils patch is not strictly necessary any more, but I'd still like it in (it is unaffected by the changes). It can be just in HEAD though. Please note that I strongly want the fix in 1.3 since without it one cannot use Oracle LMS. Thanks, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: document-base-encoding-reproducer.patch Type: text/x-patch Size: 8638 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130410/0a5ca63d/document-base-encoding-reproducer.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: dont-decode-documentbase.patch Type: text/x-patch Size: 1645 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130410/0a5ca63d/dont-decode-documentbase.patch From martinrb at google.com Wed Apr 10 12:36:28 2013 From: martinrb at google.com (Martin Buchholz) Date: Wed, 10 Apr 2013 12:36:28 -0700 Subject: Use of -Werror in langtools/make and ${warnings.fatal} In-Reply-To: References: Message-ID: Ping. Andrew, I sent you a bug report with fix, for IcedTea, not OpenJDK! (my first IcedTea patch) Martin On Fri, Mar 1, 2013 at 4:11 PM, Martin Buchholz wrote: > ant can no longer be invoked directly (i.e. not via makefile) in > langtools/make because ${warnings.fatal} is undefined. > > cd langtools/make > ant -Djavac.warnings.fatal= -Dboot.java.home=$jdk6 > -Dtarget.java.home=$jdk7 build > ... > [javac] Compiling 295 source files to > /usr/local/google/home/martinrb/ws/icedtea7-forest/langtools/build/bootstrap/classes > [javac] javac: invalid flag: ${warnings.fatal} > > Caused by this icedtea-only patch: > > # HG changeset patch > # User andrew > # Date 1345649970 -3600 > # Node ID 26f5c80eb792e8536e15c82670dc38a140bb1ec3 > # Parent b19919b8e86d7f17317d7cf6ca440ee4d3d4e14d > PR1095: Allow -Werror to be turned off. > > diff --git a/make/Makefile b/make/Makefile > --- a/make/Makefile > +++ b/make/Makefile > @@ -111,6 +111,12 @@ > ANT_OPTIONS += -Ddebug.classfiles=true > endif > > +ifeq ($(JAVAC_WARNINGS_FATAL), true) > + ANT_OPTIONS += -Dwarnings.fatal=-Werror > +else > + ANT_OPTIONS += -Dwarnings.fatal= > +endif > + > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > # and the somewhat misnamed CLASS_VERSION (-target NN) > ifdef TARGET_CLASS_VERSION > diff --git a/make/build.properties b/make/build.properties > --- a/make/build.properties > +++ b/make/build.properties > @@ -68,7 +68,7 @@ > # set the following to -version to verify the versions of javac being used > javac.version.opt = > # in time, there should be no exceptions to -Xlint:all > -javac.lint.opts = -Xlint:all,-deprecation -Werror > +javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > > # options for the task for javac > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > > Here's a possible fix, that preserves the openjdk default of -Werror, > renames warnings.fatal to javac.warnings.fatal, and allows escape via > JAVAC_WARNINGS_FATAL=false > > > diff --git a/make/Makefile b/make/Makefile > --- a/make/Makefile > +++ b/make/Makefile > @@ -111,10 +111,8 @@ > ANT_OPTIONS += -Ddebug.classfiles=true > endif > > -ifeq ($(JAVAC_WARNINGS_FATAL), true) > - ANT_OPTIONS += -Dwarnings.fatal=-Werror > -else > - ANT_OPTIONS += -Dwarnings.fatal= > +ifeq ($(JAVAC_WARNINGS_FATAL), false) > + ANT_OPTIONS += -Djavac.warnings.fatal= > endif > > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > diff --git a/make/build.properties b/make/build.properties > --- a/make/build.properties > +++ b/make/build.properties > @@ -68,7 +68,8 @@ > # set the following to -version to verify the versions of javac being used > javac.version.opt = > # in time, there should be no exceptions to -Xlint:all > -javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > +javac.warnings.fatal = -Werror > +javac.lint.opts = -Xlint:all,-deprecation ${javac.warnings.fatal} > > # options for the task for javac > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130410/052ddd2f/attachment.html From gnu.andrew at redhat.com Thu Apr 11 01:29:29 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Thu, 11 Apr 2013 04:29:29 -0400 (EDT) Subject: Permission to translate your page at http://icedtea.classpath.org/ In-Reply-To: <-9022253926175883022@unknownmsgid> References: <5165CC6A.9070208@webhostinggeeks.com> <-9022253926175883022@unknownmsgid> Message-ID: <1879836454.2629464.1365668969889.JavaMail.root@redhat.com> distro-pkg-dev at openjdk.java.net is the IcedTea mailing list. ----- Original Message ----- > Not sure where to send this... > > > Begin forwarded message: > > *From:* Anja Skrba > *Date:* April 10, 2013, 4:32:42 PM EDT > *To:* cbj at gnu.org > *Subject:* *Permission to translate your page at > http://icedtea.classpath.org/* > *Reply-To:* Anja Skrba > > > Dear Sir, > > I am writing to inquire regarding your web page about IcedTea project where > I have found a lot of useful information. My name is Anja and I'm currently > studying at the Faculty of Computer Science in Belgrade. > Here is the URL of your article: http://icedtea.classpath.org/wiki/Main_Page > > I would like to share it with the people from Former Yugoslav Republics: > Serbia, Montenegro, Croatia, Slovenia, Macedonia, Bosnia and Herzegovina. > > I would be grateful if you could allow me to translate your writing into > Serbo-Croatian language, that is used in all Former Yugoslav Republics and > to post it on my website. Hopefully, it will help our people to gather some > additional knowledge about computing. > > I hope to hear from you soon. > > Regards, > Anja Skrba > anjas at webhostinggeeks.com > http://science.webhostinggeeks.com/ > Tel: +381 62 300604 > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From ptisnovs at icedtea.classpath.org Thu Apr 11 02:00:18 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 11 Apr 2013 09:00:18 +0000 Subject: /hg/rhino-tests: Updated four tests in SimpleScriptContextClassT... Message-ID: changeset 857eee8c4f34 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=857eee8c4f34 author: Pavel Tisnovsky date: Thu Apr 11 11:03:34 2013 +0200 Updated four tests in SimpleScriptContextClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/SimpleScriptContextClassTest.java | 64 ++++++++++++++++++- 2 files changed, 67 insertions(+), 4 deletions(-) diffs (126 lines): diff -r 03d34eb842e5 -r 857eee8c4f34 ChangeLog --- a/ChangeLog Wed Apr 10 09:28:01 2013 +0200 +++ b/ChangeLog Thu Apr 11 11:03:34 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-11 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + Updated four tests in SimpleScriptContextClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-10 Pavel Tisnovsky * src/org/RhinoTests/CompilableClassTest.java: diff -r 03d34eb842e5 -r 857eee8c4f34 src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Wed Apr 10 09:28:01 2013 +0200 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Thu Apr 11 11:03:34 2013 +0200 @@ -294,12 +294,24 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); testedConstructors_jdk7.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); + testedConstructors_jdk8.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.simpleScriptContextClass.getConstructors(); @@ -324,12 +336,24 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); testedConstructors_jdk7.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); + testedConstructors_jdk8.put("public javax.script.SimpleScriptContext()", "javax.script.SimpleScriptContext"); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.simpleScriptContextClass.getDeclaredConstructors(); @@ -357,7 +381,21 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); constructorsThatShouldExist_jdk7.put("javax.script.SimpleScriptContext", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleScriptContext", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -389,7 +427,21 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); constructorsThatShouldExist_jdk7.put("javax.script.SimpleScriptContext", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleScriptContext", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -423,6 +475,10 @@ "public static final int javax.script.ScriptContext.ENGINE_SCOPE", "public static final int javax.script.ScriptContext.GLOBAL_SCOPE", }; + final String[] fieldsThatShouldExist_jdk8 = { + "public static final int javax.script.ScriptContext.ENGINE_SCOPE", + "public static final int javax.script.ScriptContext.GLOBAL_SCOPE", + }; // get the right array of field signatures final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; From ptisnovs at icedtea.classpath.org Thu Apr 11 02:30:25 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 11 Apr 2013 09:30:25 +0000 Subject: /hg/gfx-test: Fixed typos in JavaDoc, added two helper methods i... Message-ID: changeset 010bd56c0282 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=010bd56c0282 author: Pavel Tisnovsky date: Thu Apr 11 11:33:40 2013 +0200 Fixed typos in JavaDoc, added two helper methods into CommonBitmapOperations. Added helper methods into the test suite BitBltConvolveOp. diffstat: ChangeLog | 8 ++ src/org/gfxtest/framework/CommonBitmapOperations.java | 62 +++++++++++++++++- src/org/gfxtest/testsuites/BitBltConvolveOp.java | 36 +++++++++++ 3 files changed, 102 insertions(+), 4 deletions(-) diffs (168 lines): diff -r 2b45cb03da1d -r 010bd56c0282 ChangeLog --- a/ChangeLog Wed Apr 10 09:57:28 2013 +0200 +++ b/ChangeLog Thu Apr 11 11:33:40 2013 +0200 @@ -1,3 +1,11 @@ +2013-04-11 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + Fixed typos in JavaDoc, added two helper methods into + CommonBitmapOperations. + * src/org/gfxtest/testsuites/BitBltConvolveOp.java: + Added helper methods into the test suite BitBltConvolveOp. + 2013-04-10 Pavel Tisnovsky * src/org/gfxtest/framework/CommonRenderingStyles.java: diff -r 2b45cb03da1d -r 010bd56c0282 src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Wed Apr 10 09:57:28 2013 +0200 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Thu Apr 11 11:33:40 2013 +0200 @@ -674,7 +674,7 @@ } /** - * Create new buffered image containing diagonal checker pattern and then perform + * Create new buffered image containing grid pattern and then perform * basic BitBlt test. * * @param image @@ -704,7 +704,7 @@ } /** - * Create new buffered image containing diagonal checker pattern and then perform + * Create new buffered image containing grid pattern and then perform * basic BitBlt test. * * @param image @@ -732,6 +732,33 @@ } /** + * Create new buffered image containing grid pattern and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param rop + * selected raster operation + */ + public static TestResult doBitBltTestWithGridImage(TestImage image, Graphics2D graphics2d, int imageType, BufferedImageOp rop) + { + // create new buffered bitmap with given type + // bitmap should contains checker pattern + BufferedImage bufferedImage = ImageFactory.createGridImage(GRID_SIZE, DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling, no flipping and no cropping and using RescaleOp + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, rop) ? TestResult.PASSED : TestResult.FAILED; + } + + /** * Create new buffered image containing diagonal grid pattern and then perform basic BitBlt test. * * @param image @@ -784,7 +811,7 @@ } /** - * Create new buffered image containing diagonal checker pattern and then perform + * Create new buffered image containing diagonal grid pattern and then perform * basic BitBlt test. * * @param image @@ -814,7 +841,7 @@ } /** - * Create new buffered image containing diagonal checker pattern and then perform + * Create new buffered image containing diagonal grid pattern and then perform * basic BitBlt test. * * @param image @@ -842,6 +869,33 @@ } /** + * Create new buffered image containing grid pattern and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param rop + * selected raster operation + */ + public static TestResult doBitBltTestWithDiagonalGridImage(TestImage image, Graphics2D graphics2d, int imageType, BufferedImageOp rop) + { + // create new buffered bitmap with given type + // bitmap should contains checker pattern + BufferedImage bufferedImage = ImageFactory.createDiagonalGridImage(GRID_SIZE, DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling, no flipping and no cropping and using RescaleOp + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, rop) ? TestResult.PASSED : TestResult.FAILED; + } + + /** * Create new buffered image containing black and white horizontal stripes then perform basic BitBlt test. * * @param image diff -r 2b45cb03da1d -r 010bd56c0282 src/org/gfxtest/testsuites/BitBltConvolveOp.java --- a/src/org/gfxtest/testsuites/BitBltConvolveOp.java Wed Apr 10 09:57:28 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltConvolveOp.java Thu Apr 11 11:33:40 2013 +0200 @@ -153,6 +153,42 @@ } /** + * Test basic BitBlt operation for buffered image containing grid pattern + * with type TYPE_3BYTE_BGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltGridBufferedImageType3ByteRGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, rasterOp); + } + + /** + * Test basic BitBlt operation for buffered image containing diagonal grid pattern + * with type TYPE_3BYTE_BGR + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult doBitBltDiagonalGridBufferedImageType3ByteRGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithDiagonalGridImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, rasterOp); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. * * @param image From bugzilla-daemon at icedtea.classpath.org Thu Apr 11 03:00:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Apr 2013 10:00:18 +0000 Subject: [Bug 1391] New: Use system provided libicu over bundled version Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1391 Bug ID: 1391 Summary: Use system provided libicu over bundled version Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: rkennke at redhat.com CC: unassigned at icedtea.classpath.org Created attachment 852 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=852&action=edit Patch to make IcedTea use system provided libicu IcedTea / OpenJDK ships its several very old version of libicu (http://icu-project.org/) for unicode text layout. IcedTea could benefit from using a system provided libicu install, it would streamline security fixes, and probably pick up bugfixes and improvements from newer libicu releases. Attached is a quick hack to avoid building the bundled libicu and link against system libicu instead. Notice that the patch needs some work to make all this optional/configurable. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130411/31beb210/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Apr 11 03:03:21 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Apr 2013 10:03:21 +0000 Subject: [Bug 1391] Use system provided libicu over bundled version In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1391 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Version|unspecified |7-hg Target Milestone|--- |2.5.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130411/bb7da619/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Apr 11 03:03:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Apr 2013 10:03:50 +0000 Subject: [Bug 1391] Use system provided libicu over bundled version In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1391 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #852|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130411/be3ac741/attachment.html From gitne at excite.co.jp Thu Apr 11 04:39:39 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Thu, 11 Apr 2013 20:39:39 +0900 Subject: =?ISO-2022-JP?B?UmU6IFJlOiBQZXJtaXNzaW9uIHRvIHRyYW5zbGF0ZSB5b3VyIHBhZ2UgYXQgaHR0cDovL2ljZWR0ZWEuY2xhc3NwYXRoLm9yZy8=?= Message-ID: <201304111139.r3BBddqU023357@mail-web03.excite.co.jp> Hello! "Andrew Hughes" wrote: > distro-pkg-dev at openjdk.java.net is the IcedTea mailing list. > > ----- Original Message ----- > > Not sure where to send this... > > > > > > Begin forwarded message: > > > > *From:* Anja Skrba > > *Date:* April 10, 2013, 4:32:42 PM EDT > > *To:* cbj at gnu.org > > *Subject:* *Permission to translate your page at > > http://icedtea.classpath.org/* > > *Reply-To:* Anja Skrba > > > > > > Dear Sir, > > > > I am writing to inquire regarding your web page about IcedTea project where > > I have found a lot of useful information. My name is Anja and I'm currently > > studying at the Faculty of Computer Science in Belgrade. > > Here is the URL of your article: http://icedtea.classpath.org/wiki/Main_Page Wow, slav languages seem to rule IcedTea-Web! :) No, just kidding. If I may drop in some advice on this, I would rather recommend to begin with translating the documentation or the software than the wiki. Although the wiki also does contain documentation, a wiki is usually rather voliatile, so there is some risk that one will end up doing a Sisyphean task. @Anja Would you like to consider translating man-pages and the software itself first? > > I would like to share it with the people from Former Yugoslav Republics: > > Serbia, Montenegro, Croatia, Slovenia, Macedonia, Bosnia and Herzegovina. > > > > I would be grateful if you could allow me to translate your writing into > > Serbo-Croatian language, that is used in all Former Yugoslav Republics and > > to post it on my website. Hopefully, it will help our people to gather some > > additional knowledge about computing. > > > > I hope to hear from you soon. > > > > Regards, > > Anja Skrba > > anjas at webhostinggeeks.com > > http://science.webhostinggeeks.com/ > > Tel: +381 62 300604 > > > > -- > 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 Regars, Jacob From jfabriko at redhat.com Thu Apr 11 05:58:22 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Thu, 11 Apr 2013 14:58:22 +0200 Subject: [rfc][icedtea-web] a new reproducer for LiveConnect J->JS "get" tests In-Reply-To: <513781DB.30309@redhat.com> References: <513767B3.3010904@redhat.com> <513781DB.30309@redhat.com> Message-ID: <1365685102.19302.2.camel@jana-2-174.nrt.redhat.com> Hi Adam, On Wed, 2013-03-06 at 12:50 -0500, Adam Domurad wrote: > This isn't what your subject line says it is :-) > you are right, this was an exceptional time when all the reproducers were a little bit simillar and I tried to send them at once, which was not such a good idea, since I forgot to change the subject;) > On 03/06/2013 10:58 AM, Jana Fabrikova wrote: > > Hello, > > > > please see the attached patch of new reproducer for J->JS "evaluating > > by calling JS eval from J". > > The patch itself looks good, but what was the motivation for this ? IMHO > we do not need more than one reproducer that tests eval, which we > already have (JSObjectFromEval). From our point-of-view it's sending a > string to the javascript engine. All the specific object conversion > stuff should be handled with unit tests (this may require a bit of > refactoring to support, but should be do-able). Ok, I will not push this reproducer, since the sending of string to JS eval is already covered by JSObjectFromEval. Thank you for the review, cheers, Jana > > Are you working on all these patches concurrently ? If not it'd be > better to post them to list for feedback as you finish them, instead of > all at once. Not a huge deal, though. > > > [..snip..] > > Happy hacking, > -Adam From gnu.andrew at redhat.com Thu Apr 11 05:55:45 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Thu, 11 Apr 2013 08:55:45 -0400 (EDT) Subject: Use of -Werror in langtools/make and ${warnings.fatal} In-Reply-To: References: Message-ID: <1460433283.2766457.1365684945448.JavaMail.root@redhat.com> ----- Original Message ----- > Ping. Andrew, I sent you a bug report with fix, for IcedTea, not OpenJDK! > (my first IcedTea patch) > > Martin > > On Fri, Mar 1, 2013 at 4:11 PM, Martin Buchholz wrote: > > > ant can no longer be invoked directly (i.e. not via makefile) in > > langtools/make because ${warnings.fatal} is undefined. > > > > cd langtools/make > > ant -Djavac.warnings.fatal= -Dboot.java.home=$jdk6 > > -Dtarget.java.home=$jdk7 build > > ... > > [javac] Compiling 295 source files to > > /usr/local/google/home/martinrb/ws/icedtea7-forest/langtools/build/bootstrap/classes > > [javac] javac: invalid flag: ${warnings.fatal} > > > > Caused by this icedtea-only patch: > > > > # HG changeset patch > > # User andrew > > # Date 1345649970 -3600 > > # Node ID 26f5c80eb792e8536e15c82670dc38a140bb1ec3 > > # Parent b19919b8e86d7f17317d7cf6ca440ee4d3d4e14d > > PR1095: Allow -Werror to be turned off. > > > > diff --git a/make/Makefile b/make/Makefile > > --- a/make/Makefile > > +++ b/make/Makefile > > @@ -111,6 +111,12 @@ > > ANT_OPTIONS += -Ddebug.classfiles=true > > endif > > > > +ifeq ($(JAVAC_WARNINGS_FATAL), true) > > + ANT_OPTIONS += -Dwarnings.fatal=-Werror > > +else > > + ANT_OPTIONS += -Dwarnings.fatal= > > +endif > > + > > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > > # and the somewhat misnamed CLASS_VERSION (-target NN) > > ifdef TARGET_CLASS_VERSION > > diff --git a/make/build.properties b/make/build.properties > > --- a/make/build.properties > > +++ b/make/build.properties > > @@ -68,7 +68,7 @@ > > # set the following to -version to verify the versions of javac being used > > javac.version.opt = > > # in time, there should be no exceptions to -Xlint:all > > -javac.lint.opts = -Xlint:all,-deprecation -Werror > > +javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > > > > # options for the task for javac > > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > > > > > Here's a possible fix, that preserves the openjdk default of -Werror, > > renames warnings.fatal to javac.warnings.fatal, and allows escape via > > JAVAC_WARNINGS_FATAL=false > > > > > > diff --git a/make/Makefile b/make/Makefile > > --- a/make/Makefile > > +++ b/make/Makefile > > @@ -111,10 +111,8 @@ > > ANT_OPTIONS += -Ddebug.classfiles=true > > endif > > > > -ifeq ($(JAVAC_WARNINGS_FATAL), true) > > - ANT_OPTIONS += -Dwarnings.fatal=-Werror > > -else > > - ANT_OPTIONS += -Dwarnings.fatal= > > +ifeq ($(JAVAC_WARNINGS_FATAL), false) > > + ANT_OPTIONS += -Djavac.warnings.fatal= > > endif > > > > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > > diff --git a/make/build.properties b/make/build.properties > > --- a/make/build.properties > > +++ b/make/build.properties > > @@ -68,7 +68,8 @@ > > # set the following to -version to verify the versions of javac being used > > javac.version.opt = > > # in time, there should be no exceptions to -Xlint:all > > -javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > > +javac.warnings.fatal = -Werror > > +javac.lint.opts = -Xlint:all,-deprecation ${javac.warnings.fatal} > > > > # options for the task for javac > > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > > > > Thanks, Martin! Sorry for the delay in replying. I'm getting as bad as Oracle... :-) I remember seeing this but went straight into doing the security update when I came back. I'll try and roll your fix into the release next week. -- 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 adomurad at redhat.com Thu Apr 11 06:21:16 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 11 Apr 2013 09:21:16 -0400 Subject: [rfc][icedtea-web] Stop supporting old version of NPAPI for 1.4 In-Reply-To: <5162B051.3060705@redhat.com> References: <1342127331.2560.6.camel@voip-10-15-18-79.yyz.redhat.com> <4FFF3FA0.3030905@redhat.com> <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> <515C56C3.7030005@redhat.com> <5162B051.3060705@redhat.com> Message-ID: <5166B8CC.6080300@redhat.com> On 04/08/2013 07:56 AM, Jiri Vanek wrote: > On 04/03/2013 06:20 PM, Adam Domurad wrote: >> On 07/13/2012 04:14 PM, Adam Domurad wrote: >>> On Thu, 2012-07-12 at 17:20 -0400, Omair Majid wrote: >>>> On 07/12/2012 05:08 PM, Adam Domurad wrote: >>>>> Hi. This was briefly discussed with Deepak, and by the time 1.4 is >>>>> released, there will be no need to support the versions of firefox >>>>> that >>>>> have the old api. >>>> Could you tell us what versions are these? What about other browsers >>>> that we care about? >>>> >>>> Thanks, >>>> Omair >>> Sorry, replied off-list. Resent. >>> >>> Hi Omair. This affects API versions <1.9, and only affects Firefox <4. >>> >>> >>> >> >> Ping ? Think this would help maintainability going forward. >> -Adam > > > Around and around this looks good. But I'm hesitating for 1.4 with > it... I would rather save this patch for head after branching. I disagree. If we hold off on it, we accept a backport burden for no reason -- we never compile with this support. The binary should be exactly the same. > > Thank yo for looking into it. > > J. Thanks, -Adam From adomurad at icedtea.classpath.org Thu Apr 11 07:03:50 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 11 Apr 2013 14:03:50 +0000 Subject: /hg/icedtea-web: Allow for remembered unsigned trust based on co... Message-ID: changeset a94a9a400c5d in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a94a9a400c5d author: Adam Domurad date: Thu Apr 11 10:02:11 2013 -0400 Allow for remembered unsigned trust based on codebase diffstat: ChangeLog | 14 + netx/net/sourceforge/jnlp/resources/Messages.properties | 2 + netx/net/sourceforge/jnlp/security/SecurityDialogs.java | 7 +- netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java | 4 +- netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java | 73 +++++++++- netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java | 30 ++- 6 files changed, 108 insertions(+), 22 deletions(-) diffs (313 lines): diff -r 29db8f77bae4 -r a94a9a400c5d ChangeLog --- a/ChangeLog Wed Apr 10 16:15:16 2013 +0200 +++ b/ChangeLog Thu Apr 11 10:02:11 2013 -0400 @@ -1,3 +1,17 @@ +2013-04-11 Adam Domurad + + Allow remembering applet confirmation for whole codebase. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added SRememberAppletOnly, SRememberCodebase messages + * netx/net/sourceforge/jnlp/security/SecurityDialogs.java + (showUnsignedWarningDialog): Use UnsignedWarningAction + * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java + (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction + * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: + Introduce UnsignedWarningAction, add additional confirmation choices + * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: + Support remembering action for entire codebase. + 2013-04-10 Jana Fabrikova * /tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java: diff -r 29db8f77bae4 -r a94a9a400c5d netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 10 16:15:16 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr 11 10:02:11 2013 -0400 @@ -224,6 +224,8 @@ SAlwaysTrustPublisher=Always trust content from this publisher SHttpsUnverified=The website's HTTPS certificate cannot be verified. SRememberOption=Remember this option? +SRememberAppletOnly=For applet +SRememberCodebase=For site SUnsignedSummary=An unsigned Java application wants to run SUnsignedDetail=An unsigned application from the following location wants to run:
{0}

It is recommended you only run applications from sites you trust. SUnsignedAllowedBefore=You have accepted this applet previously. diff -r 29db8f77bae4 -r a94a9a400c5d netx/net/sourceforge/jnlp/security/SecurityDialogs.java --- a/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Wed Apr 10 16:15:16 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/SecurityDialogs.java Thu Apr 11 10:02:11 2013 -0400 @@ -37,6 +37,7 @@ package net.sourceforge.jnlp.security; +import net.sourceforge.jnlp.security.UnsignedAppletTrustWarningPanel.UnsignedWarningAction; import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; import java.awt.Dialog.ModalityType; @@ -182,10 +183,10 @@ * * @return true if permission was granted by the user, false otherwise. */ - public static ExecuteUnsignedApplet showUnsignedWarningDialog(JNLPFile file) { + public static UnsignedWarningAction showUnsignedWarningDialog(JNLPFile file) { if (!shouldPromptUser()) { - return ExecuteUnsignedApplet.NO; + return new UnsignedWarningAction(ExecuteUnsignedApplet.NO, false); } final SecurityDialogMessage message = new SecurityDialogMessage(); @@ -193,7 +194,7 @@ message.accessType = AccessType.UNSIGNED; message.file = file; - return (ExecuteUnsignedApplet)getUserResponse(message); + return (UnsignedWarningAction)getUserResponse(message); } /** diff -r 29db8f77bae4 -r a94a9a400c5d netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java --- a/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java Wed Apr 10 16:15:16 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java Thu Apr 11 10:02:11 2013 -0400 @@ -37,8 +37,8 @@ package net.sourceforge.jnlp.security; import net.sourceforge.jnlp.PluginBridge; +import net.sourceforge.jnlp.security.UnsignedAppletTrustWarningPanel.UnsignedWarningAction; import net.sourceforge.jnlp.security.UnsignedAppletTrustWarningPanel.ActionChoiceListener; -import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; /** * A panel that confirms that the user is OK with unsigned code running. @@ -52,7 +52,7 @@ add(new UnsignedAppletTrustWarningPanel(file, new ActionChoiceListener() { @Override - public void actionChosen(ExecuteUnsignedApplet action) { + public void actionChosen(UnsignedWarningAction action) { parent.setValue(action); parent.dispose(); } diff -r 29db8f77bae4 -r a94a9a400c5d netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java --- a/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Wed Apr 10 16:15:16 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Thu Apr 11 10:02:11 2013 -0400 @@ -43,19 +43,21 @@ import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.BoxLayout; +import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JRadioButton; import javax.swing.SwingConstants; -import net.sourceforge.jnlp.JNLPFile; import net.sourceforge.jnlp.PluginBridge; import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; @@ -63,10 +65,31 @@ public class UnsignedAppletTrustWarningPanel extends JPanel { /* + * Details of decided action. + */ + public static class UnsignedWarningAction { + private ExecuteUnsignedApplet action; + private boolean applyToCodeBase; + + public UnsignedWarningAction(ExecuteUnsignedApplet action, + boolean applyToCodeBase) { + this.action = action; + this.applyToCodeBase = applyToCodeBase; + } + + public ExecuteUnsignedApplet getAction() { + return action; + } + public boolean rememberForCodeBase() { + return applyToCodeBase; + } + } + + /* * Callback for when action is decided. */ public static interface ActionChoiceListener { - void actionChosen(ExecuteUnsignedApplet action); + void actionChosen(UnsignedWarningAction action); } private final int PANE_WIDTH = 500; @@ -79,6 +102,8 @@ private JButton allowButton; private JButton rejectButton; private JCheckBox permanencyCheckBox; + private JRadioButton applyToAppletButton; + private JRadioButton applyToCodeBaseButton; private PluginBridge file; @@ -128,7 +153,7 @@ private void setupInfoPanel() { String infoLabelText = R("SUnsignedDetail", file.getCodeBase()); - ExecuteUnsignedApplet rememberedAction = UnsignedAppletTrustConfirmation.getStoredAction((PluginBridge)file); + ExecuteUnsignedApplet rememberedAction = UnsignedAppletTrustConfirmation.getStoredAction(file); int panelHeight = INFO_PANEL_HEIGHT; if (rememberedAction == ExecuteUnsignedApplet.YES) { infoLabelText += "
" + R("SUnsignedAllowedBefore"); @@ -158,14 +183,33 @@ add(questionPanel); } + private JPanel createMatchOptionsPanel() { + JPanel matchOptionsPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + + ButtonGroup group = new ButtonGroup(); + applyToAppletButton = new JRadioButton(R("SRememberAppletOnly")); + applyToAppletButton.setSelected(true); + applyToAppletButton.setEnabled(false); // Start disabled until 'Remember this option' is selected + + applyToCodeBaseButton = new JRadioButton(R("SRememberCodebase")); + applyToCodeBaseButton.setEnabled(false); + + group.add(applyToAppletButton); + group.add(applyToCodeBaseButton); + + matchOptionsPanel.add(applyToAppletButton); + matchOptionsPanel.add(applyToCodeBaseButton); + + return matchOptionsPanel; + } + private JPanel createCheckBoxPanel() { JPanel checkBoxPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); permanencyCheckBox = new JCheckBox(htmlWrap(R("SRememberOption"))); + permanencyCheckBox.addActionListener(permanencyListener()); checkBoxPanel.add(permanencyCheckBox); - checkBoxPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - return checkBoxPanel; } @@ -189,8 +233,12 @@ // Set up 'Remember Option' checkbox & Proceed/Cancel buttons private void setupButtonAndCheckBoxPanel() { JPanel outerPanel = new JPanel(new BorderLayout()); + JPanel rememberPanel = new JPanel(new GridLayout(2 /*rows*/, 1 /*column*/)); + rememberPanel.add(createCheckBoxPanel()); + rememberPanel.add(createMatchOptionsPanel()); + rememberPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - outerPanel.add(createCheckBoxPanel(), BorderLayout.WEST); + outerPanel.add(rememberPanel, BorderLayout.WEST); outerPanel.add(createButtonPanel(), BorderLayout.EAST); add(outerPanel); @@ -208,6 +256,16 @@ setupButtonAndCheckBoxPanel(); } + // Toggles whether 'match applet' or 'match codebase' options are greyed out + private ActionListener permanencyListener() { + return new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + applyToAppletButton.setEnabled(permanencyCheckBox.isSelected()); + applyToCodeBaseButton.setEnabled(permanencyCheckBox.isSelected()); + } + }; + } // Sets action depending on allowApplet + checkbox state private ActionListener chosenActionSetter(final boolean allowApplet) { return new ActionListener() { @@ -221,7 +279,8 @@ action = permanencyCheckBox.isSelected() ? ExecuteUnsignedApplet.NEVER : ExecuteUnsignedApplet.NO; } - actionChoiceListener.actionChosen(action); + boolean applyToCodeBase = applyToCodeBaseButton.isSelected(); + actionChoiceListener.actionChosen(new UnsignedWarningAction(action, applyToCodeBase)); } }; } diff -r 29db8f77bae4 -r a94a9a400c5d netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java --- a/netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java Wed Apr 10 16:15:16 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java Thu Apr 11 10:02:11 2013 -0400 @@ -51,6 +51,7 @@ import net.sourceforge.jnlp.PluginBridge; import net.sourceforge.jnlp.cache.ResourceTracker; import net.sourceforge.jnlp.security.SecurityDialogs; +import net.sourceforge.jnlp.security.UnsignedAppletTrustWarningPanel.UnsignedWarningAction; public class UnsignedAppletTrustConfirmation { static private final boolean DEBUG = System.getenv().containsKey("ICEDTEAPLUGIN_DEBUG"); @@ -116,9 +117,9 @@ return fileNames; } - private static void updateAppletAction(PluginBridge file, ExecuteUnsignedApplet behaviour) { + private static void updateAppletAction(PluginBridge file, ExecuteUnsignedApplet behaviour, boolean rememberForCodeBase) { + UnsignedAppletActionStorage userActionStorage = securitySettings.getUnsignedAppletActionCustomStorage(); - UnsignedAppletActionStorage userActionStorage = securitySettings.getUnsignedAppletActionCustomStorage(); userActionStorage.lock(); // We should ensure this operation is atomic try { UnsignedAppletActionEntry oldEntry = getMatchingItem(userActionStorage, file); @@ -136,14 +137,22 @@ /* Else, create a new entry */ UrlRegEx codebaseRegex = new UrlRegEx("\\Q" + codebase + "\\E"); - UrlRegEx documentbaseRegex = new UrlRegEx("\\Q" + documentbase + "\\E"); + UrlRegEx documentbaseRegex = new UrlRegEx(".*"); // Match any from codebase + List archiveMatches = null; // Match any from codebase + + if (!rememberForCodeBase) { + documentbaseRegex = new UrlRegEx("\\Q" + documentbase + "\\E"); // Match only this applet + archiveMatches = toRelativePaths(file.getArchiveJars(), file.getCodeBase().toString()); // Match only this applet + } UnsignedAppletActionEntry entry = new UnsignedAppletActionEntry( behaviour, new Date(), documentbaseRegex, - codebaseRegex, - toRelativePaths(file.getArchiveJars(), file.getCodeBase().toString())); + codebaseRegex, + archiveMatches + ); + userActionStorage.add(entry); } finally { userActionStorage.unlock(); @@ -179,15 +188,16 @@ appletOK = false; } else { // No remembered decision, prompt the user - ExecuteUnsignedApplet decidedAction = SecurityDialogs.showUnsignedWarningDialog(file); + UnsignedWarningAction warningResponse = SecurityDialogs.showUnsignedWarningDialog(file); + ExecuteUnsignedApplet executeAction = warningResponse.getAction(); - appletOK = (decidedAction == ExecuteUnsignedApplet.YES || decidedAction == ExecuteUnsignedApplet.ALWAYS); + appletOK = (executeAction == ExecuteUnsignedApplet.YES || executeAction == ExecuteUnsignedApplet.ALWAYS); - if (decidedAction != null) { - updateAppletAction(file, decidedAction); + if (executeAction != null) { + updateAppletAction(file, executeAction, warningResponse.rememberForCodeBase()); } - debug("Decided action for unsigned applet at " + file.getCodeBase() +" was " + decidedAction); + debug("Decided action for unsigned applet at " + file.getCodeBase() +" was " + executeAction); } if (!appletOK) { From jvanek at redhat.com Thu Apr 11 08:03:32 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 11 Apr 2013 17:03:32 +0200 Subject: [rfc][icedtea-web] Stop supporting old version of NPAPI for 1.4 In-Reply-To: <5166B8CC.6080300@redhat.com> References: <1342127331.2560.6.camel@voip-10-15-18-79.yyz.redhat.com> <4FFF3FA0.3030905@redhat.com> <1342210496.2560.34.camel@voip-10-15-18-79.yyz.redhat.com> <515C56C3.7030005@redhat.com> <5162B051.3060705@redhat.com> <5166B8CC.6080300@redhat.com> Message-ID: <5166D0C4.7040702@redhat.com> On 04/11/2013 03:21 PM, Adam Domurad wrote: > On 04/08/2013 07:56 AM, Jiri Vanek wrote: >> On 04/03/2013 06:20 PM, Adam Domurad wrote: >>> On 07/13/2012 04:14 PM, Adam Domurad wrote: >>>> On Thu, 2012-07-12 at 17:20 -0400, Omair Majid wrote: >>>>> On 07/12/2012 05:08 PM, Adam Domurad wrote: >>>>>> Hi. This was briefly discussed with Deepak, and by the time 1.4 is >>>>>> released, there will be no need to support the versions of firefox that >>>>>> have the old api. >>>>> Could you tell us what versions are these? What about other browsers >>>>> that we care about? >>>>> >>>>> Thanks, >>>>> Omair >>>> Sorry, replied off-list. Resent. >>>> >>>> Hi Omair. This affects API versions <1.9, and only affects Firefox <4. >>>> >>>> >>>> >>> >>> Ping ? Think this would help maintainability going forward. >>> -Adam >> >> >> Around and around this looks good. But I'm hesitating for 1.4 with it... I would rather save this >> patch for head after branching. > > I disagree. If we hold off on it, we accept a backport burden for no reason -- we never compile with > this support. The binary should be exactly the same. > Ok then. You and ptisnovs are to strong to me to hold this back. Go freely on:) >> >> Thank yo for looking into it. >> >> J. > > Thanks, > -Adam From adomurad at redhat.com Thu Apr 11 10:31:06 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 11 Apr 2013 13:31:06 -0400 Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning decision for entire codebase In-Reply-To: <515ECC54.10002@redhat.com> References: <515DADB2.4020807@redhat.com> <515ECC54.10002@redhat.com> Message-ID: <5166F35A.6090503@redhat.com> On 04/05/2013 09:06 AM, Jiri Vanek wrote: > On 04/04/2013 06:43 PM, Adam Domurad wrote: >> As discussed between Jiri and myself. This allows for the decision >> chosen with unsigned applet confirmation to apply to an entire >> codebase, and not just a single applet. >> >> 2013-04-04 Adam Domurad >> >> Allow remembering applet confirmation for whole codebase. >> * netx/net/sourceforge/jnlp/resources/Messages.properties: >> Added SRememberAppletOnly, SRememberCodebase messages >> * netx/net/sourceforge/jnlp/security/SecurityDialogs.java >> (showUnsignedWarningDialog): Use UnsignedWarningAction >> * >> netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java >> (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction >> * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: >> Introduce UnsignedWarningAction, add additional confirmation choices >> * >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: >> Support remembering action for entire codebase. >> >> Happy hacking, >> -Adam > > Ok. Nothing directly against this patch. Working fine and so this can > go to head (after nit is fixed) and we will see users feedback after > 1.4 will be out unless you *want* to think about it little bit more:) > > Only nit (and RFC IRC here:) - Do you think you can show both > documentbase and codebase to the user? > You have now text say "Unsigned Applet from CODEBASE wants to run...." > I would like "Unsugned applet from page DOCUMENTBASE with code from > CODEBASE wants to run..." And in radio button then > > +SRememberCodebase=For site {0} > > where {0} will be CODEBASE (as it is what you are allowing. > (maybe it will need some Layout changes as codebase can grow, but you > have the radiobuttons on separate row so it should be ok) > > My concerns are about codebase. Well, it is quite hidden information > for user but there is mostly what one expects. > My imagination runs in ways like: > "allow just htis appelt" => A 1365157531641 > \Qhttp://localhost:34556/JavascriptSet.html\E > \Qhttp://localhost:34556/\E JavascriptSet.jar (ou how I miss main > class here...) > "allow everything from page http://localhost:34556/JavascriptSet.html" > => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E .* > "allow everything from domain http://localhost:34556/" => A > 1365157531641 \Qhttp://localhost:34556\E.* .* > allow everything from codebase http://localhost:34556/" => A > 1365157531641 .* \Qhttp://localhost:34556/\E > > Both last two can have longer path "where to cut": > http://domain.net/dir2/dir1/dir0/page.html > Then best for me would be to allow/deny: > http://domain.net/dir2/dir1/dir0/page.html > http://domain.net/dir2/dir1/dir0/.* > http://domain.net/dir2/dir1/.* > http://domain.net/dir2/.* > http://domain.net/.* > And some combinations with .* and without it and so on.... > > > :) But I know you do not like this. One of the reasons I wont your > patch in is, that I'm not sure how to intelligently connect codebase > and documentbase :-/ So this can be nice task for some new person. And > less code/logic == less errors. > > J. > > ps, thank you for disagreeing with me on several topics in this issue;) OK, as requested. For reference: http://i.imgur.com/mmGUaiK.png Changes: 2013-XX-XX Adam Domurad Present more information in unsigned applet confirmation. * netx/net/sourceforge/jnlp/resources/Messages.properties (SRememberCodebase): Add codebase parameter. (SUnsignedDetail): Change layout, add documentbase parameter. * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java (setupInfoPanel): Pass documentbase to SUnsignedDetail. (createCheckBoxPanel): Ensure left-alignment. (createButtonPanel): Less spacing above button. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: applet-trust-warning-more-info.patch Type: text/x-patch Size: 4106 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130411/2bb321bc/applet-trust-warning-more-info.patch From adomurad at icedtea.classpath.org Thu Apr 11 12:38:27 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 11 Apr 2013 19:38:27 +0000 Subject: /hg/icedtea-web: Remove legacy support for the old version of NPAPI Message-ID: changeset 50863f01bf84 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=50863f01bf84 author: Adam Domurad date: Thu Apr 11 15:37:32 2013 -0400 Remove legacy support for the old version of NPAPI diffstat: ChangeLog | 13 + plugin/icedteanp/IcedTeaNPPlugin.cc | 234 +--------------------- plugin/icedteanp/IcedTeaNPPlugin.h | 4 - plugin/icedteanp/IcedTeaPluginRequestProcessor.cc | 7 - plugin/icedteanp/IcedTeaPluginRequestProcessor.h | 6 - plugin/icedteanp/IcedTeaPluginUtils.cc | 10 - plugin/icedteanp/IcedTeaPluginUtils.h | 6 - plugin/icedteanp/IcedTeaRunnable.h | 5 - plugin/icedteanp/IcedTeaScriptablePluginObject.h | 4 - 9 files changed, 16 insertions(+), 273 deletions(-) diffs (490 lines): diff -r a94a9a400c5d -r 50863f01bf84 ChangeLog --- a/ChangeLog Thu Apr 11 10:02:11 2013 -0400 +++ b/ChangeLog Thu Apr 11 15:37:32 2013 -0400 @@ -1,3 +1,16 @@ +2013-04-11 Adam Domurad + + Remove legacy support for the old version of NPAPI. + * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove if directives for old + version of NPAPI. + * plugin/icedteanp/IcedTeaNPPlugin.h: Same + * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same + * plugin/icedteanp/IcedTeaPluginRequestProcessor.h: Same + * plugin/icedteanp/IcedTeaPluginUtils.cc: Same + * plugin/icedteanp/IcedTeaPluginUtils.h: Same + * plugin/icedteanp/IcedTeaRunnable.h: Same + * plugin/icedteanp/IcedTeaScriptablePluginObject.h: Same + 2013-04-11 Adam Domurad Allow remembering applet confirmation for whole codebase. diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 11 15:37:32 2013 -0400 @@ -55,28 +55,6 @@ #include "IcedTeaScriptablePluginObject.h" #include "IcedTeaNPPlugin.h" -#if MOZILLA_VERSION_COLLAPSED < 1090100 -// Documentbase retrieval includes. -#include -#include -#include - -// API's into Mozilla -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#endif - // Error reporting macros. #define PLUGIN_ERROR(message) \ @@ -153,11 +131,6 @@ #define FAILURE_MESSAGE "icedteanp plugin error: Failed to run %s." \ " For more detail rerun \"firefox -g\" in a terminal window." -#if MOZILLA_VERSION_COLLAPSED < 1090100 -// Documentbase retrieval required definition. -static NS_DEFINE_IID (kIPluginTagInfo2IID, NS_IPLUGINTAGINFO2_IID); -#endif - // Data directory for plugin. static std::string data_directory; @@ -210,14 +183,6 @@ // Sends messages to Java over the bus JavaMessageSender* java_req_proc; -#if MOZILLA_VERSION_COLLAPSED < 1090100 -// Documentbase retrieval type-punning union. -typedef union -{ - void** void_field; - nsIPluginTagInfo2** info_field; -} info_union; -#endif // Static instance helper functions. // Have the browser allocate a new ITNPPluginData structure. @@ -933,38 +898,6 @@ { return NPERR_GENERIC_ERROR; } -#if MOZILLA_VERSION_COLLAPSED < 1090100 - nsresult rv; - nsCOMPtr sec_man = - do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); - - if (!sec_man) { - return NPERR_GENERIC_ERROR; - } - - nsCOMPtr io_svc = do_GetService("@mozilla.org/network/io-service;1", &rv); - - if (NS_FAILED(rv) || !io_svc) { - return NPERR_GENERIC_ERROR; - } - - nsCOMPtr uri; - io_svc->NewURI(nsCString(siteAddr), NULL, NULL, getter_AddRefs(uri)); - - nsCOMPtr cookie_svc = do_GetService("@mozilla.org/cookieService;1", &rv); - - if (NS_FAILED(rv) || !cookie_svc) { - return NPERR_GENERIC_ERROR; - } - - rv = cookie_svc->GetCookieString(uri, NULL, cookieString); - - if (NS_FAILED(rv) || !*cookieString) { - return NPERR_GENERIC_ERROR; - } - -#else - // getvalueforurl needs an NPP instance. Quite frankly, there is no easy way // to know which instance needs the information, as applets on Java side can // be multi-threaded and the thread making a proxy.cookie request cannot be @@ -983,8 +916,6 @@ return NPERR_GENERIC_ERROR; } -#endif - return NPERR_NO_ERROR; } @@ -1025,71 +956,7 @@ // Documentbase retrieval. This function gets the current document's // documentbase. This function relies on browser-private data so it // will only work when the plugin is loaded in a Mozilla-based -// browser. We could not find a way to retrieve the documentbase -// using the original Netscape plugin API so we use the XPCOM API -// instead. -#if MOZILLA_VERSION_COLLAPSED < 1090100 -static gchar* -plugin_get_documentbase (NPP instance) -{ - PLUGIN_DEBUG ("plugin_get_documentbase\n"); - - nsIPluginInstance* xpcom_instance = NULL; - nsIPluginInstancePeer* peer = NULL; - nsresult result = 0; - nsIPluginTagInfo2* pluginTagInfo2 = NULL; - info_union u = { NULL }; - char const* documentbase = NULL; - gchar* documentbase_copy = NULL; - - xpcom_instance = (nsIPluginInstance*) (instance->ndata); - if (!xpcom_instance) - { - PLUGIN_ERROR ("xpcom_instance is NULL."); - goto cleanup_done; - } - - xpcom_instance->GetPeer (&peer); - if (!peer) - { - PLUGIN_ERROR ("peer is NULL."); - goto cleanup_done; - } - - u.info_field = &pluginTagInfo2; - - result = peer->QueryInterface (kIPluginTagInfo2IID, - u.void_field); - if (result || !pluginTagInfo2) - { - PLUGIN_ERROR ("pluginTagInfo2 retrieval failed."); - goto cleanup_peer; - } - - pluginTagInfo2->GetDocumentBase (&documentbase); - - if (!documentbase) - { - // NULL => dummy instantiation for LiveConnect - goto cleanup_plugintaginfo2; - } - - documentbase_copy = g_strdup (documentbase); - - // Release references. - cleanup_plugintaginfo2: - NS_RELEASE (pluginTagInfo2); - - cleanup_peer: - NS_RELEASE (peer); - - cleanup_done: - PLUGIN_DEBUG ("plugin_get_documentbase return\n"); - - PLUGIN_DEBUG("plugin_get_documentbase returning: %s\n", documentbase_copy); - return documentbase_copy; -} -#else +// browser. static gchar* plugin_get_documentbase (NPP instance) { @@ -1128,7 +995,6 @@ return documentbase_copy; } -#endif // plugin_in_pipe_callback is called when data is available on the // input pipe, or when the appletviewer crashes or is killed. It may @@ -1198,10 +1064,6 @@ gchar* proxy_info; -#if MOZILLA_VERSION_COLLAPSED < 1090100 - proxy = (gchar*) g_malloc(sizeof(char)*2048); -#endif - proxy_info = g_strconcat ("plugin PluginProxyInfo reference ", parts[3], " ", NULL); if (get_proxy_info(decoded_url, &proxy, &len) == NPERR_NO_ERROR) { @@ -1216,8 +1078,8 @@ g_free(proxy_info); proxy_info = NULL; - g_free(proxy); - proxy = NULL; + g_free(proxy); + proxy = NULL; } else if (g_str_has_prefix(parts[1], "PluginCookieInfo")) { @@ -1369,76 +1231,6 @@ { return NPERR_GENERIC_ERROR; } -#if MOZILLA_VERSION_COLLAPSED < 1090100 - nsresult rv; - - // Initialize service variables - nsCOMPtr proxy_svc = do_GetService("@mozilla.org/network/protocol-proxy-service;1", &rv); - - if (!proxy_svc) { - printf("Cannot initialize proxy service\n"); - return NPERR_GENERIC_ERROR; - } - - nsCOMPtr io_svc = do_GetService("@mozilla.org/network/io-service;1", &rv); - - if (NS_FAILED(rv) || !io_svc) { - printf("Cannot initialize io service\n"); - return NPERR_GENERIC_ERROR; - } - - // uri which needs to be accessed - nsCOMPtr uri; - io_svc->NewURI(nsCString(siteAddr), NULL, NULL, getter_AddRefs(uri)); - - // find the proxy address if any - nsCOMPtr info; - proxy_svc->Resolve(uri, 0, getter_AddRefs(info)); - - // if there is no proxy found, return immediately - if (!info) { - PLUGIN_DEBUG("%s does not need a proxy\n", siteAddr); - return NPERR_GENERIC_ERROR; - } - - // if proxy info is available, extract it - nsCString phost; - PRInt32 pport; - nsCString ptype; - - info->GetHost(phost); - info->GetPort(&pport); - info->GetType(ptype); - - // resolve the proxy address to an IP - nsCOMPtr dns_svc = do_GetService("@mozilla.org/network/dns-service;1", &rv); - - if (!dns_svc) { - printf("Cannot initialize DNS service\n"); - return NPERR_GENERIC_ERROR; - } - - nsCOMPtr record; - dns_svc->Resolve(phost, 0U, getter_AddRefs(record)); - - // TODO: Add support for multiple ips - nsDependentCString ipAddr; - record->GetNextAddrAsString(ipAddr); - - if (!strcmp(ptype.get(), "http")) - { - snprintf(*proxy, sizeof(char)*1024, "%s %s:%d", "PROXY", ipAddr.get(), pport); - } else - { - snprintf(*proxy, sizeof(char)*1024, "%s %s:%d", "SOCKS", ipAddr.get(), pport); - } - - *len = strlen(*proxy); - - PLUGIN_DEBUG("Proxy info for %s: %s\n", siteAddr, *proxy); - -#else - if (browser_functions.getvalueforurl) { @@ -1449,7 +1241,6 @@ { return NPERR_GENERIC_ERROR; } -#endif return NPERR_NO_ERROR; } @@ -2012,11 +1803,7 @@ static bool initialize_browser_functions(const NPNetscapeFuncs* browserTable) { -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->pluginthreadasynccall) -#else #define NPNETSCAPEFUNCS_LAST_FIELD_USED (browserTable->setvalueforurl) -#endif //Determine the size in bytes, as a difference of the address past the last used field //And the browser table address @@ -2058,20 +1845,6 @@ pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR; pluginTable->size = sizeof (NPPluginFuncs); - -#if MOZILLA_VERSION_COLLAPSED < 1090100 - pluginTable->newp = NewNPP_NewProc (ITNP_New); - pluginTable->destroy = NewNPP_DestroyProc (ITNP_Destroy); - pluginTable->setwindow = NewNPP_SetWindowProc (ITNP_SetWindow); - pluginTable->newstream = NewNPP_NewStreamProc (ITNP_NewStream); - pluginTable->destroystream = NewNPP_DestroyStreamProc (ITNP_DestroyStream); - pluginTable->asfile = NewNPP_StreamAsFileProc (ITNP_StreamAsFile); - pluginTable->writeready = NewNPP_WriteReadyProc (ITNP_WriteReady); - pluginTable->write = NewNPP_WriteProc (ITNP_Write); - pluginTable->print = NewNPP_PrintProc (ITNP_Print); - pluginTable->urlnotify = NewNPP_URLNotifyProc (ITNP_URLNotify); - pluginTable->getvalue = NewNPP_GetValueProc (ITNP_GetValue); -#else pluginTable->newp = NPP_NewProcPtr (ITNP_New); pluginTable->destroy = NPP_DestroyProcPtr (ITNP_Destroy); pluginTable->setwindow = NPP_SetWindowProcPtr (ITNP_SetWindow); @@ -2083,7 +1856,6 @@ pluginTable->print = NPP_PrintProcPtr (ITNP_Print); pluginTable->urlnotify = NPP_URLNotifyProcPtr (ITNP_URLNotify); pluginTable->getvalue = NPP_GetValueProcPtr (ITNP_GetValue); -#endif return true; } diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaNPPlugin.h --- a/plugin/icedteanp/IcedTeaNPPlugin.h Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaNPPlugin.h Thu Apr 11 15:37:32 2013 -0400 @@ -39,13 +39,9 @@ #ifndef __ICEDTEANPPLUGIN_H__ #define __ICEDTEANPPLUGIN_H__ -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#include -#else #include #include #include -#endif // GLib includes. #include diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Thu Apr 11 15:37:32 2013 -0400 @@ -838,17 +838,10 @@ window_ptr = (NPObject*) call_data->at(1); script_str = (std::string*) call_data->at(2); -#if MOZILLA_VERSION_COLLAPSED < 1090200 - script.utf8characters = script_str->c_str(); - script.utf8length = script_str->size(); - - 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_str->c_str()); -#endif ((AsyncCallThreadData*) data)->call_successful = browser_functions.evaluate(instance, window_ptr, &script, eval_variant); IcedTeaPluginUtilities::printNPVariant(*eval_variant); diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaPluginRequestProcessor.h --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.h Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.h Thu Apr 11 15:37:32 2013 -0400 @@ -46,13 +46,7 @@ #include #include - -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#include -#else -#include #include -#endif #include "IcedTeaPluginUtils.h" #include "IcedTeaJavaRequestProcessor.h" diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Apr 11 15:37:32 2013 -0400 @@ -920,15 +920,9 @@ std::string IcedTeaPluginUtilities::NPVariantAsString(NPVariant variant) { -#if MOZILLA_VERSION_COLLAPSED < 1090200 - return std::string( - NPVARIANT_TO_STRING(variant).utf8characters, - NPVARIANT_TO_STRING(variant).utf8length); -#else return std::string( NPVARIANT_TO_STRING(variant).UTF8Characters, NPVARIANT_TO_STRING(variant).UTF8Length); -#endif } /** @@ -949,11 +943,7 @@ NPVariant IcedTeaPluginUtilities::NPVariantStringCopy(const std::string& result) { NPString npstr = NPStringCopy(result); NPVariant npvar; -#if MOZILLA_VERSION_COLLAPSED < 1090200 - STRINGN_TO_NPVARIANT(npstr.utf8characters, npstr.utf8length, npvar); -#else STRINGN_TO_NPVARIANT(npstr.UTF8Characters, npstr.UTF8Length, npvar); -#endif return npvar; } diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaPluginUtils.h --- a/plugin/icedteanp/IcedTeaPluginUtils.h Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaPluginUtils.h Thu Apr 11 15:37:32 2013 -0400 @@ -57,13 +57,7 @@ #include #include - -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#include -#else -#include #include -#endif #define PLUGIN_DEBUG(...) \ do \ diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaRunnable.h --- a/plugin/icedteanp/IcedTeaRunnable.h Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaRunnable.h Thu Apr 11 15:37:32 2013 -0400 @@ -45,11 +45,6 @@ #include #include -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#include -#include -#endif - /* * This struct holds the result from the main-thread dispatched method */ diff -r a94a9a400c5d -r 50863f01bf84 plugin/icedteanp/IcedTeaScriptablePluginObject.h --- a/plugin/icedteanp/IcedTeaScriptablePluginObject.h Thu Apr 11 10:02:11 2013 -0400 +++ b/plugin/icedteanp/IcedTeaScriptablePluginObject.h Thu Apr 11 15:37:32 2013 -0400 @@ -39,12 +39,8 @@ #ifndef __ICEDTEASCRIPTABLEPLUGINOBJECT_H_ #define __ICEDTEASCRIPTABLEPLUGINOBJECT_H_ -#if MOZILLA_VERSION_COLLAPSED < 1090100 -#include "npupp.h" -#else #include #include -#endif #include "IcedTeaJavaRequestProcessor.h" #include "IcedTeaNPPlugin.h" From adomurad at redhat.com Thu Apr 11 13:08:21 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 11 Apr 2013 16:08:21 -0400 Subject: [rfc][icedtea-web] dialogue for set jre dir In-Reply-To: <51629025.6050809@redhat.com> References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com> <514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com> <515C2CAF.1010408@redhat.com> <515D5372.1070204@redhat.com> <515EEFED.1080000@redhat.com> <51629025.6050809@redhat.com> Message-ID: <51671835.1010100@redhat.com> [..snip..] > rather resend if you can recheck...I will pusl later evening today Wooops, sorry for delayed review. > Thanx for review > J. > + if (r.intValue() != 0) { > + validationResult += "" + > Translator.R("CPJVMnoSuccess") + ""; > + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { > + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; > + } > + return new JvmValidationResult(validationResult, latestOne); > + } > + if (processErrorStream.contains("openjdk") || > processStdOutStream.contains("openjdk")) { > + validationResult += "" + > Translator.R("CPJVMopenJdkFound") + ""; [nit] I'd like a color="green". This green hurts the eyes. > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr > 04 11:21:04 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Apr > 08 11:20:04 2013 +0200 > @@ -310,6 +310,29 @@ > CPDebuggingDescription=Enable options here to help with debugging > CPDesktopIntegrationDeSet JVMscription=Set whether or not to allow > creation of desktop shortcut. > CPJVMPluginArguments= arguments for plugin. > +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK > +CPJVMitwExecValidation=Validate JVM for icedtea-web > +CPJVMPluginSelectExec=Select JVM for icedtea-web > +CPJVMnone=No validation result for > +CPJVMvalidated=Validation result for > +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used. > +CPJVMnotLaunched=Error, process was not launched, see console output > for more info. > +CPJVMnoSuccess=Error, process have not ended successfully, see output > for details, but your java is not set correctly. > +CPJVMopenJdkFound=Excellent, OpenJDK detected > +CPJVMoracleFound=Great, Oracle java detected > +CPJVMibmFound=Good, IBM java detected > +CPJVMgijFound=Warning, gij detected > +CPJVMstrangeProcess=Your path had an executable process, but it was > not recognized. Verify the Java version in the console output. > +CPJVMnotDir=Error, The path you chose is not a directory. > +CPJVMisDir=Ok, the path you chose is a directory. > +CPJVMnoJava=Error, the directory you chose does not contain bin/java. > +CPJVMjava=Ok, the directory you chose contains bin/java. > +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar > +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar. > +CPJVMPluginAllowTTValidation=Allow type-time validation > +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) > with following error message: > +CPJVMNotokMessage2=You can see this message because of
* > Some validation have not passed
* Non-OpenJDK is > detected
With invalid JDK IcedTea-Web will probably not > able to start.
You will have to modify or remove {0} > property in your configuration file {1}.
You should try to > search for OpenJDK in your system or be sure you know what you are doing. [nit] You can see this message because of -> You might be seeing this message because: Although I'd prefer just a different message for when OpenJDK isn't located but everything else is OK. [nit] s/Some validation have not passed/Some validation has not been passed/ [nit] IcedTea-Web will probably not s/able/be able/ to start In this dialogue, No/Cancel still do the same thing. I'd prefer two buttons or possibly No reverting to default (eg blank). Otherwise code looks good. Everything looks to be working, great work. Even javaws with Oracle java :-) Please push after any cosmetic changes you see fit. Happy hacking, -Adam From adomurad at redhat.com Thu Apr 11 13:53:44 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 11 Apr 2013 16:53:44 -0400 Subject: [rfc][icedtea-web] help for both itw-settings and dialogue of extended applets security In-Reply-To: <51629613.9020307@redhat.com> References: <51629613.9020307@redhat.com> Message-ID: <516722D8.90308@redhat.com> On 04/08/2013 06:04 AM, Jiri Vanek wrote: > This is adding pretty long help to ITW settings and to click-and-play > dialogue. Used is interactive (inside-linked) jeditorpane with some > more links..Well the help appeared to be quite long.... > Text itself was revised by local documentarists so should be ok both > grammatically and stylistically. Code itself is pretty simple though... > > > J. Thanks for doing this! Documentation is always welcome. General comments: [bug] There is some odd spacing: http://i.imgur.com/K52kwem.png (just after 'every-time') [nit] The user probably doesn't care about A,Y,y,n implementation details (I know I don't think about them when using the panel :-) [nit] The help button in Extended Applet Security panel is a just a bit too large. > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java > --- > a/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java > Thu Apr 04 11:21:04 2013 +0200 > +++ > b/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java > Mon Apr 08 12:00:45 2013 +0200 > @@ -54,6 +54,7 @@ > import java.util.regex.Pattern; > import javax.swing.DefaultCellEditor; > import javax.swing.JComboBox; > +import javax.swing.JDialog; > import javax.swing.JFrame; > import javax.swing.JOptionPane; > import javax.swing.JPanel; > @@ -76,9 +77,11 @@ > import net.sourceforge.jnlp.runtime.Translator; > import > net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityLevel; > import > net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; > +import > net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp; > import > net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletActionEntry; > import net.sourceforge.jnlp.security.appletextendedsecurity.UrlRegEx; > import > net.sourceforge.jnlp.security.appletextendedsecurity.impl.UnsignedAppletActionStorageExtendedImpl; > +import net.sourceforge.jnlp.util.ScreenFinder; > > public class UnsignedAppletsTrustingListPanel extends > javax.swing.JPanel { > > @@ -681,6 +684,9 @@ > } > > private void helpButtonActionPerformed(java.awt.event.ActionEvent > evt) { > + JDialog d = new ExtendedAppletSecurityHelp(null, false); > + ScreenFinder.centerWindowsToCurrentScreen(d); > + d.setVisible(true); > } > > private void setButtons(boolean b) { > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr > 04 11:21:04 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Apr > 08 12:00:45 2013 +0200 > @@ -544,3 +544,148 @@ > APPEXTSECguiPanelShowOnlyPermanentN=Show only forbidden permanent records > APPEXTSECguiPanelShowOnlyTemporalY=Show previously allowed applets > records > APPEXTSECguiPanelShowOnlyTemporalN=Show previously denied applets records > +APPEXTSEChelpHomeDialogue=Dialogue > +APPEXTSEChelp= \ > +

Help for Extended applet security - itw-settings, files and > structures, dialogue

\ > +

Foreword

\ [nit] We can do without this header. > +

\ > +Extended applet security is an enhancement, which allows you to > enable all Java applets, disable or enable some sets of unsigned > applets, disable all unsigned applets or disable all applets. \ This presents it too much as a new feature, which does not make much sense in the long term. Here's my take at introducing why this exists: Extended Applet Security refers to security features for unsigned applets. Traditionally, only signed applets required user confirmation and unsigned applets ran automatically. This is represented by the 'low security' setting. Unsigned applets must be allowed or disallowed individually on 'high security' (the default), and additionally do not run at all on 'very high security'. In theory, unsigned applets can safely run automatically. In practice, however, any vulnerability in the Java security sandbox will prevent this from being true. > +

\ > +

\ > +To do so it uses the Security Level main settings switch > rules in the tables of Custom definitions and Global > definitions
\ > +You can read much more about development of (and help us to improve!) > this feature at href="http://icedtea.classpath.org/wiki/Extended_Applets_Security">dedicated > IcedTea-Web page \ > +

\ > +

Security Level

\ > +

\ > +Its a main switch for "extended applet security". Its value is > commonly stored in usrs_home/.icedtea/deployment.properties, but can > be enforced via global settings in > /etc/.java/deployment/deployment.properties or > JAVA_HOME/lib/deployment.properties under the key > deployment.security.level
\ > +

  • Disable running of all Java applets - stored as > DENY_AL - No applet will be run
    \ DENY_AL -> DENY_ALL > +
    \ > +No applet will be allowed to run. However the Java virtual machine > will always be executed (and an error screen with reason appear > instead of applets). To disable Java completely you can uninstall > IcedTea-Web or disable it in your browser (if supported). The tables > with records are of course ignored. \ > +
    \ > +
  • Very High Security - stored as DENY_UNSIGNED - No > unsigned applets will be run
    \ > +
    \ > +No applet unsigned will be allowed to run (and an error screen > with reason will appear instead of such applets). The tables with > records are of course again ignored. \ > +
    \ > +
  • High Security - stored as ASK_UNSIGNED - User will > be prompted for each unsigned applet
    \ > +
    \ > +All unsigned applets will be tested against the tables below > if they should be allowed or forbidden to run. If they are not matched > in the table then the user is prompted and the decision is stored in > tables below. If the user denies the applet, an > error screen with reason appears and the applet does not run. If the > user allows applets to run, the user can choose to save this decision > and whether to allow just one applet or a whole group of applets (see > Dialogue paragraph below). \ > +
    This is default behavior. \ > +
    \ > +
  • Low Security - stored as ALLOW_UNSIGNED - All, > even unsigned, applets will be run
    \ > +
    \ > +All applets even unsigned will be allowed to run. User will > not be warned and the tables with records are of course again ignored. \ > +
    \ > +You need to press ok or apply button to make the > changes take effect. \ > +

    \ > + \ > + \ > +

    Table with recorded actions

    \ > +

    \ > +

    Custom x Global table

    \ > +After each action in High Security dialogue the record is > added to, or updated in, the table or configuration file. Commonly in > users file - home/.icedtea/.appletTrustSettings - "Custom definition" > panel.
    \ > +But superuser can specify default behavior in /etc/.java/deployment/ > .appletTrustSettings - "Global definition" panel.
    \ > +

    "Syntax"

    \ > +
  • Action - Desired behavior when applet is matched
    \ > +
    \ > +
  • Always trust this applet - This unsigned applet will > always be run in High Security Security Level. It is stored as > A in .appletTrustSettings
    \ > +
  • Never trust this applet - This unsigned applet will never > be run in High Security Security Level. It is stored as N in > .appletTrustSettings
    \ > +
  • Visited and allowed - When the user is asked about this > applet again, a note that this applet was already trusted in past will > be displayed. It is stored as y in .appletTrustSettings
    \ > +
  • Visited and denied - When user will be asked about this > applet again, he will see information that this applet was already > denied in past. It is stored as n in .appletTrustSettings
    \ > +
  • \ > +
  • Date - date of last action on this item (read only > item)
    \ > +
  • Document base - is the page from which the applet was > requested. It is actually a regular expression to match a specific > URL. See about regular expressions and their usage href="#regexes">lower
    \ > +
  • Code base - is the URL where an applets code came from. > It is actually a regular expression to match a specific URL. See about > regular expressions and their usage lower
    \ > +
  • Archives - coma separated list of archives with applet's > code. Can be empty if source code are just classes or group of applets > is allowed
    \ > +
    \ > +When you change a value in the table, its effect is immediate. \ > +

    Controls of tables

    \ > +

    \ > +

  • Delete - deletes items as specified in combo box on > side
    \ > +
    \ > +
  • selected - removes all selected items. Key Del > does the same. Default behavior. Multiple selections allowed. > Selection can be inverted by button even more on side
    \ > +
  • all allowed (A) - removes all permanently trusted > records
    \ > +
  • all forbidden (N) - removes all permanently forbidden > records
    \ > +
  • all approved (y) - removes all previously (temporarily) > trusted records
    \ > +
  • all rejected (n) - removes all previously (temporarily) > denied records
    \ > +
  • all - will clear the table
    \ > +
    \ > +Ask me before action - switch to ask before each deletion (in > bulk) or not to ask. Asking dialogue can be pretty long, so if you do > not see the buttons, just press Esc \ > +
  • \ > +
  • Show full regular expressions - Disable or Enable > filtering of quotation marks \Q\E in code/document base columns. About > regular expressions see more lower
    \ > +
    \ > +
  • Filtering in table(s)
    \ > +
    \ > +
  • Show only permanent records - Shows only permanently > allowed (A) or denied (N) records. Default behavior
    \ > +
  • Show only temporarily decided records - Shows only once > allowed (y) or denied (n) informative records.
    \ > +
  • Show only permanently allowed records - Shows only > permanently allowed (A) records
    \ > +
  • Show only permanently denied records - Shows only > permanently denied (N) records
    \ > +
  • Show only temporarily allowed records - Shows only once > allowed (y) informative records.
    \ > +
  • Show only temporarily denied records - Shows only once > denied (n) informative records.
    \ > +
  • \ > +

    \ > +
  • Add new row - will add new, exemplary filled, row with > current date and empty archives
    \ > +
  • Validate table - will test if table can save, load, and > if each value is valid:
    \ > +
    \ > +
  • Action - is one of A,N,y,n
    \ > +
  • Date - is valid date
    \ > +
  • Code base and document base - are valid href="#regexes">regular expressions or empty
    \ > +
  • Archives - coma separated list of archives or empty
    \ > +
  • \ > +
  • Test url - In two dialogues (in two steps) will let you > enter document base and codebase, and then try to match them against > all records. All matching items are returned! Last values are > remembered> \ > +
  • Move row down/up
    \ > +
    \ > +Order of rows is important. First matched result is returned > (permanent have priority). So you can prioritize your matches using > these buttons.
    \ > +For example, if you \Qhttp://blogs.com/\E.* regular expression to > allow all applets on http://blogs.com, then it must be AFTER your > \Qhttp://blogs.com/evilJohn\E.* regular expression forbidding all > applets from blog of hacker evilJohn. \ > +
    \ > +

    \ > +

    \ > +

    Dialogue

    \ > +If High Security is set, and a new > unsigned applet is hit then the dialogue is shown asking you to allow > it or deny it. You can also choose if you want to allow or deny > this applet every-time (A/N) you encounter it or for just > one run (y,n).
    \ > +You can also select to trust or deny (again temporally or > permanently) all the applets from same, exact, > codebase. If you are visiting one page, which has various applets > on various documents then this is a choice for you.
    \ s/temporally/temporarily/ > +If you decide not to allow remembering your decision, then just a > temporary record is made. If you revisit a page, a small green or red > label will inform you about your last decision.
    \ > +Once you select remember your decision, the dialog will > never appear again. But you can edit your decision in > itw-settings application table (packed > with IcedTea-Web). If you change your decision to temporary one (n,y) > or delete its row, the dialogue will appear again. Of course you can > switch also from Always to Never or vice versa. \ > +
    \ > +The dialogue always mentions the page on which an applet is > displayed, and the URL from which it comes. There is also a hint, if > you have ever visited this applet saying if you have allowed or > rejected it in the past
    \ > +
    \ > +

    Controls

    \ > +
    \ > +
  • Remember this option - If set, then dialogue will never > be shown for this applet or page again. \ > +
    \ > +
  • For applet - Exact applet will be allowed or denied \ > +
  • For site - All applets from this place will be allowed or > denied \ > +
  • \ > +
  • Proceed - Applets, as selected above will be allowed \ > +
  • Cancel - Applets, as selected above will be forbidden \ > +
  • \ > +Be aware to "proceed" + "Remember this option" + "For site" on pages > you do not know! It can make you vulnerable! \ > +
    \ > +

    \ > +

    \ > +

    Regular expressions

    \ > +IcedTea-Web extended applet security - uses a powerful matching > engine to match exact (sets of) applets. Base stone is > Quotation of URL \Q\E and wildchars llike .* or .? or > more.
    \ > +This was designed to suits the need to block or allow exact pages. > The best is to show some examples:
    \ > +N 12.12.2012 .* \Qhttp://blogs.com/evilJohn\E.*
    \ > +N 12.12.2012 \Qhttp://blogs.com/goodJohn/evilApplet.html\E.* > \Qhttp://blogs.com/goodJohn/\E goodJohnsArchive.jar
    \ > +A 12.12.2012 \Qhttp://blogs.com/\E.* \Qhttp://blogs.com/\E.*
    \ > +N 12.12.2012 .* \Qhttp://adds.com\E.*
    \ > +Y 12.12.2012 .* \Qhttp://www.walter-fendt.de/ph14_jar/\E
    \ > +
    \ > +So this table, created 12.12.2012:
    \ > +
  • Forbid all stuff which have some code on > http://blogs.com/evilJohn pages
    \ > +
  • Forbidding also one exact applet from http://blogs.com/goodJohn/ > with archive goodJohnsArchive.jar
    \ > +
  • Allowing all (other) applets from http://blogs.com/ but only > when displayed also on http://blogs.com/
    \ > +
  • Forbidding all applets with code saved on http://adds.com > (except on http://blogs.com/ - to have forbidden http://adds.com also > on http://blogs.com/, this (http://adds.com) record must be above > blogs record)
    \ > +
  • And finally allowing all nice physical applets on walter-fendt's > pages
    \ > +
    \ > +Note - the date saved in .appletTrustSettings has a not so nice > format, but I left this for now...
    \ > +
    \ > +All information about full regular expression syntax can be found on > href="http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html">http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html > \ > +

    \ > +

    Conclusion

    \ > +

    \ > +Stay tuned to our homepage at href="http://icedtea.classpath.org/wiki/IcedTea-Web">http://icedtea.classpath.org/wiki/IcedTea-Web!
    > \ > +If you encounter any bug, feel free to file it in our href="http://icedtea.classpath.org/bugzilla/">bugzilla ... > According to href="http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs">http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs
    > \ > +
    \ > +Safe browsing from your IcedTea-Web team... \ > +

    \ > + \ > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java > --- > a/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java > Thu Apr 04 11:21:04 2013 +0200 > +++ > b/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java > Mon Apr 08 12:00:45 2013 +0200 > @@ -51,6 +51,7 @@ > import javax.swing.ImageIcon; > import javax.swing.JButton; > import javax.swing.JCheckBox; > +import javax.swing.JDialog; > import javax.swing.JLabel; > import javax.swing.JPanel; > import javax.swing.SwingConstants; > @@ -58,7 +59,9 @@ > import net.sourceforge.jnlp.JNLPFile; > import net.sourceforge.jnlp.PluginBridge; > import > net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; > +import > net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp; > import > net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; > +import net.sourceforge.jnlp.util.ScreenFinder; > > public class UnsignedAppletTrustWarningPanel extends JPanel { > > @@ -78,6 +81,7 @@ > > private JButton allowButton; > private JButton rejectButton; > + private JButton helpButton; > private JCheckBox permanencyCheckBox; > > private PluginBridge file; > @@ -174,12 +178,23 @@ > > allowButton = new JButton(R("ButProceed")); > rejectButton = new JButton(R("ButCancel")); > + helpButton = new JButton(R("APPEXTSECguiPanelHelpButton")); > > allowButton.addActionListener(chosenActionSetter(true)); > rejectButton.addActionListener(chosenActionSetter(false)); > > + helpButton.addActionListener(new ActionListener() { > + > + public void actionPerformed(ActionEvent e) { > + JDialog d = new ExtendedAppletSecurityHelp(null, > false,"dialogue"); > + ScreenFinder.centerWindowsToCurrentScreen(d); > + d.setVisible(true); > + } > + }); > + > buttonPanel.add(allowButton); > buttonPanel.add(rejectButton); > + buttonPanel.add(helpButton); > > buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, > 10, 10)); > > diff -r fbb6b3605538 > netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ > b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java > Mon Apr 08 12:00:45 2013 +0200 > @@ -0,0 +1,190 @@ > +/* Copyright (C) 2013 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.security.appletextendedsecurity; > + > + > +import java.awt.Dimension; > +import java.io.IOException; > +import javax.swing.event.HyperlinkEvent; > +import javax.swing.event.HyperlinkListener; > +import net.sourceforge.jnlp.runtime.Translator; > + > + > +public class ExtendedAppletSecurityHelp extends javax.swing.JDialog > implements HyperlinkListener { > + > + > + > + [nit] excess whitespace > + public ExtendedAppletSecurityHelp(java.awt.Frame parent, boolean > modal, String reference) { > + this(parent, modal); > + mainHtmlPane.scrollToReference(reference); > + > + } > + public ExtendedAppletSecurityHelp(java.awt.Frame parent, boolean > modal) { > + super(parent, modal); > + Dimension d = new Dimension(600, 400); > + setPreferredSize(d); > + setSize(d); > + initComponents(); > + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); > + mainHtmlPane.addHyperlinkListener(ExtendedAppletSecurityHelp.this); > + mainHtmlPane.setCaretPosition(1); > + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); > + } > + > + @Override > + public void hyperlinkUpdate(HyperlinkEvent event) { > + if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { > + try { > + if (event.getURL() == null){ > + String s = event.getDescription().replace("#", ""); > + mainHtmlPane.scrollToReference(s); > + }else{ > + mainHtmlPane.setPage(event.getURL()); > + } > + } catch (IOException ioe) { > + ioe.printStackTrace(); > + } > + } > + } > + > + > + private void initComponents() { > + > + jScrollPane1 = new javax.swing.JScrollPane(); > + mainHtmlPane = new javax.swing.JEditorPane(); > + jPanel4 = new javax.swing.JPanel(); > + jSeparator1 = new javax.swing.JSeparator(); > + jPanel1 = new javax.swing.JPanel(); > + jPanel2 = new javax.swing.JPanel(); > + homeButton = new javax.swing.JButton(); > + homeAndDialogueButton = new javax.swing.JButton(); > + jPanel3 = new javax.swing.JPanel(); > + closeButton = new javax.swing.JButton(); > + getContentPane().setLayout(new > javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS)); > + mainHtmlPane.setContentType("text/html"); > + mainHtmlPane.setEditable(false); > + jScrollPane1.setViewportView(mainHtmlPane); > + getContentPane().add(jScrollPane1); > + javax.swing.GroupLayout jPanel4Layout = new > javax.swing.GroupLayout(jPanel4); > + jPanel4.setLayout(jPanel4Layout); > + jPanel4Layout.setHorizontalGroup( > + > jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) > + .addGap(0, 485, Short.MAX_VALUE) > + > .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) > + .addGroup(jPanel4Layout.createSequentialGroup() > + .addGap(0, 217, Short.MAX_VALUE) > + .addComponent(jSeparator1, > javax.swing.GroupLayout.PREFERRED_SIZE, 50, > javax.swing.GroupLayout.PREFERRED_SIZE) > + .addGap(0, 218, Short.MAX_VALUE))) > + ); > + jPanel4Layout.setVerticalGroup( > + > jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) > + .addGap(0, 10, Short.MAX_VALUE) > + > .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) > + .addGroup(jPanel4Layout.createSequentialGroup() > + .addGap(0, 0, Short.MAX_VALUE) > + .addComponent(jSeparator1, > javax.swing.GroupLayout.PREFERRED_SIZE, 10, > javax.swing.GroupLayout.PREFERRED_SIZE) > + .addGap(0, 0, Short.MAX_VALUE))) > + ); > + > + getContentPane().add(jPanel4); > + jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, > javax.swing.BoxLayout.LINE_AXIS)); > + jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, > javax.swing.BoxLayout.LINE_AXIS)); > + homeButton.setText(Translator.R("SPLASHHome")); > + homeButton.addActionListener(new > java.awt.event.ActionListener() { > + public void actionPerformed(java.awt.event.ActionEvent evt) { > + jButton2ActionPerformed(evt); > + } > + }); > + jPanel2.add(homeButton); > + > homeAndDialogueButton.setText(Translator.R("APPEXTSEChelpHomeDialogue")); > + homeAndDialogueButton.addActionListener(new > java.awt.event.ActionListener() { > + public void actionPerformed(java.awt.event.ActionEvent evt) { > + jButton1ActionPerformed(evt); > + } > + }); > + closeButton.addActionListener(new > java.awt.event.ActionListener() { > + public void actionPerformed(java.awt.event.ActionEvent evt) { > + ExtendedAppletSecurityHelp.this.dispose(); > + } > + }); > + jPanel2.add(homeAndDialogueButton); > + jPanel1.add(jPanel2); > + closeButton.setText(Translator.R("ButClose")); > + jPanel3.add(closeButton); > + jPanel1.add(jPanel3); > + getContentPane().add(jPanel1); > + > + pack(); > + } > + > + private void jButton2ActionPerformed(java.awt.event.ActionEvent > evt) { > + // TODO add your handling code here: Please remove any TODO's > + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); > + mainHtmlPane.setCaretPosition(1); > + } > + > + private void jButton1ActionPerformed(java.awt.event.ActionEvent > evt) { > + // TODO add your handling code here: > + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); > + mainHtmlPane.scrollToReference("dialogue"); > + } > + > + > + public static void main(String args[]) { > + java.awt.EventQueue.invokeLater(new Runnable() { > + > + public void run() { > + ExtendedAppletSecurityHelp dialog = new > ExtendedAppletSecurityHelp(null, false); > + dialog.setVisible(true); > + } > + }); > + } > + > + > + private javax.swing.JButton homeAndDialogueButton; > + private javax.swing.JButton homeButton; > + private javax.swing.JButton closeButton; > + private javax.swing.JEditorPane mainHtmlPane; > + private javax.swing.JPanel jPanel1; > + private javax.swing.JPanel jPanel2; > + private javax.swing.JPanel jPanel3; > + private javax.swing.JPanel jPanel4; > + private javax.swing.JScrollPane jScrollPane1; > + private javax.swing.JSeparator jSeparator1; Please give these variables proper names, and don't use full package names. The code could be a little cleaned up overall to not look so auto-generated but its OK. > + > +} Thanks again for the documentation effort! Happy hacking, -Adam From bugzilla-daemon at icedtea.classpath.org Thu Apr 11 16:40:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Apr 2013 23:40:29 +0000 Subject: [Bug 1392] New: Minecraft Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1392 Bug ID: 1392 Summary: Minecraft Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: guihgo100milha at gmail.com CC: unassigned at icedtea.classpath.org 11.04 22:13:00 [Multicraft] Server ran command Save World 11.04 22:04:08 [Disconnect] User krisnaps?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User kevin1234?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Alpha005?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Pablo has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ?2RAPHAELLUKAS?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User naruto1?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Mr_Hedra?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User TheOudeis?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Bakka?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User jameli?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User nesl has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User critcapped?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ElverTP?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User maniacodamorte?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User xXLLipiNXx?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User rafael366?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User TheAntonito has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User exloz has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User blueflareeyes?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User JemieFoxx?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User EnderGame_BR?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User comedor has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ?9maycomcs?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Uzumakil?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User XxVorteXxX?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User inthemax has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User gfatman has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Arianna77?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User M6ster66?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Ozzex?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User deigo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User leojuniorr1?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User comedor?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User MaxprameGames?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Filet?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User RuffyOmeg?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User And123?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Oliver_Gamers?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Pablo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User kabesah has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User TheAntonito?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Medieval?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User roger912?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User darkextremo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Allan_12?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User RuffyOmeg has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User kabesah?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User 1mix?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User critcapped has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User lucade?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User pablo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Mr_FrosKill?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ?5Guihgo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User exloz?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User iAggressive?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User vitorgame?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User icc?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User lukas1179?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Kratos28?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User AS5545?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Ozzex has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User kubson has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Brunno_Boss15?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User kubson?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User king12?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Gabriel_ops?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User giovanni74?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User 1mix has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User wigleg?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User And123 has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User helbo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User helbo has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Alpha005 has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User gfatman?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User raphinharo?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User gibimbas?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User arnuzas?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User gui has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User inthemax?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Hr8?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User DarkKnight has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User DoouriTooS has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User nesl?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Gabriel_ops has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Luanabp?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User PcDark?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User MaxprameGames has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Extermition?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User llferll?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ninteressa has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User darkextremo has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User yuri_gamer?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Xkrules?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User maycomcs has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User sony007?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Heron?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User ninteressa?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Disconnect] User Zeckiel?r has disconnected, reason: Server shutting down 11.04 22:04:08 [Multicraft] Server stopped 11.04 22:04:06 [Multicraft] Error writing to server: [Errno 32] Broken pipe 11.04 22:04:06 [Multicraft] Error writing to server: [Errno 32] Broken pipe 11.04 22:04:06 [Multicraft] Stopping server! 11.04 22:04:06 [Multicraft] Server shut down 11.04 22:03:57 [Server] INFO # 11.04 22:03:57 [Server] INFO # http://icedtea.classpath.org/bugzilla 11.04 22:03:57 [Server] INFO # instructions on how to reproduce the bug and visit: 11.04 22:03:57 [Server] INFO # If you would like to submit a bug report, please include 11.04 22:03:57 [Server] INFO # 11.04 22:03:57 [Server] INFO # /hs_err_pid23511.log 11.04 22:03:57 [Server] INFO # An error report file with more information is saved as: 11.04 22:03:57 [Server] INFO # 11.04 22:03:57 [Server] INFO # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again 11.04 22:03:57 [Server] INFO # 11.04 22:03:57 [Server] INFO # V [libjvm.so+0x67d743] JVM_RaiseSignal+0xdcdd3 11.04 22:03:57 [Server] INFO # Problematic frame: 11.04 22:03:57 [Server] INFO # Java VM: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode linux-amd64 compressed oops) 11.04 22:03:57 [Server] INFO # JRE version: 7.0_09 11.04 22:03:57 [Server] INFO # 11.04 22:03:57 [Server] INFO # SIGSEGV (0xb) at pc=0x00007f295a3e0743, pid=23511, tid=139815306262272 ---------------------------- IP Address: 177.99.158.199 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130411/d795258e/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Apr 11 18:24:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Apr 2013 01:24:41 +0000 Subject: [Bug 1393] New: JPEG support in build is broken on non-system-libjpeg builds Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1393 Bug ID: 1393 Summary: JPEG support in build is broken on non-system-libjpeg builds Classification: Unclassified Product: IcedTea Version: 2.3.8 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: omajid at redhat.com CC: unassigned at icedtea.classpath.org Created attachment 853 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=853&action=edit A testcase that tries to write jpeg and png files A build from icedtea7-forest has broken support for reading/writing JPEG files if it was not built with system libjpeg. I built a jdk using the follows: make \ ALLOW_DOWNLOADS="true" \ ALT_BOOTDIR="$JDK_TO_BUILD_WITH" \ ANT="/usr/bin/ant" \ STATIC_CXX="false" \ FT2_CFLAGS="$(pkg-config --cflags freetype2)" \ FT2_LIBS="$(pkg-config --libs freetype2)" \ NO_DOCS="true" \ DEBUG_CLASSFILES="true" \ DEBUG_BINARIES="true" And it could not read/write JPEG files. With the attached test case, I got an exception: Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sun.imageio.plugins.jpeg.JPEGImageWriter.initWriterIDs(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V at com.sun.imageio.plugins.jpeg.JPEGImageWriter.initWriterIDs(Native Method) at com.sun.imageio.plugins.jpeg.JPEGImageWriter.(JPEGImageWriter.java:181) at com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi.createWriterInstance(JPEGImageWriterSpi.java:96) at javax.imageio.spi.ImageWriterSpi.createWriterInstance(ImageWriterSpi.java:351) at javax.imageio.ImageIO$ImageWriterIterator.next(ImageIO.java:843) at javax.imageio.ImageIO$ImageWriterIterator.next(ImageIO.java:827) at javax.imageio.ImageIO.getWriter(ImageIO.java:1596) at javax.imageio.ImageIO.write(ImageIO.java:1520) at ImageWritingTest.main(ImageWritingTest.java:30) I then tried an icedtea7-forest build with: make \ ALLOW_DOWNLOADS="true" \ ALT_BOOTDIR="$JDK_TO_BUILD_WITH" \ ANT="/usr/bin/ant" \ STATIC_CXX="false" \ USE_SYSTEM_JPEG=true \ JPEG_LIBS="-ljpeg" \ FT2_CFLAGS="$(pkg-config --cflags freetype2)" \ FT2_LIBS="$(pkg-config --libs freetype2)" \ NO_DOCS="true" \ DEBUG_CLASSFILES="true" \ DEBUG_BINARIES="true" And it works fine with reading/writing JPEGs. objdump -t libjavajpeg.so shows interesting differences between the two builds. Symbols like Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs are missing from the first build but present in the second. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130412/4b87364c/attachment.html From jvanek at redhat.com Fri Apr 12 00:17:04 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 12 Apr 2013 09:17:04 +0200 Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning decision for entire codebase In-Reply-To: <5166F35A.6090503@redhat.com> References: <515DADB2.4020807@redhat.com> <515ECC54.10002@redhat.com> <5166F35A.6090503@redhat.com> Message-ID: <5167B4F0.5010704@redhat.com> Excelent. Go on and push:) J. On 04/11/2013 07:31 PM, Adam Domurad wrote: > On 04/05/2013 09:06 AM, Jiri Vanek wrote: >> On 04/04/2013 06:43 PM, Adam Domurad wrote: >>> As discussed between Jiri and myself. This allows for the decision chosen with unsigned applet >>> confirmation to apply to an entire codebase, and not just a single applet. >>> >>> 2013-04-04 Adam Domurad >>> >>> Allow remembering applet confirmation for whole codebase. >>> * netx/net/sourceforge/jnlp/resources/Messages.properties: >>> Added SRememberAppletOnly, SRememberCodebase messages >>> * netx/net/sourceforge/jnlp/security/SecurityDialogs.java >>> (showUnsignedWarningDialog): Use UnsignedWarningAction >>> * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java >>> (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction >>> * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: >>> Introduce UnsignedWarningAction, add additional confirmation choices >>> * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: >>> Support remembering action for entire codebase. >>> >>> Happy hacking, >>> -Adam >> >> Ok. Nothing directly against this patch. Working fine and so this can go to head (after nit is >> fixed) and we will see users feedback after 1.4 will be out unless you *want* to think about it >> little bit more:) >> >> Only nit (and RFC IRC here:) - Do you think you can show both documentbase and codebase to the user? >> You have now text say "Unsigned Applet from CODEBASE wants to run...." >> I would like "Unsugned applet from page DOCUMENTBASE with code from CODEBASE wants to run..." And >> in radio button then >> >> +SRememberCodebase=For site {0} >> >> where {0} will be CODEBASE (as it is what you are allowing. >> (maybe it will need some Layout changes as codebase can grow, but you have the radiobuttons on >> separate row so it should be ok) >> >> My concerns are about codebase. Well, it is quite hidden information for user but there is mostly >> what one expects. >> My imagination runs in ways like: >> "allow just htis appelt" => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E >> \Qhttp://localhost:34556/\E JavascriptSet.jar (ou how I miss main class here...) >> "allow everything from page http://localhost:34556/JavascriptSet.html" => A 1365157531641 >> \Qhttp://localhost:34556/JavascriptSet.html\E .* >> "allow everything from domain http://localhost:34556/" => A 1365157531641 >> \Qhttp://localhost:34556\E.* .* >> allow everything from codebase http://localhost:34556/" => A 1365157531641 .* >> \Qhttp://localhost:34556/\E >> >> Both last two can have longer path "where to cut": >> http://domain.net/dir2/dir1/dir0/page.html >> Then best for me would be to allow/deny: >> http://domain.net/dir2/dir1/dir0/page.html >> http://domain.net/dir2/dir1/dir0/.* >> http://domain.net/dir2/dir1/.* >> http://domain.net/dir2/.* >> http://domain.net/.* >> And some combinations with .* and without it and so on.... >> >> >> :) But I know you do not like this. One of the reasons I wont your patch in is, that I'm not sure >> how to intelligently connect codebase and documentbase :-/ So this can be nice task for some new >> person. And less code/logic == less errors. >> >> J. >> >> ps, thank you for disagreeing with me on several topics in this issue;) > > OK, as requested. > For reference: http://i.imgur.com/mmGUaiK.png > > Changes: > 2013-XX-XX Adam Domurad > > Present more information in unsigned applet confirmation. > * netx/net/sourceforge/jnlp/resources/Messages.properties > (SRememberCodebase): Add codebase parameter. > (SUnsignedDetail): Change layout, add documentbase parameter. > * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java > (setupInfoPanel): Pass documentbase to SUnsignedDetail. > (createCheckBoxPanel): Ensure left-alignment. > (createButtonPanel): Less spacing above button. > > Happy hacking, > -Adam From jvanek at redhat.com Fri Apr 12 03:07:57 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 12 Apr 2013 12:07:57 +0200 Subject: Regression in itw from Tue Mar 26 Message-ID: <5167DCFD.1030305@redhat.com> Hi, commit changeset: 656:1c26ce1e1cb3 tag: tip user: Adam Domurad date: Tue Mar 26 14:57:33 2013 -0400 summary: Integration of unsigned applet confirmation dialogue. broke the CodeBaseClassLoaderTest.testNullFileSecurityDescApplication test The affecting hunk was @@ -596,9 +604,9 @@ JARDesc jars[] = resources.getJARs(); - if (jars == null || jars.length == 0) { + if (jars.length == 0) { - boolean allSigned = true; + boolean allSigned = (loaders.length > 1) /* has extensions */; for (int i = 1; i < loaders.length; i++) { if (!loaders[i].getSigning()) { allSigned = false; of diff -r bb971f25eb42 -r 1c26ce1e1cb3 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java and the responsible line was - boolean allSigned = true; + boolean allSigned = (loaders.length > 1) /* has extensions */; An I must say I'm hesitating with fix. Just use always true? or use (loaders.length > 0) which is actually the same. Why the change at all? J. see http://10.34.2.200/icedtea-web-dailyreport/ICWDR_1364327226/index.html for full info From jvanek at icedtea.classpath.org Fri Apr 12 04:31:29 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 12 Apr 2013 11:31:29 +0000 Subject: /hg/icedtea-web: Added dialogue to allow setting of custom JRE Message-ID: changeset e6055625cbbf in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e6055625cbbf author: Jiri Vanek date: Fri Apr 12 13:31:49 2013 +0200 Added dialogue to allow setting of custom JRE diffstat: ChangeLog | 20 + NEWS | 6 +- launcher/itweb-settings.in | 2 +- launcher/javaws.in | 2 +- netx/net/sourceforge/jnlp/config/Defaults.java | 6 + netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java | 29 +- netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java | 34 +- netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java | 236 +++++++++- netx/net/sourceforge/jnlp/resources/Messages.properties | 24 + netx/net/sourceforge/jnlp/util/FileUtils.java | 37 +- netx/net/sourceforge/jnlp/util/StreamUtils.java | 19 + 11 files changed, 400 insertions(+), 15 deletions(-) diffs (truncated from 645 to 500 lines): diff -r 50863f01bf84 -r e6055625cbbf ChangeLog --- a/ChangeLog Thu Apr 11 15:37:32 2013 -0400 +++ b/ChangeLog Fri Apr 12 13:31:49 2013 +0200 @@ -1,3 +1,23 @@ +2013-04-12 Jiri Vanek + + Added dialogue to allow setting of custom JRE + * launcher/itweb-settings.in: and + * launcher/javaws.in: check for custom jre less strict + * netx/net/sourceforge/jnlp/config/Defaults.java:made aware of + deployment.jre.dir constant + * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added\ + KEY_JRE_DIR= "deployment.jre.dir" constant, user file occurrences extracted + to USER_DEPLOYMENT_PROPERTIES_FILE. + * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java: used validation + of jdk when saving properties + * netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java: added text-field + to set JVM directory, friendly with logic and validation. + * netx/net/sourceforge/jnlp/resources/Messages.properties: added messages + to JVM selection and validation. + * netx/net/sourceforge/jnlp/util/StreamUtils.java: (readStreamAsString) + new utility method. + * NEWS: mentioned select-able JVM + 2013-04-11 Adam Domurad Remove legacy support for the old version of NPAPI. diff -r 50863f01bf84 -r e6055625cbbf NEWS --- a/NEWS Thu Apr 11 15:37:32 2013 -0400 +++ b/NEWS Fri Apr 12 13:31:49 2013 +0200 @@ -9,11 +9,13 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.4 (2012-XX-XX): -* Added cs_CZ localisation -* Added de localisation +* Added cs_CZ localization +* Added de localization * Splash screen for javaws and plugin +* Better error reporting for plugin via Error-splash-screen * All IcedTea-Web dialogues are centered to middle of active screen * Download indicator made compact for more then one jar +* User can select its own JVM via itw-settings and deploy.properties. * Security updates - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings diff -r 50863f01bf84 -r e6055625cbbf launcher/itweb-settings.in --- a/launcher/itweb-settings.in Thu Apr 11 15:37:32 2013 -0400 +++ b/launcher/itweb-settings.in Fri Apr 12 13:31:49 2013 +0200 @@ -14,7 +14,7 @@ CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" ] ; then + if [ -e "$CUSTOM_JRE" -a -e "$CUSTOM_JRE/bin/java" ] ; then JAVA=$CUSTOM_JRE/bin/java else echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA) in attempt to start. Please fix this." diff -r 50863f01bf84 -r e6055625cbbf launcher/javaws.in --- a/launcher/javaws.in Thu Apr 11 15:37:32 2013 -0400 +++ b/launcher/javaws.in Fri Apr 12 13:31:49 2013 +0200 @@ -16,7 +16,7 @@ CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"` fi; if [ "x$CUSTOM_JRE" != "x" ] ; then - if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" -a -f "$CUSTOM_JRE/lib/rt.jar" ] ; then + if [ -e "$CUSTOM_JRE" -a -e "$CUSTOM_JRE/bin/java" -a -e "$CUSTOM_JRE/lib/rt.jar" ] ; then JAVA=$CUSTOM_JRE/bin/java CP=$CUSTOM_JRE/lib/rt.jar else diff -r 50863f01bf84 -r e6055625cbbf netx/net/sourceforge/jnlp/config/Defaults.java --- a/netx/net/sourceforge/jnlp/config/Defaults.java Thu Apr 11 15:37:32 2013 -0400 +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Fri Apr 12 13:31:49 2013 +0200 @@ -391,6 +391,12 @@ DeploymentConfiguration.KEY_SECURITY_LEVEL, new SecurityValueValidator(), null + }, + //JVM executable for itw + { + DeploymentConfiguration.KEY_JRE_DIR, + null, + null } }; diff -r 50863f01bf84 -r e6055625cbbf netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Apr 11 15:37:32 2013 -0400 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Apr 12 13:31:49 2013 +0200 @@ -166,6 +166,7 @@ * JVM arguments for plugin */ public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; + public static final String KEY_JRE_DIR= "deployment.jre.dir"; public enum ConfigType { System, User @@ -178,6 +179,10 @@ private File systemPropertiesFile = null; /** The user's deployment.config file */ private File userPropertiesFile = null; + + /*default user file*/ + public static final File USER_DEPLOYMENT_PROPERTIES_FILE = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR + + File.separator + DEPLOYMENT_PROPERTIES); /** the current deployment properties */ private Map> currentConfiguration; @@ -221,8 +226,7 @@ */ public void load(boolean fixIssues) throws ConfigurationException { // make sure no state leaks if security check fails later on - File userFile = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR - + File.separator + DEPLOYMENT_PROPERTIES); + File userFile = new File(USER_DEPLOYMENT_PROPERTIES_FILE.getAbsolutePath()); SecurityManager sm = System.getSecurityManager(); if (sm != null) { @@ -415,8 +419,25 @@ return etcFile; } - File jreFile = new File(System.getProperty("java.home") + File.separator + "lib" - + File.separator + DEPLOYMENT_CONFIG); + String jrePath = null; + try { + Map> tmpProperties = parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE); + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR); + if (jreSetting != null) { + jrePath = jreSetting.getValue(); + } + } catch (Exception ex) { + ex.printStackTrace(); + } + + File jreFile; + if (jrePath != null) { + jreFile = new File(jrePath + File.separator + "lib" + + File.separator + DEPLOYMENT_CONFIG); + } else { + jreFile = new File(System.getProperty("java.home") + File.separator + "lib" + + File.separator + DEPLOYMENT_CONFIG); + } if (jreFile.isFile()) { return jreFile; } diff -r 50863f01bf84 -r e6055625cbbf netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Apr 11 15:37:32 2013 -0400 +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Apr 12 13:31:49 2013 +0200 @@ -53,6 +53,7 @@ import javax.swing.event.ListSelectionListener; import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.controlpanel.JVMPanel.JvmValidationResult; import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.security.KeyStores; import net.sourceforge.jnlp.security.viewer.CertificatePane; @@ -66,6 +67,7 @@ * */ public class ControlPanel extends JFrame { + private JVMPanel jvmPanel; /** * Class for keeping track of the panels and their associated text. @@ -157,6 +159,21 @@ topPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); return topPanel; } + + private int validateJdk() { + String s = ControlPanel.this.config.getProperty(DeploymentConfiguration.KEY_JRE_DIR); + JvmValidationResult validationResult = JVMPanel.validateJvm(s); + if (validationResult.id == JvmValidationResult.STATE.NOT_DIR + || validationResult.id == JvmValidationResult.STATE.NOT_VALID_DIR + || validationResult.id == JvmValidationResult.STATE.NOT_VALID_JDK) { + return JOptionPane.showConfirmDialog(ControlPanel.this, + ""+Translator.R("CPJVMNotokMessage1", s)+"
    " + + validationResult.formattedText+"
    " + + Translator.R("CPJVMNotokMessage2", DeploymentConfiguration.KEY_JRE_DIR, DeploymentConfiguration.USER_DEPLOYMENT_PROPERTIES_FILE)+"", + Translator.R("CPJVMconfirmInvalidJdkTitle"),JOptionPane.OK_CANCEL_OPTION); + } + return JOptionPane.OK_OPTION; + } /** * Creates the "ok" "apply" and "cancel" buttons. @@ -173,6 +190,10 @@ @Override public void actionPerformed(ActionEvent e) { ControlPanel.this.saveConfiguration(); + int validationResult = validateJdk(); + if (validationResult!= JOptionPane.OK_OPTION){ + return; + } ControlPanel.this.dispose(); } }); @@ -183,6 +204,15 @@ @Override public void actionPerformed(ActionEvent e) { ControlPanel.this.saveConfiguration(); + int validationResult = validateJdk(); + if (validationResult != JOptionPane.OK_OPTION) { + int i = JOptionPane.showConfirmDialog(ControlPanel.this, + Translator.R("CPJVMconfirmReset"), + Translator.R("CPJVMconfirmReset"), JOptionPane.OK_CANCEL_OPTION); + if (i == JOptionPane.OK_OPTION) { + jvmPanel.resetTestFieldArgumentsExec(); + } + } } }); buttons.add(applyButton); @@ -219,7 +249,7 @@ * @return A panel with all the components in place. */ private JPanel createMainSettingsPanel() { - + jvmPanel = (JVMPanel) createJVMSettingsPanel(); SettingsPanel[] panels = new SettingsPanel[] { new SettingsPanel(Translator.R("CPTabAbout"), createAboutPanel()), new SettingsPanel(Translator.R("CPTabCache"), createCacheSettingsPanel()), new SettingsPanel(Translator.R("CPTabCertificate"), createCertificatesSettingsPanel()), @@ -227,7 +257,7 @@ // new SettingsPanel(Translator.R("CPTabClassLoader"), createClassLoaderSettingsPanel()), new SettingsPanel(Translator.R("CPTabDebugging"), createDebugSettingsPanel()), new SettingsPanel(Translator.R("CPTabDesktopIntegration"), createDesktopSettingsPanel()), - new SettingsPanel(Translator.R("CPTabJVMSettings"), createJVMSettingsPanel()), + new SettingsPanel(Translator.R("CPTabJVMSettings"),jvmPanel), new SettingsPanel(Translator.R("CPTabNetwork"), createNetworkSettingsPanel()), // TODO: This is commented out since this is not implemented yet // new SettingsPanel(Translator.R("CPTabRuntimes"), createRuntimesSettingsPanel()), diff -r 50863f01bf84 -r e6055625cbbf netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Apr 11 15:37:32 2013 -0400 +++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Fri Apr 12 13:31:49 2013 +0200 @@ -40,17 +40,43 @@ import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; - +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; import javax.swing.Box; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JTextField; - +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.Document; import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.runtime.Translator; +import net.sourceforge.jnlp.util.StreamUtils; @SuppressWarnings("serial") public class JVMPanel extends NamedBorderPanel { + + public static class JvmValidationResult { + + public static enum STATE { + + EMPTY, NOT_DIR, NOT_VALID_DIR, NOT_VALID_JDK, VALID_JDK; + } + public final String formattedText; + public final STATE id; + + public JvmValidationResult(String formattedText, STATE id) { + this.id = id; + this.formattedText = formattedText; + } + } private DeploymentConfiguration config; + private File lastPath = new File("/usr/lib/jvm/java/jre/"); + JTextField testFieldArgumentsExec; JVMPanel(DeploymentConfiguration config) { super(Translator.R("CPHeadJVMSettings"), new GridBagLayout()); @@ -58,23 +84,125 @@ addComponents(); } + + void resetTestFieldArgumentsExec(){ + testFieldArgumentsExec.setText(""); + } private void addComponents() { - JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
    "); - JTextField testFieldArguments = new JTextField(25); + final JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
    "); + final JTextField testFieldArguments = new JTextField(25); testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS)); + + final JLabel descriptionExec = new JLabel("" + Translator.R("CPJVMitwExec") + "
    "); + testFieldArgumentsExec = new JTextField(100); + final JLabel validationResult = new JLabel(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); + final JCheckBox allowTypoTimeValidation = new JCheckBox(Translator.R("CPJVMPluginAllowTTValidation"), true); + allowTypoTimeValidation.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); + } + }); + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void insertUpdate(DocumentEvent e) { + if (allowTypoTimeValidation.isSelected()) { + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formattedText, "CPJVMvalidated")); + } + } + + @Override + public void removeUpdate(DocumentEvent e) { + if (allowTypoTimeValidation.isSelected()) { + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formattedText, "CPJVMvalidated")); + } + } + + @Override + public void changedUpdate(DocumentEvent e) { + if (allowTypoTimeValidation.isSelected()) { + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formattedText, "CPJVMvalidated")); + } + } + }); + + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_JRE_DIR)); + testFieldArgumentsExec.setText(config.getProperty(DeploymentConfiguration.KEY_JRE_DIR)); + + final JButton selectJvm = new JButton(Translator.R("CPJVMPluginSelectExec")); + selectJvm.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JFileChooser jfch; + if (lastPath != null && lastPath.exists()) { + jfch = new JFileChooser(lastPath); + } else { + jfch = new JFileChooser(); + } + jfch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + int i = jfch.showOpenDialog(JVMPanel.this); + if (i == JFileChooser.APPROVE_OPTION && jfch.getSelectedFile() != null) { + lastPath = jfch.getSelectedFile().getParentFile(); + String nws = jfch.getSelectedFile().getAbsolutePath(); + String olds = testFieldArgumentsExec.getText(); + if (!nws.equals(olds)) { + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone")); + } + testFieldArgumentsExec.setText(nws); + } + + } + }); + final JButton validateJvm = new JButton(Translator.R("CPJVMitwExecValidation")); + validateJvm.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText()); + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), s.formattedText, "CPJVMvalidated")); + + } + }); + // Filler to pack the bottom of the panel. GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.weightx = 1; + c.gridwidth = 4; c.gridx = 0; c.gridy = 0; + c.insets = new Insets(2, 2, 4, 4); this.add(description, c); c.gridy++; this.add(testFieldArguments, c); + c.gridy++; + this.add(descriptionExec, c); + c.gridy++; + this.add(testFieldArgumentsExec, c); + c.gridy++; + GridBagConstraints cb1 = (GridBagConstraints) c.clone(); + cb1.fill = GridBagConstraints.NONE; + cb1.gridwidth = 1; + this.add(selectJvm, cb1); + GridBagConstraints cb3 = (GridBagConstraints) c.clone(); + cb3.fill = GridBagConstraints.NONE; + cb3.gridx = 2; + cb3.gridwidth = 1; + this.add(allowTypoTimeValidation, cb3); + GridBagConstraints cb2 = (GridBagConstraints) c.clone(); + cb2.fill = GridBagConstraints.NONE; + cb2.gridx = 3; + cb2.gridwidth = 1; + this.add(validateJvm, cb2); + c.gridy++; + this.add(validationResult, c); // This is to keep it from expanding vertically if resized. Component filler = Box.createRigidArea(new Dimension(1, 1)); @@ -82,4 +210,104 @@ c.weighty++; this.add(filler, c); } + + public static JvmValidationResult validateJvm(String cmd) { + if (cmd == null || cmd.trim().equals("")) { + return new JvmValidationResult("" + Translator.R("CPJVMvalueNotSet") + "", + JvmValidationResult.STATE.EMPTY); + } + String validationResult = ""; + File jreDirFile = new File(cmd); + JvmValidationResult.STATE latestOne = JvmValidationResult.STATE.EMPTY; + if (jreDirFile.isDirectory()) { + validationResult += "" + Translator.R("CPJVMisDir") + "
    "; + } else { + validationResult += "" + Translator.R("CPJVMnotDir") + "
    "; + latestOne = JvmValidationResult.STATE.NOT_DIR; + } + File javaFile = new File(cmd + File.separator + "bin" + File.separator + "java"); + if (javaFile.isFile()) { + validationResult += "" + Translator.R("CPJVMjava") + "
    "; + } else { + validationResult += "" + Translator.R("CPJVMnoJava") + "
    "; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + } + File rtFile = new File(cmd + File.separator + "lib" + File.separator + "rt.jar"); + if (rtFile.isFile()) { + validationResult += "" + Translator.R("CPJVMrtJar") + "
    "; + } else { + validationResult += "" + Translator.R("CPJVMnoRtJar") + "
    "; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + } + ProcessBuilder sb = new ProcessBuilder(javaFile.getAbsolutePath(), "-version"); + Process p = null; + String processErrorStream = ""; + String processStdOutStream = ""; + Integer r = null; + try { + p = sb.start(); + p.waitFor(); + processErrorStream = StreamUtils.readStreamAsString(p.getErrorStream()); + processStdOutStream = StreamUtils.readStreamAsString(p.getInputStream()); + r = p.exitValue(); + System.err.println(processErrorStream); + System.out.println(processStdOutStream); + processErrorStream = processErrorStream.toLowerCase(); + processStdOutStream = processStdOutStream.toLowerCase(); + } catch (Exception ex) {; + ex.printStackTrace(); + + } + if (r == null) { + validationResult += "" + Translator.R("CPJVMnotLaunched") + ""; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + return new JvmValidationResult(validationResult, latestOne); + } + if (r.intValue() != 0) { + validationResult += "" + Translator.R("CPJVMnoSuccess") + ""; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + return new JvmValidationResult(validationResult, latestOne); + } + if (processErrorStream.contains("openjdk") || processStdOutStream.contains("openjdk")) { + validationResult += "" + Translator.R("CPJVMopenJdkFound") + ""; + return new JvmValidationResult(validationResult, JvmValidationResult.STATE.VALID_JDK); + } + if (processErrorStream.contains("ibm") || processStdOutStream.contains("ibm")) { + validationResult += "" + Translator.R("CPJVMibmFound") + ""; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + return new JvmValidationResult(validationResult, latestOne); + } + if (processErrorStream.contains("gij") || processStdOutStream.contains("gij")) { + validationResult += "" + Translator.R("CPJVMgijFound") + ""; + if (latestOne != JvmValidationResult.STATE.NOT_DIR) { + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK; + } + return new JvmValidationResult(validationResult, latestOne); + } + if (processErrorStream.contains("oracle") || processStdOutStream.contains("oracle") + || processErrorStream.contains("java(tm)") || processStdOutStream.contains("java(tm)")) { + validationResult += "" + Translator.R("CPJVMoracleFound") + ""; From xranby at icedtea.classpath.org Fri Apr 12 05:12:14 2013 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Fri, 12 Apr 2013 12:12:14 +0000 Subject: /hg/icedtea: 2013-04-11 Xerxes Ranby Message-ID: changeset de5854f8197d in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=de5854f8197d author: Xerxes Ranby date: Fri Apr 12 17:08:21 2013 +0200 2013-04-11 Xerxes Ranby JamVM - JSR 292: Invoke Dynamic - JSR 308: Type Annotations - JEP 171: Implement fence methods in sun.misc.Unsafe - Set anonymous class protection domain - Dummy implementation of sun.misc.Perf natives * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2013-04-04 revision. (JAMVM_SHA256SUM): Updated. (BUILD_JAMVM): ICEDTEA_PATCHES remove use of remove-sun.misc.Perf-debug-code.patch (ENABLE_JAMVM): Use ICEDTEA_CONFIGURE --with-import-hotspot in compliance with the OpenJDK 8 build scrips. (ENABLE_CACAO): Likewise. (stamps/jamvm.stamp): Use --with-java-runtime-library=openjdk8 (stamps/jamvm.stamp): OpenJDK 8 --with-import-hotspot checks for both lib and jre/lib. mkdir -p of the missing lib dir in order to pass the sanity test. (stamps/cacao.stamp): Likewise. * patches/jamvm/remove-sun.misc.Perf-debug-code.patch: Removed. diffstat: ChangeLog | 24 ++++++++++ Makefile.am | 21 ++++----- NEWS | 6 ++ patches/jamvm/remove-sun.misc.Perf-debug-code.patch | 47 --------------------- 4 files changed, 39 insertions(+), 59 deletions(-) diffs (163 lines): diff -r 53f6588f92fb -r de5854f8197d ChangeLog --- a/ChangeLog Tue Apr 02 22:15:37 2013 +0100 +++ b/ChangeLog Fri Apr 12 17:08:21 2013 +0200 @@ -1,3 +1,27 @@ +2013-04-11 Xerxes R??nby + + JamVM + - JSR 292: Invoke Dynamic + - JSR 308: Type Annotations + - JEP 171: Implement fence methods in sun.misc.Unsafe + - Set anonymous class protection domain + - Dummy implementation of sun.misc.Perf natives + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2013-04-04 revision. + (JAMVM_SHA256SUM): Updated. + (BUILD_JAMVM): ICEDTEA_PATCHES remove use of + remove-sun.misc.Perf-debug-code.patch + (ENABLE_JAMVM): Use ICEDTEA_CONFIGURE --with-import-hotspot + in compliance with the OpenJDK 8 build scrips. + (ENABLE_CACAO): Likewise. + (stamps/jamvm.stamp): Use --with-java-runtime-library=openjdk8 + (stamps/jamvm.stamp): OpenJDK 8 --with-import-hotspot checks + for both lib and jre/lib. mkdir -p of the missing + lib dir in order to pass the sanity test. + (stamps/cacao.stamp): Likewise. + * patches/jamvm/remove-sun.misc.Perf-debug-code.patch: Removed. + 2013-04-02 Andrew John Hughes * Makefile.am: diff -r 53f6588f92fb -r de5854f8197d Makefile.am --- a/Makefile.am Tue Apr 02 22:15:37 2013 +0100 +++ b/Makefile.am Fri Apr 12 17:08:21 2013 +0200 @@ -26,8 +26,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = 4617da717ecb05654ea5bb9572338061106a414d -JAMVM_SHA256SUM = 47fce7bd556c1b1d29a93b8c45497e0d872b48b7f535066b303336f29d0f0d8d +JAMVM_VERSION = 10b7c81c597809b2aaf28c8243453a21c33d4af3 +JAMVM_SHA256SUM = 6cce595ee2cfcfbaa425527be9c2fa880ade7b47475925f1c4bf18b017bffffd JAMVM_BASE_URL = http://icedtea.classpath.org/download/drops/jamvm JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz @@ -240,11 +240,6 @@ patches/cacao/ignore-tests.patch endif -if BUILD_JAMVM -ICEDTEA_PATCHES += \ - patches/jamvm/remove-sun.misc.Perf-debug-code.patch -endif - if ENABLE_PULSE_JAVA ICEDTEA_PATCHES += \ patches/pulse-soundproperties.patch @@ -328,13 +323,13 @@ JOBS="$(PARALLEL_JOBS)" if ENABLE_CACAO -ICEDTEA_ENV += \ - ALT_HOTSPOT_IMPORT_PATH="$(CACAO_IMPORT_PATH)" +ICEDTEA_CONFIGURE += \ + --with-import-hotspot="$(CACAO_IMPORT_PATH)" endif if ENABLE_JAMVM -ICEDTEA_ENV += \ - ALT_HOTSPOT_IMPORT_PATH="$(JAMVM_IMPORT_PATH)" +ICEDTEA_CONFIGURE += \ + --with-import-hotspot="$(JAMVM_IMPORT_PATH)" endif if DISABLE_OPTIMIZATIONS @@ -1721,10 +1716,11 @@ stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp if BUILD_JAMVM cd jamvm/jamvm && \ - ./autogen.sh --with-java-runtime-library=openjdk \ + ./autogen.sh --with-java-runtime-library=openjdk8 \ --prefix=$(abs_top_builddir)/jamvm/install ; \ $(MAKE) ; \ $(MAKE) install + mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/lib mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server cp $(abs_top_builddir)/jamvm/install/lib/libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server ln -sf server $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/client @@ -1793,6 +1789,7 @@ --with-java-runtime-library-classes=$(RUNTIME) \ --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \ $(ARCH_PREFIX) $(MAKE) -j$(PARALLEL_JOBS) install + mkdir -p $(abs_top_builddir)/cacao/install/lib ln -s server $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/client endif endif diff -r 53f6588f92fb -r de5854f8197d NEWS --- a/NEWS Tue Apr 02 22:15:37 2013 +0100 +++ b/NEWS Fri Apr 12 17:08:21 2013 +0200 @@ -12,6 +12,12 @@ New in release 3.0 beta 1 (2013-XX-XX): +* JamVM + - JSR 292: Invoke Dynamic + - JSR 308: Type Annotations + - JEP 171: Implement fence methods in sun.misc.Unsafe + - Set anonymous class protection domain + - Dummy implementation of sun.misc.Perf natives * Bug fixes - PR1346: Filter out -j option to make - PR1347: Update list of checked JDKs diff -r 53f6588f92fb -r de5854f8197d patches/jamvm/remove-sun.misc.Perf-debug-code.patch --- a/patches/jamvm/remove-sun.misc.Perf-debug-code.patch Tue Apr 02 22:15:37 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -Index: openjdk/jdk/src/share/classes/java/net/URLClassLoader.java -=================================================================== ---- openjdk.orig/jdk/src/share/classes/java/net/URLClassLoader.java 2011-06-13 16:58:42.000000000 +0200 -+++ openjdk/jdk/src/share/classes/java/net/URLClassLoader.java 2011-06-28 18:43:50.114802612 +0200 -@@ -438,14 +438,12 @@ - // Use (direct) ByteBuffer: - CodeSigner[] signers = res.getCodeSigners(); - CodeSource cs = new CodeSource(url, signers); -- sun.misc.PerfCounter.getReadClassBytesTime().addElapsedTimeFrom(t0); - return defineClass(name, bb, cs); - } else { - byte[] b = res.getBytes(); - // must read certificates AFTER reading bytes. - CodeSigner[] signers = res.getCodeSigners(); - CodeSource cs = new CodeSource(url, signers); -- sun.misc.PerfCounter.getReadClassBytesTime().addElapsedTimeFrom(t0); - return defineClass(name, b, 0, b.length, cs); - } - } -Index: openjdk/jdk/src/share/classes/java/lang/ClassLoader.java -=================================================================== ---- openjdk.orig/jdk/src/share/classes/java/lang/ClassLoader.java 2011-06-13 16:58:42.000000000 +0200 -+++ openjdk/jdk/src/share/classes/java/lang/ClassLoader.java 2011-06-28 18:43:50.142802778 +0200 -@@ -422,10 +422,6 @@ - long t1 = System.nanoTime(); - c = findClass(name); - -- // this is the defining class loader; record the stats -- sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0); -- sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1); -- sun.misc.PerfCounter.getFindClasses().increment(); - } - } - if (resolve) { -Index: openjdk/jdk/src/share/classes/java/util/zip/ZipFile.java -=================================================================== ---- openjdk.orig/jdk/src/share/classes/java/util/zip/ZipFile.java 2011-06-28 18:56:56.994704556 +0200 -+++ openjdk/jdk/src/share/classes/java/util/zip/ZipFile.java 2011-06-28 18:57:11.514776567 +0200 -@@ -212,8 +212,6 @@ - this.zc = ZipCoder.get(charset); - long t0 = System.nanoTime(); - jzfile = open(name, mode, file.lastModified(), usemmap); -- sun.misc.PerfCounter.getZipFileOpenTime().addElapsedTimeFrom(t0); -- sun.misc.PerfCounter.getZipFileCount().increment(); - this.name = name; - this.total = getTotal(jzfile); - } From adomurad at redhat.com Fri Apr 12 06:01:18 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 12 Apr 2013 09:01:18 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5167DCFD.1030305@redhat.com> References: <5167DCFD.1030305@redhat.com> Message-ID: <5168059E.3060606@redhat.com> Please use [icedtea-web] for filter purposes :-) On 04/12/2013 06:07 AM, Jiri Vanek wrote: > Hi, commit > > changeset: 656:1c26ce1e1cb3 > tag: tip > user: Adam Domurad > date: Tue Mar 26 14:57:33 2013 -0400 > summary: Integration of unsigned applet confirmation dialogue. > > broke the > > CodeBaseClassLoaderTest.testNullFileSecurityDescApplication test > > The affecting hunk was > > @@ -596,9 +604,9 @@ > > JARDesc jars[] = resources.getJARs(); > > - if (jars == null || jars.length == 0) { > + if (jars.length == 0) { > > - boolean allSigned = true; > + boolean allSigned = (loaders.length > 1) /* has > extensions */; > for (int i = 1; i < loaders.length; i++) { > if (!loaders[i].getSigning()) { > allSigned = false; > > of diff -r bb971f25eb42 -r 1c26ce1e1cb3 > netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > > and the responsible line was > > - boolean allSigned = true; > + boolean allSigned = (loaders.length > 1) /* has > extensions */; > > An I must say I'm hesitating with fix. Just use always true? or use > (loaders.length > 0) which is actually the same. > > Why the change at all? Without this change, applets that do not have an associated jar will always be considered signed. Thus they will always run regardless of unsigned applet trust setting. What does the broken test indicate ? > > J. > > see > http://10.34.2.200/icedtea-web-dailyreport/ICWDR_1364327226/index.html > for full info -Adam From jvanek at icedtea.classpath.org Fri Apr 12 06:32:04 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 12 Apr 2013 13:32:04 +0000 Subject: /hg/icedtea-web: Added help for extended applets security and se... Message-ID: changeset a94822453711 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a94822453711 author: Jiri Vanek date: Fri Apr 12 15:32:24 2013 +0200 Added help for extended applets security and settings diffstat: ChangeLog | 14 + NEWS | 1 + netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java | 6 + netx/net/sourceforge/jnlp/resources/Messages.properties | 144 +++++++ netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java | 15 + netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java | 182 ++++++++++ 6 files changed, 362 insertions(+), 0 deletions(-) diffs (455 lines): diff -r e6055625cbbf -r a94822453711 ChangeLog --- a/ChangeLog Fri Apr 12 13:31:49 2013 +0200 +++ b/ChangeLog Fri Apr 12 15:32:24 2013 +0200 @@ -1,3 +1,17 @@ +2013-04-12 Jiri Vanek + + Added help for extended applets security and settings + * netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel: + (helpButtonActionPerformed) added code to open dialogue with help + * netx/net/sourceforge/jnlp/resources/Messages.propertie: + Included html help message + * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java: + added help button and logic to open help dialogue + * netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java: + Simple dialogue with JEditorPane with html help from properties and few + navigation buttons + * NEWS: mentioned extended appelts security + 2013-04-12 Jiri Vanek Added dialogue to allow setting of custom JRE diff -r e6055625cbbf -r a94822453711 NEWS --- a/NEWS Fri Apr 12 13:31:49 2013 +0200 +++ b/NEWS Fri Apr 12 15:32:24 2013 +0200 @@ -16,6 +16,7 @@ * All IcedTea-Web dialogues are centered to middle of active screen * Download indicator made compact for more then one jar * User can select its own JVM via itw-settings and deploy.properties. +* Added extended applets security settings and dialogue * Security updates - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings diff -r e6055625cbbf -r a94822453711 netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Fri Apr 12 13:31:49 2013 +0200 +++ b/netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java Fri Apr 12 15:32:24 2013 +0200 @@ -54,6 +54,7 @@ import java.util.regex.Pattern; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; +import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -76,9 +77,11 @@ import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.security.appletextendedsecurity.AppletSecurityLevel; import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; +import net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp; import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletActionEntry; import net.sourceforge.jnlp.security.appletextendedsecurity.UrlRegEx; import net.sourceforge.jnlp.security.appletextendedsecurity.impl.UnsignedAppletActionStorageExtendedImpl; +import net.sourceforge.jnlp.util.ScreenFinder; public class UnsignedAppletsTrustingListPanel extends javax.swing.JPanel { @@ -681,6 +684,9 @@ } private void helpButtonActionPerformed(java.awt.event.ActionEvent evt) { + JDialog d = new ExtendedAppletSecurityHelp(null, false); + ScreenFinder.centerWindowsToCurrentScreen(d); + d.setVisible(true); } private void setButtons(boolean b) { diff -r e6055625cbbf -r a94822453711 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 12 13:31:49 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 12 15:32:24 2013 +0200 @@ -570,3 +570,147 @@ APPEXTSECguiPanelShowOnlyPermanentN=Show only forbidden permanent records APPEXTSECguiPanelShowOnlyTemporalY=Show previously allowed applets records APPEXTSECguiPanelShowOnlyTemporalN=Show previously denied applets records +APPEXTSEChelpHomeDialogue=Dialogue +APPEXTSEChelp= \ +

    Help for Extended applet security - itw-settings, files and structures, dialogue

    \ +

    \ +Extended Applet Security refers to security features for unsigned applets. Traditionally, only signed applets required user confirmation and unsigned applets ran automatically. This is represented by the 'low security' setting. Unsigned applets must be allowed or disallowed individually on 'high security' (the default), and additionally do not run at all on 'very high security'. In theory, unsigned applets can safely run automatically. In practice, however, any vulnerability in the Java security sandbox will prevent this from being true. \ +

    \ +

    \ +To do so it uses the Security Level main settings switch rules in the tables of Custom definitions and Global definitions
    \ +You can read much more about development of (and help us to improve!) this feature at dedicated IcedTea-Web page \ +

    \ +

    Security Level

    \ +

    \ +Its a main switch for "extended applet security". Its value is commonly stored in usrs_home/.icedtea/deployment.properties, but can be enforced via global settings in /etc/.java/deployment/deployment.properties or JAVA_HOME/lib/deployment.properties under the key deployment.security.level
    \ +

  • Disable running of all Java applets - stored as DENY_ALL - No applet will be run
    \ +
    \ +No applet will be allowed to run. However the Java virtual machine will always be executed (and an error screen with reason appear instead of applets). To disable Java completely you can uninstall IcedTea-Web or disable it in your browser (if supported). The tables with records are of course ignored. \ +
    \ +
  • Very High Security - stored as DENY_UNSIGNED - No unsigned applets will be run
    \ +
    \ +No applet unsigned will be allowed to run (and an error screen with reason will appear instead of such applets). The tables with records are of course again ignored. \ +
    \ +
  • High Security - stored as ASK_UNSIGNED - User will be prompted for each unsigned applet
    \ +
    \ +All unsigned applets will be tested against the tables below if they should be allowed or forbidden to run. If they are not matched in the table then the user is prompted and the decision is stored in tables below. If the user denies the applet, an error screen with reason appears and the applet does not run. If the user allows applets to run, the user can choose to save this decision and whether to allow just one applet or a whole group of applets (see Dialogue paragraph below). \ +
    This is default behavior. \ +
    \ +
  • Low Security - stored as ALLOW_UNSIGNED - All, even unsigned, applets will be run
    \ +
    \ +All applets even unsigned will be allowed to run. User will not be warned and the tables with records are of course again ignored. \ +
    \ +You need to press ok or apply button to make the changes take effect. \ +

    \ + \ + \ +

    Table with recorded actions

    \ +

    \ +

    Custom x Global table

    \ +After each action in High Security dialogue the record is added to, or updated in, the table or configuration file. Commonly in users file - home/.icedtea/.appletTrustSettings - "Custom definition" panel.
    \ +But superuser can specify default behavior in /etc/.java/deployment/ .appletTrustSettings - "Global definition" panel.
    \ +

    "Syntax"

    \ +
  • Action - Desired behavior when applet is matched
    \ +
    \ +
  • Always trust this applet - This unsigned applet will always be run in High Security Security Level. It is stored as A in .appletTrustSettings
    \ +
  • Never trust this applet - This unsigned applet will never be run in High Security Security Level. It is stored as N in .appletTrustSettings
    \ +
  • Visited and allowed - When the user is asked about this applet again, a note that this applet was already trusted in past will be displayed. It is stored as y in .appletTrustSettings
    \ +
  • Visited and denied - When user will be asked about this applet again, he will see information that this applet was already denied in past. It is stored as n in .appletTrustSettings
    \ +
  • \ +
  • Date - date of last action on this item (read only item)
    \ +
  • Document base - is the page from which the applet was requested. It is actually a regular expression to match a specific URL. See about regular expressions and their usage lower
    \ +
  • Code base - is the URL where an applets code came from. It is actually a regular expression to match a specific URL. See about regular expressions and their usage lower
    \ +
  • Archives - coma separated list of archives with applet's code. Can be empty if source code are just classes or group of applets is allowed
    \ +
    \ +When you change a value in the table, its effect is immediate. \ +

    Controls of tables

    \ +

    \ +

  • Delete - deletes items as specified in combo box on side
    \ +
    \ +
  • selected - removes all selected items. Key Del does the same. Default behavior. Multiple selections allowed. Selection can be inverted by button even more on side
    \ +
  • all allowed (A) - removes all permanently trusted records
    \ +
  • all forbidden (N) - removes all permanently forbidden records
    \ +
  • all approved (y) - removes all previously (temporarily) trusted records
    \ +
  • all rejected (n) - removes all previously (temporarily) denied records
    \ +
  • all - will clear the table
    \ +
    \ +Ask me before action - switch to ask before each deletion (in bulk) or not to ask. Asking dialogue can be pretty long, so if you do not see the buttons, just press Esc \ +
  • \ +
  • Show full regular expressions - Disable or Enable filtering of quotation marks \Q\E in code/document base columns. About regular expressions see more lower
    \ +
    \ +
  • Filtering in table(s)
    \ +
    \ +
  • Show only permanent records - Shows only permanently allowed (A) or denied (N) records. Default behavior
    \ +
  • Show only temporarily decided records - Shows only once allowed (y) or denied (n) informative records.
    \ +
  • Show only permanently allowed records - Shows only permanently allowed (A) records
    \ +
  • Show only permanently denied records - Shows only permanently denied (N) records
    \ +
  • Show only temporarily allowed records - Shows only once allowed (y) informative records.
    \ +
  • Show only temporarily denied records - Shows only once denied (n) informative records.
    \ +
  • \ +

    \ +
  • Add new row - will add new, exemplary filled, row with current date and empty archives
    \ +
  • Validate table - will test if table can save, load, and if each value is valid:
    \ +
    \ +
  • Action - is one of A,N,y,n
    \ +
  • Date - is valid date
    \ +
  • Code base and document base - are valid regular expressions or empty
    \ +
  • Archives - coma separated list of archives or empty
    \ +
  • \ +
  • Test url - In two dialogues (in two steps) will let you enter document base and codebase, and then try to match them against all records. All matching items are returned! Last values are remembered> \ +
  • Move row down/up
    \ +
    \ +Order of rows is important. First matched result is returned (permanent have priority). So you can prioritize your matches using these buttons.
    \ +For example, if you \Qhttp://blogs.com/\E.* regular expression to allow all applets on http://blogs.com, then it must be AFTER your \Qhttp://blogs.com/evilJohn\E.* regular expression forbidding all applets from blog of hacker evilJohn. \ +
    \ +

    \ +

    \ +

    Dialogue

    \ +If High Security is set, and a new unsigned applet is hit then the dialogue is shown asking you to allow it or deny it. You can also choose if you want to allow or deny this applet every-time (A or N) you encounter it or for just one run (y,n).
    \ +You can also select to trust or deny (again temporarily or permanently) all the applets from same, exact, codebase. If you are visiting one page, which has various applets on various documents then this is a choice for you.
    \ +If you decide not to allow remembering your decision, then just a temporary record is made. If you revisit a page, a small green or red label will inform you about your last decision.
    \ +Once you select remember your decision, the dialog will never appear again. But you can edit your decision in itw-settings application table (packed with IcedTea-Web). If you change your decision to temporary one (n,y) or delete its row, the dialogue will appear again. Of course you can switch also from Always to Never or vice versa. \ +
    \ +The dialogue always mentions the page on which an applet is displayed, and the URL from which it comes. There is also a hint, if you have ever visited this applet saying if you have allowed or rejected it in the past
    \ +
    \ +

    Controls

    \ +
    \ +
  • Remember this option - If set, then dialogue will never be shown for this applet or page again. \ +
    \ +
  • For applet - Exact applet will be allowed or denied \ +
  • For site - All applets from this place will be allowed or denied \ +
  • \ +
  • Proceed - Applets, as selected above will be allowed \ +
  • Cancel - Applets, as selected above will be forbidden \ +
  • \ +Be aware to "proceed" + "Remember this option" + "For site" on pages you do not know! It can make you vulnerable! \ +
    \ +

    \ +

    \ +

    Regular expressions

    \ +IcedTea-Web extended applet security - uses a powerful matching engine to match exact (sets of) applets. Base stone is Quotation of URL \Q\E and wildchars llike .* or .? or more.
    \ +This was designed to suits the need to block or allow exact pages. The best is to show some examples:
    \ +N 12.12.2012 .* \Qhttp://blogs.com/evilJohn\E.*
    \ +N 12.12.2012 \Qhttp://blogs.com/goodJohn/evilApplet.html\E.* \Qhttp://blogs.com/goodJohn/\E goodJohnsArchive.jar
    \ +A 12.12.2012 \Qhttp://blogs.com/\E.* \Qhttp://blogs.com/\E.*
    \ +N 12.12.2012 .* \Qhttp://adds.com\E.*
    \ +Y 12.12.2012 .* \Qhttp://www.walter-fendt.de/ph14_jar/\E
    \ +
    \ +So this table, created 12.12.2012:
    \ +
  • Forbid all stuff which have some code on http://blogs.com/evilJohn pages
    \ +
  • Forbidding also one exact applet from http://blogs.com/goodJohn/ with archive goodJohnsArchive.jar
    \ +
  • Allowing all (other) applets from http://blogs.com/ but only when displayed also on http://blogs.com/
    \ +
  • Forbidding all applets with code saved on http://adds.com (except on http://blogs.com/ - to have forbidden http://adds.com also on http://blogs.com/, this (http://adds.com) record must be above blogs record)
    \ +
  • And finally allowing all nice physical applets on walter-fendt's pages
    \ +
    \ +Note - the date saved in .appletTrustSettings has a not so nice format, but I left this for now...
    \ +
    \ +All information about full regular expression syntax can be found on http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html \ +

    \ +

    Conclusion

    \ +

    \ +Stay tuned to our homepage at http://icedtea.classpath.org/wiki/IcedTea-Web!
    \ +If you encounter any bug, feel free to file it in our bugzilla ... According to http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs
    \ +
    \ +Safe browsing from your IcedTea-Web team... \ +

    \ + \ diff -r e6055625cbbf -r a94822453711 netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java --- a/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Fri Apr 12 13:31:49 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Fri Apr 12 15:32:24 2013 +0200 @@ -53,6 +53,7 @@ import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; +import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; @@ -60,7 +61,9 @@ import net.sourceforge.jnlp.PluginBridge; import net.sourceforge.jnlp.security.appletextendedsecurity.ExecuteUnsignedApplet; +import net.sourceforge.jnlp.security.appletextendedsecurity.ExtendedAppletSecurityHelp; import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; +import net.sourceforge.jnlp.util.ScreenFinder; public class UnsignedAppletTrustWarningPanel extends JPanel { @@ -101,6 +104,7 @@ private JButton allowButton; private JButton rejectButton; + private JButton helpButton; private JCheckBox permanencyCheckBox; private JRadioButton applyToAppletButton; private JRadioButton applyToCodeBaseButton; @@ -218,12 +222,23 @@ allowButton = new JButton(R("ButProceed")); rejectButton = new JButton(R("ButCancel")); + helpButton = new JButton(R("APPEXTSECguiPanelHelpButton")); allowButton.addActionListener(chosenActionSetter(true)); rejectButton.addActionListener(chosenActionSetter(false)); + helpButton.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + JDialog d = new ExtendedAppletSecurityHelp(null, false,"dialogue"); + ScreenFinder.centerWindowsToCurrentScreen(d); + d.setVisible(true); + } + }); + buttonPanel.add(allowButton); buttonPanel.add(rejectButton); + buttonPanel.add(helpButton); buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); diff -r e6055625cbbf -r a94822453711 netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java Fri Apr 12 15:32:24 2013 +0200 @@ -0,0 +1,182 @@ +/* Copyright (C) 2013 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.security.appletextendedsecurity; + +import java.awt.Dimension; +import java.io.IOException; +import javax.swing.JButton; +import javax.swing.JEditorPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.event.HyperlinkEvent; +import javax.swing.event.HyperlinkListener; +import net.sourceforge.jnlp.runtime.Translator; + +public class ExtendedAppletSecurityHelp extends javax.swing.JDialog implements HyperlinkListener { + + public ExtendedAppletSecurityHelp(java.awt.Frame parent, boolean modal, String reference) { + this(parent, modal); + mainHtmlPane.scrollToReference(reference); + + } + + public ExtendedAppletSecurityHelp(java.awt.Frame parent, boolean modal) { + super(parent, modal); + Dimension d = new Dimension(600, 400); + setPreferredSize(d); + setSize(d); + initComponents(); + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); + mainHtmlPane.addHyperlinkListener(ExtendedAppletSecurityHelp.this); + mainHtmlPane.setCaretPosition(1); + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + } + + @Override + public void hyperlinkUpdate(HyperlinkEvent event) { + if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + try { + if (event.getURL() == null) { + String s = event.getDescription().replace("#", ""); + mainHtmlPane.scrollToReference(s); + } else { + mainHtmlPane.setPage(event.getURL()); + } + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + } + + private void initComponents() { + + jScrollPane1 = new javax.swing.JScrollPane(); + mainHtmlPane = new javax.swing.JEditorPane(); + mainPanel = new javax.swing.JPanel(); + niceSeparator = new javax.swing.JSeparator(); + mainButtonsPanel = new javax.swing.JPanel(); + navigationPanel = new javax.swing.JPanel(); + homeButton = new javax.swing.JButton(); + homeAndDialogueButton = new javax.swing.JButton(); + closePanel = new javax.swing.JPanel(); + closeButton = new javax.swing.JButton(); + getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS)); + mainHtmlPane.setContentType("text/html"); + mainHtmlPane.setEditable(false); + jScrollPane1.setViewportView(mainHtmlPane); + getContentPane().add(jScrollPane1); + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(mainPanel); + mainPanel.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 485, Short.MAX_VALUE) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addGap(0, 217, Short.MAX_VALUE) + .addComponent(niceSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 218, Short.MAX_VALUE)))); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 10, Short.MAX_VALUE) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(niceSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)))); + + getContentPane().add(mainPanel); + mainButtonsPanel.setLayout(new javax.swing.BoxLayout(mainButtonsPanel, javax.swing.BoxLayout.LINE_AXIS)); + navigationPanel.setLayout(new javax.swing.BoxLayout(navigationPanel, javax.swing.BoxLayout.LINE_AXIS)); + homeButton.setText(Translator.R("SPLASHHome")); + homeButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton2ActionPerformed(evt); + } + }); + navigationPanel.add(homeButton); + homeAndDialogueButton.setText(Translator.R("APPEXTSEChelpHomeDialogue")); + homeAndDialogueButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + closeButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + ExtendedAppletSecurityHelp.this.dispose(); + } + }); + navigationPanel.add(homeAndDialogueButton); + mainButtonsPanel.add(navigationPanel); + closeButton.setText(Translator.R("ButClose")); + closePanel.add(closeButton); + mainButtonsPanel.add(closePanel); + getContentPane().add(mainButtonsPanel); + + pack(); + } + + private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { + // TODO add your handling code here: + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); + mainHtmlPane.setCaretPosition(1); + } + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { + // TODO add your handling code here: + mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); + mainHtmlPane.scrollToReference("dialogue"); + } + + public static void main(String args[]) { + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + ExtendedAppletSecurityHelp dialog = new ExtendedAppletSecurityHelp(null, false); + dialog.setVisible(true); + } + }); + } + private JButton homeAndDialogueButton; + private JButton homeButton; + private JButton closeButton; + private JEditorPane mainHtmlPane; + private JPanel mainButtonsPanel; + private JPanel navigationPanel; + private JPanel closePanel; + private JPanel mainPanel; + private JScrollPane jScrollPane1; + private JSeparator niceSeparator; +} From jvanek at redhat.com Fri Apr 12 06:37:17 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 12 Apr 2013 15:37:17 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5168059E.3060606@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> Message-ID: <51680E0D.3010704@redhat.com> On 04/12/2013 03:01 PM, Adam Domurad wrote: > Please use [icedtea-web] for filter purposes :-) > > On 04/12/2013 06:07 AM, Jiri Vanek wrote: >> Hi, commit >> >> changeset: 656:1c26ce1e1cb3 >> tag: tip >> user: Adam Domurad >> date: Tue Mar 26 14:57:33 2013 -0400 >> summary: Integration of unsigned applet confirmation dialogue. >> >> broke the >> >> CodeBaseClassLoaderTest.testNullFileSecurityDescApplication test >> >> The affecting hunk was >> >> @@ -596,9 +604,9 @@ >> >> JARDesc jars[] = resources.getJARs(); >> >> - if (jars == null || jars.length == 0) { >> + if (jars.length == 0) { >> >> - boolean allSigned = true; >> + boolean allSigned = (loaders.length > 1) /* has extensions */; >> for (int i = 1; i < loaders.length; i++) { >> if (!loaders[i].getSigning()) { >> allSigned = false; >> >> of diff -r bb971f25eb42 -r 1c26ce1e1cb3 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> >> and the responsible line was >> >> - boolean allSigned = true; >> + boolean allSigned = (loaders.length > 1) /* has extensions */; >> >> An I must say I'm hesitating with fix. Just use always true? or use (loaders.length > 0) which is >> actually the same. >> >> Why the change at all? > > Without this change, applets that do not have an associated jar will always be considered signed. > Thus they will always run regardless of unsigned applet trust setting. > What does the broken test indicate ? Yah, sorry I should wrote immidiately. Its impact ios really starnge, you are actually removing "always true" but result is "less security" Issue is that suddenly JNLPClasslaoder with null security request (== sandbox permissions) started to return resources. Before it was not. See the logic of the test and the failure on line 311 > >> >> J. >> >> see http://10.34.2.200/icedtea-web-dailyreport/ICWDR_1364327226/index.html for full info > > -Adam From jvanek at redhat.com Fri Apr 12 06:41:49 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 12 Apr 2013 15:41:49 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <51680E0D.3010704@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> Message-ID: <51680F1D.8000304@redhat.com> On 04/12/2013 03:37 PM, Jiri Vanek wrote: > On 04/12/2013 03:01 PM, Adam Domurad wrote: >> Please use [icedtea-web] for filter purposes :-) >> >> On 04/12/2013 06:07 AM, Jiri Vanek wrote: >>> Hi, commit >>> >>> changeset: 656:1c26ce1e1cb3 >>> tag: tip >>> user: Adam Domurad >>> date: Tue Mar 26 14:57:33 2013 -0400 >>> summary: Integration of unsigned applet confirmation dialogue. >>> >>> broke the >>> >>> CodeBaseClassLoaderTest.testNullFileSecurityDescApplication test >>> >>> The affecting hunk was >>> >>> @@ -596,9 +604,9 @@ >>> >>> JARDesc jars[] = resources.getJARs(); >>> >>> - if (jars == null || jars.length == 0) { >>> + if (jars.length == 0) { >>> >>> - boolean allSigned = true; >>> + boolean allSigned = (loaders.length > 1) /* has extensions */; >>> for (int i = 1; i < loaders.length; i++) { >>> if (!loaders[i].getSigning()) { >>> allSigned = false; >>> >>> of diff -r bb971f25eb42 -r 1c26ce1e1cb3 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>> >>> and the responsible line was >>> >>> - boolean allSigned = true; >>> + boolean allSigned = (loaders.length > 1) /* has extensions */; >>> >>> An I must say I'm hesitating with fix. Just use always true? or use (loaders.length > 0) which is >>> actually the same. >>> >>> Why the change at all? >> >> Without this change, applets that do not have an associated jar will always be considered signed. >> Thus they will always run regardless of unsigned applet trust setting. >> What does the broken test indicate ? > > Yah, sorry I should wrote immidiately. Its impact ios really starnge, you are actually removing > "always true" but result is "less security" > > Issue is that suddenly JNLPClasslaoder with null security request (== sandbox permissions) started > to return resources. > Before it was not. See the logic of the test and the failure on line 311 sorry 293 >> >>> >>> J. >>> >>> see http://10.34.2.200/icedtea-web-dailyreport/ICWDR_1364327226/index.html for full info >> >> -Adam > From xerxes at zafena.se Fri Apr 12 06:41:44 2013 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Fri, 12 Apr 2013 15:41:44 +0200 Subject: FYI: IcedTea 3 JamVM and CACAO build system update. Message-ID: <51680F18.7040309@zafena.se> I have updated the IcedTea 3 build system to use the new OpenJDK 8 configure --with-import-hotspot option for JamVM and CACAO builds. http://icedtea.classpath.org/hg/icedtea/rev/de5854f8197d This change also pulled in the new JamVM with full JSR 292 invoke dynamic, JSR 308 and JEP 171 support. http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/log/ ./java -jamvm -version openjdk version "1.8.0-fcs" OpenJDK Runtime Environment (build 1.8.0-fcs-xranby_2013_03_28_12_21-b00) JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching) Cheers Xerxes From adomurad at icedtea.classpath.org Fri Apr 12 06:47:36 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Fri, 12 Apr 2013 13:47:36 +0000 Subject: /hg/icedtea-web: Present more information in unsigned applet con... Message-ID: changeset 234f159f8b4b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=234f159f8b4b author: Adam Domurad date: Fri Apr 12 09:49:28 2013 -0400 Present more information in unsigned applet confirmation. diffstat: ChangeLog | 11 +++++++++ netx/net/sourceforge/jnlp/resources/Messages.properties | 4 +- netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java | 12 +++++----- 3 files changed, 19 insertions(+), 8 deletions(-) diffs (90 lines): diff -r a94822453711 -r 234f159f8b4b ChangeLog --- a/ChangeLog Fri Apr 12 15:32:24 2013 +0200 +++ b/ChangeLog Fri Apr 12 09:49:28 2013 -0400 @@ -1,3 +1,14 @@ +2013-04-12 Adam Domurad + + Present more information in unsigned applet confirmation. + * netx/net/sourceforge/jnlp/resources/Messages.properties + (SRememberCodebase): Add codebase parameter. + (SUnsignedDetail): Change layout, add documentbase parameter. + * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java + (setupInfoPanel): Pass documentbase to SUnsignedDetail. + (createCheckBoxPanel): Ensure left-alignment. + (createButtonPanel): Less spacing above button. + 2013-04-12 Jiri Vanek Added help for extended applets security and settings diff -r a94822453711 -r 234f159f8b4b netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 12 15:32:24 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 12 09:49:28 2013 -0400 @@ -225,9 +225,9 @@ SHttpsUnverified=The website's HTTPS certificate cannot be verified. SRememberOption=Remember this option? SRememberAppletOnly=For applet -SRememberCodebase=For site +SRememberCodebase=For site {0} SUnsignedSummary=An unsigned Java application wants to run -SUnsignedDetail=An unsigned application from the following location wants to run:
    {0}

    It is recommended you only run applications from sites you trust. +SUnsignedDetail=An unsigned application from the following location wants to run:
      {0}
    The page which made the request was:
      {1}

    It is recommended you only run applications from sites you trust. SUnsignedAllowedBefore=You have accepted this applet previously. SUnsignedRejectedBefore=You have rejected this applet previously. SUnsignedQuestion=Allow the applet to run? diff -r a94822453711 -r 234f159f8b4b netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java --- a/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Fri Apr 12 15:32:24 2013 +0200 +++ b/netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java Fri Apr 12 09:49:28 2013 -0400 @@ -98,7 +98,7 @@ private final int PANE_WIDTH = 500; private final int TOP_PANEL_HEIGHT = 60; - private final int INFO_PANEL_HEIGHT = 100; + private final int INFO_PANEL_HEIGHT = 140; private final int INFO_PANEL_HINT_HEIGHT = 25; private final int QUESTION_PANEL_HEIGHT = 35; @@ -156,7 +156,7 @@ } private void setupInfoPanel() { - String infoLabelText = R("SUnsignedDetail", file.getCodeBase()); + String infoLabelText = R("SUnsignedDetail", file.getCodeBase(), file.getSourceLocation()); ExecuteUnsignedApplet rememberedAction = UnsignedAppletTrustConfirmation.getStoredAction(file); int panelHeight = INFO_PANEL_HEIGHT; if (rememberedAction == ExecuteUnsignedApplet.YES) { @@ -182,7 +182,7 @@ questionPanel.add(new JLabel(htmlWrap(R("SUnsignedQuestion"))), BorderLayout.EAST); questionPanel.setPreferredSize(new Dimension(PANE_WIDTH, QUESTION_PANEL_HEIGHT)); - questionPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + questionPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); add(questionPanel); } @@ -195,7 +195,7 @@ applyToAppletButton.setSelected(true); applyToAppletButton.setEnabled(false); // Start disabled until 'Remember this option' is selected - applyToCodeBaseButton = new JRadioButton(R("SRememberCodebase")); + applyToCodeBaseButton = new JRadioButton(htmlWrap(R("SRememberCodebase", file.getCodeBase()))); applyToCodeBaseButton.setEnabled(false); group.add(applyToAppletButton); @@ -208,7 +208,7 @@ } private JPanel createCheckBoxPanel() { - JPanel checkBoxPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + JPanel checkBoxPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); permanencyCheckBox = new JCheckBox(htmlWrap(R("SRememberOption"))); permanencyCheckBox.addActionListener(permanencyListener()); @@ -240,7 +240,7 @@ buttonPanel.add(rejectButton); buttonPanel.add(helpButton); - buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); return buttonPanel; } From adomurad at icedtea.classpath.org Fri Apr 12 07:20:55 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Fri, 12 Apr 2013 14:20:55 +0000 Subject: /hg/icedtea-web: Clean-up generated code. Message-ID: changeset bd86740a226d in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bd86740a226d author: Adam Domurad date: Fri Apr 12 10:04:36 2013 -0400 Clean-up generated code. diffstat: ChangeLog | 5 + netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java | 38 ++++----- 2 files changed, 23 insertions(+), 20 deletions(-) diffs (102 lines): diff -r 234f159f8b4b -r bd86740a226d ChangeLog --- a/ChangeLog Fri Apr 12 09:49:28 2013 -0400 +++ b/ChangeLog Fri Apr 12 10:04:36 2013 -0400 @@ -1,3 +1,8 @@ +2013-04-12 Adam Domurad + + * netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java: + Clean-up generated code. + 2013-04-12 Adam Domurad Present more information in unsigned applet confirmation. diff -r 234f159f8b4b -r bd86740a226d netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java --- a/netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java Fri Apr 12 09:49:28 2013 -0400 +++ b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java Fri Apr 12 10:04:36 2013 -0400 @@ -84,7 +84,7 @@ private void initComponents() { - jScrollPane1 = new javax.swing.JScrollPane(); + scrollPane = new javax.swing.JScrollPane(); mainHtmlPane = new javax.swing.JEditorPane(); mainPanel = new javax.swing.JPanel(); niceSeparator = new javax.swing.JSeparator(); @@ -97,23 +97,23 @@ getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS)); mainHtmlPane.setContentType("text/html"); mainHtmlPane.setEditable(false); - jScrollPane1.setViewportView(mainHtmlPane); - getContentPane().add(jScrollPane1); - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(mainPanel); - mainPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + scrollPane.setViewportView(mainHtmlPane); + getContentPane().add(scrollPane); + javax.swing.GroupLayout mainLayout = new javax.swing.GroupLayout(mainPanel); + mainPanel.setLayout(mainLayout); + mainLayout.setHorizontalGroup( + mainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 485, Short.MAX_VALUE) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel4Layout.createSequentialGroup() + .addGroup(mainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(mainLayout.createSequentialGroup() .addGap(0, 217, Short.MAX_VALUE) .addComponent(niceSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 218, Short.MAX_VALUE)))); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + mainLayout.setVerticalGroup( + mainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 10, Short.MAX_VALUE) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel4Layout.createSequentialGroup() + .addGroup(mainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(mainLayout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(niceSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)))); @@ -124,14 +124,14 @@ homeButton.setText(Translator.R("SPLASHHome")); homeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton2ActionPerformed(evt); + goToIntroSection(evt); } }); navigationPanel.add(homeButton); homeAndDialogueButton.setText(Translator.R("APPEXTSEChelpHomeDialogue")); homeAndDialogueButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton1ActionPerformed(evt); + goToDialogueSection(evt); } }); closeButton.addActionListener(new java.awt.event.ActionListener() { @@ -149,14 +149,12 @@ pack(); } - private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { - // TODO add your handling code here: + private void goToIntroSection(java.awt.event.ActionEvent evt) { mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); mainHtmlPane.setCaretPosition(1); } - private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { - // TODO add your handling code here: + private void goToDialogueSection(java.awt.event.ActionEvent evt) { mainHtmlPane.setText(Translator.R("APPEXTSEChelp")); mainHtmlPane.scrollToReference("dialogue"); } @@ -177,6 +175,6 @@ private JPanel navigationPanel; private JPanel closePanel; private JPanel mainPanel; - private JScrollPane jScrollPane1; + private JScrollPane scrollPane; private JSeparator niceSeparator; } From bugzilla-daemon at icedtea.classpath.org Fri Apr 12 09:27:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Apr 2013 16:27:18 +0000 Subject: [Bug 1393] JPEG support in build is broken on non-system-libjpeg builds In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1393 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Version|2.3.8 |7-hg Target Milestone|--- |2.5.0 Severity|normal |minor --- Comment #1 from Andrew John Hughes --- While I accept this is a bug, it's not one that occurs via IcedTea builds or even if someone takes it upon themselves to build the forest manually, as this should turn on system JPEG support when jdk_generic_profile.sh is run. We'll try and look at it for 2.5.x. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130412/3f4af005/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Apr 12 09:29:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Apr 2013 16:29:33 +0000 Subject: [Bug 1392] Minecraft In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1392 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Component|Plugin |IcedTea Resolution|--- |WONTFIX Assignee|dbhole at redhat.com |gnu.andrew at redhat.com --- Comment #1 from Andrew John Hughes --- How do you reproduce this? It doesn't even appear to be IcedTea as I see no IcedTea version in the output. We also don't support Windows at present. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130412/67b46e3f/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Apr 12 09:30:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Apr 2013 16:30:07 +0000 Subject: [Bug 1392] Minecraft In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1392 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|WONTFIX |INVALID --- Comment #2 from Andrew John Hughes --- Invalid as not an IcedTea failure. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130412/ba7e3a1a/attachment.html From gnu.andrew at redhat.com Fri Apr 12 14:10:08 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 12 Apr 2013 17:10:08 -0400 (EDT) Subject: Commits to IcedTea Message-ID: <290476893.192139.1365801008145.JavaMail.root@redhat.com> Please, when committing to IcedTea, remember that a ChangeLog entry should be included, detailing what changes were made. Also, if you fix a bug (or backport a fix from OpenJDK), the NEWS file should be updated so we list the work in the next release announcement. 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 bugzilla-daemon at icedtea.classpath.org Sat Apr 13 21:32:51 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 04:32:51 +0000 Subject: [Bug 1394] New: Java crash with SIGSEGV Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1394 Bug ID: 1394 Summary: Java crash with SIGSEGV Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: div at yandex.ru CC: unassigned at icedtea.classpath.org Created attachment 854 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=854&action=edit The error report file. I'm still working on localizing this bug, it appears to be happening only when on hadoop and only when split contains entries in specific order. Please find crash-log attached. I hope someone will figure this out before I manage to reproduce it without involving hadoop... -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/d2e66206/attachment.html From thomas at m3y3r.de Sun Apr 14 03:46:25 2013 From: thomas at m3y3r.de (Thomas Meyer) Date: Sun, 14 Apr 2013 12:46:25 +0200 Subject: PluginAppletViewer.showDocument broken? In-Reply-To: <1363960798.11400.3.camel@localhost.localdomain> References: <1362851464.1220.5.camel@localhost.localdomain> <513F0A27.3090803@redhat.com> <1363166293.1218.9.camel@localhost.localdomain> <51407AD3.2020409@redhat.com> <5141A1D3.8060803@redhat.com> <1363960798.11400.3.camel@localhost.localdomain> Message-ID: <1365936385.15300.2.camel@localhost.localdomain> Am Freitag, den 22.03.2013, 14:59 +0100 schrieb Thomas Meyer: > Hello. > > Just to inform you and the google search engine what I found out: > > Using IcedTea-Web Plugin (using IcedTea-Web 1.3.1 > (fedora-3.fc18-x86_64)): > > Firefox 18.0.2 works correctly - > https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/18.0.2/linux-x86_64/de/firefox-18.0.2.tar.bz2 > > Firefox 19.0.2 fails to connect to the Juniper SSLVPN release [7.1.0] - > build number [20169] build comment [R6] > https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/19.0.2/linux-x86_64/de/firefox-19.0.2.tar.bz2 > > So either firefox broke something or the juniper software with seems to > use a lot of javascript foo, is not compatible with the new firefox > version... I bisected the problem to this commit in the firefox source code: https://bugzilla.mozilla.org/show_bug.cgi?id=854890 https://bugzilla.mozilla.org/show_bug.cgi?id=799875 So the breakage happened in firefox. > kind regards > thomas > > > I'm not able to reproduce this issue. > > The new document opened both with "_top" directive and without. > > > > If you will be able to prepare some minimalistic reproducer it will be appreciated, otherwise maybe your browser can be broken? > > Or some selinux policy? Or whatever can block new window. Browsers are becoming to dont like java so maybe browser update and not icedtea-web's one could break your app. > > /me moreover just cooking from water > > > > > > J. > > > > On 03/13/2013 02:10 PM, Adam Domurad wrote: > > > On 03/13/2013 05:18 AM, Thomas Meyer wrote: > > >> Hi, > > >> > > >> there seems to be another regression in the current tip. > > >> > > >> For remote log on to my employers site I use the the > > >> SecureHCLauncherApplet. > > >> > > >> this applet has a the init() and start() method overwritten. > > >> > > >> the last thing that is executed in the start() method is a > > >> PluginAppletViewer.showDocument(). > > >> > > >> stack trace is: > > >> Thread [NetxPanelThread at https://employer.com/blabla] (Ausgesetzt) (nicht synchron) > > >> PluginAppletViewer.showDocument(URL, String) Zeile: 921 (nicht synchron) > > >> SecureHCLauncher.onFinishedLoadingWithAction(String) Zeile: 388 > > >> SecureHCLauncher.onFinishedLoading() Zeile: 369 [lokale Variablen nicht verf?gbar] > > >> SecureHCLauncher.doInstall() Zeile: 266 > > >> SecureHCLauncher(SecureLauncherApplet).start() Zeile: 223 > > >> SecureHCLauncher.start() Zeile: 205 > > >> NetxPanel(AppletPanel).run() Zeile: 476 > > >> Thread.run() Zeile: 722 > > >> > > >> The log also has this info: > > >> WRITING 2: instance 9 reference 187 LoadURL https://successful-auth-site.com _top > > >> PIPE: appletviewer wrote: instance 9 reference 187 LoadURL https://successful-auth-site.com _top > > >> WRITING 2 DONE > > >> PIPE: appletviewer read: instance 9 destroy > > >> Waiting for data... > > >> > > >> The problem is, that the URL request to show in the current browser window ( == "_top") is never loaded/shown in the browser! > > >> > > >> This used to work for some months ago. I didn't try to login remotely for a while to this site... > > >> > > >> ideas are welcome! > > >> > > >> with kind regards > > >> thomas > > >> > > > > > > Hi! Taking it to distro-list. > > > Have you tried with older versions of icedtea-web on the same website ? > > > I will look into it. > > > > > > Thanks, > > > -Adam > > > From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 10:33:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 17:33:55 +0000 Subject: [Bug 1221] Internal Error (os_linux_zero.cpp:270), pid=789, tid=1082680432 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1221 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Resolution|--- |WONTFIX --- Comment #1 from Andrew John Hughes --- Both 1.10.x and 1.8.x are no longer supported. Please reopen if you can replicate this on a current version. Thanks. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/eb5b5c3f/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 10:48:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 17:48:43 +0000 Subject: [Bug 1300] Support for X32 ABI x86_64-linux-gnux32 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1300 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |gnu.andrew at redhat.com Component|Zero |IcedTea Assignee|chphilli at redhat.com |gnu.andrew at redhat.com Target Milestone|--- |2.5.0 --- Comment #6 from Andrew John Hughes --- I'll try and look at getting some x32 libs on locally and trying this. I was thinking of doing this just the other week. Have you verified how much of the resulting JDK is x32? The configure flags look wrong if you're doing a cross-compile and the install locations are pointless until IcedTea has an install target. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/1bfcc4ea/attachment.html From andrew at icedtea.classpath.org Sun Apr 14 13:05:26 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:05:26 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset bcad714e7c48 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bcad714e7c48 author: Andrew John Hughes date: Fri Apr 12 22:06:38 2013 +0100 Add missing NEWS entry and ChangeLog for last commit. 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit. * ChangeLog: Add missing entry for last commit. changeset 44dda0c0c865 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=44dda0c0c865 author: Andrew John Hughes date: Sun Apr 14 21:05:17 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-12 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLParameters if needed. * configure.ac: Check for javax.net.ssl.SSLParameters. diffstat: ChangeLog | 24 ++++++++++++++++++++++++ Makefile.am | 6 ++++++ NEWS | 1 + configure.ac | 3 +++ 4 files changed, 34 insertions(+), 0 deletions(-) diffs (71 lines): diff -r 3584aac9d62d -r 44dda0c0c865 ChangeLog --- a/ChangeLog Fri Apr 05 09:01:48 2013 -0400 +++ b/ChangeLog Sun Apr 14 21:05:17 2013 +0100 @@ -1,3 +1,27 @@ +2013-04-12 Andrew John Hughes + + PR1336: Bootstrap failure on Fedora 17/18 + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLParameters + if needed. + * configure.ac: Check for javax.net.ssl.SSLParameters. + +2013-04-12 Andrew John Hughes + + * NEWS: Add PR1362 from last commit. + * ChangeLog: Add missing entry for last + commit. + +2013-04-05 Chris Phillips + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + Fix failure in the register allocation logic, + diagnosed by Andrew Haley to be an issue with + PUSH/POP macro's and assumption of order of + evaluation of arguments. The fix includes + detection of the condition and bailing from the + compilation if a similar failure is detected. + 2013-03-26 Andrew John Hughes * Makefile.am: diff -r 3584aac9d62d -r 44dda0c0c865 Makefile.am --- a/Makefile.am Fri Apr 05 09:01:48 2013 -0400 +++ b/Makefile.am Sun Apr 14 21:05:17 2013 +0100 @@ -127,6 +127,12 @@ $(SHARE)/javax/security/sasl/Sasl.java endif +# PR 56553 - SSLParameters support missing +if LACKS_SSLPARAMETERS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/SSLParameters.java +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) diff -r 3584aac9d62d -r 44dda0c0c865 NEWS --- a/NEWS Fri Apr 05 09:01:48 2013 -0400 +++ b/NEWS Sun Apr 14 21:05:17 2013 +0100 @@ -23,6 +23,7 @@ * Bug fixes - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) + - PR1362: Fedora 19 / rawhide FTBFS SIGILL New in release 1.12.4 (2013-03-04): diff -r 3584aac9d62d -r 44dda0c0c865 configure.ac --- a/configure.ac Fri Apr 05 09:01:48 2013 -0400 +++ b/configure.ac Sun Apr 14 21:05:17 2013 +0100 @@ -118,6 +118,9 @@ # PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field IT_CHECK_FOR_STATIC_FIELD([JAVAX_SECURITY_SASL_SASL_CREDENTIALS],[CREDENTIALS],[javax.security.sasl.Sasl]) +# PR 56553 - SSLParameters support missing +IT_CHECK_FOR_CLASS([SSLPARAMETERS],[javax.net.ssl.SSLParameters]) + # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) AC_SUBST(XVFB_RUN_CMD) From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 13:05:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:05:39 +0000 Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362 --- Comment #4 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=bcad714e7c48 author: Andrew John Hughes date: Fri Apr 12 22:06:38 2013 +0100 Add missing NEWS entry and ChangeLog for last commit. 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit. * ChangeLog: Add missing entry for last commit. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/534f79bb/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 13:05:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:05:46 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=44dda0c0c865 author: Andrew John Hughes date: Sun Apr 14 21:05:17 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-12 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLParameters if needed. * configure.ac: Check for javax.net.ssl.SSLParameters. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/387ad65e/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 13:06:54 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:06:54 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|6-1.11.10 |6-1.12.5 --- Comment #3 from Andrew John Hughes --- Doesn't affect 1.11.x as it brings in many more classes. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/bd324de3/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 13:09:35 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:09:35 +0000 Subject: [Bug 1394] Java crash with SIGSEGV In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1394 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #854|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/580b0d3c/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Apr 14 13:10:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 14 Apr 2013 20:10:26 +0000 Subject: [Bug 1394] Java crash with SIGSEGV In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1394 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew John Hughes --- This is a failure in native code, as far as I can see. It also doesn't appear to be IcedTea. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130414/d72d05c0/attachment.html From ptisnovs at icedtea.classpath.org Mon Apr 15 01:48:28 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 15 Apr 2013 08:48:28 +0000 Subject: /hg/rhino-tests: Updated four tests in SimpleBindingsClass for (... Message-ID: changeset 46a9ca22d451 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=46a9ca22d451 author: Pavel Tisnovsky date: Mon Apr 15 10:51:45 2013 +0200 Updated four tests in SimpleBindingsClass for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/SimpleBindingsClassTest.java | 66 +++++++++++++++++++++++- 2 files changed, 69 insertions(+), 4 deletions(-) diffs (127 lines): diff -r 857eee8c4f34 -r 46a9ca22d451 ChangeLog --- a/ChangeLog Thu Apr 11 11:03:34 2013 +0200 +++ b/ChangeLog Mon Apr 15 10:51:45 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-15 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleBindingsClassTest.java: + Updated four tests in SimpleBindingsClass for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-11 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r 857eee8c4f34 -r 46a9ca22d451 src/org/RhinoTests/SimpleBindingsClassTest.java --- a/src/org/RhinoTests/SimpleBindingsClassTest.java Thu Apr 11 11:03:34 2013 +0200 +++ b/src/org/RhinoTests/SimpleBindingsClassTest.java Mon Apr 15 10:51:45 2013 +0200 @@ -288,6 +288,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); testedConstructors_jdk6.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); @@ -295,8 +296,21 @@ testedConstructors_jdk7.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); testedConstructors_jdk7.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); + testedConstructors_jdk8.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); + testedConstructors_jdk8.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.simpleBindingsClass.getConstructors(); @@ -321,6 +335,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); testedConstructors_jdk6.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); @@ -328,8 +343,21 @@ testedConstructors_jdk7.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); testedConstructors_jdk7.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); + testedConstructors_jdk8.put("public javax.script.SimpleBindings(java.util.Map)", "javax.script.SimpleBindings"); + testedConstructors_jdk8.put("public javax.script.SimpleBindings()", "javax.script.SimpleBindings"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.simpleBindingsClass.getDeclaredConstructors(); @@ -359,7 +387,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -393,7 +436,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk8.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Mon Apr 15 01:51:24 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 15 Apr 2013 08:51:24 +0000 Subject: /hg/gfx-test: Eight new tests added into BitBltConvolveOp test s... Message-ID: changeset 333cbb14438b in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=333cbb14438b author: Pavel Tisnovsky date: Mon Apr 15 10:54:43 2013 +0200 Eight new tests added into BitBltConvolveOp test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltConvolveOp.java | 112 +++++++++++++++++++++++ 2 files changed, 117 insertions(+), 0 deletions(-) diffs (134 lines): diff -r 010bd56c0282 -r 333cbb14438b ChangeLog --- a/ChangeLog Thu Apr 11 11:33:40 2013 +0200 +++ b/ChangeLog Mon Apr 15 10:54:43 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-15 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltConvolveOp.java: + Eight new tests added into BitBltConvolveOp test suite. + 2013-04-11 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r 010bd56c0282 -r 333cbb14438b src/org/gfxtest/testsuites/BitBltConvolveOp.java --- a/src/org/gfxtest/testsuites/BitBltConvolveOp.java Thu Apr 11 11:33:40 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltConvolveOp.java Mon Apr 15 10:54:43 2013 +0200 @@ -357,6 +357,118 @@ } /** + * Test basic BitBlt operation for grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, noopROP); + } + + /** + * Test basic BitBlt operation for grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundSmoothingKernel2x2ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel2x2ROP); + } + + /** + * Test basic BitBlt operation for grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundSmoothingKernel3x3ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel3x3ROP); + } + + /** + * Test basic BitBlt operation for grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundSmoothingKernel5x5ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel5x5ROP); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, noopROP); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundSmoothingKernel2x2ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel2x2ROP); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundSmoothingKernel3x3ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel3x3ROP); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundSmoothingKernel5x5ROP(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, smoothingKernel5x5ROP); + } + + /** * Entry point to the test suite. * * @param args not used in this case From doko at ubuntu.com Mon Apr 15 03:54:44 2013 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 15 Apr 2013 12:54:44 +0200 Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 Message-ID: <516BDC74.6060809@ubuntu.com> I'm trying to update the ecj.jar shipped with Debian and Ubuntu, then noticing build problems not yet reported, and then noticing about the updated version in Fedora. Isn't the OpenJDK bootstrap used anymore? See http://gcc.gnu.org/ml/java-patches/2013-q2/msg00009.html for the ecj updates (R3_8_2), the jar can be found at http://people.debian.org/~doko/tmp/eclipse-gcj/. Tried to build the 2.3.x branch with this new javac. The build fails first in the stamps/rt-class-files.stamp target with some hundred warnings: 1. ERROR in .../openjdk-boot/jdk/src/share/classes/java/lang/Thread.java (at line 1619) Map m = new HashMap<>(threads.length); ^^^^^^^ '<>' operator is not allowed for source level below 1.7 Setting IT_LANGUAGE_SOURCE_VERSION=7 and IT_CLASS_TARGET_VERSION=7 fixes this for me. Is there anything going wrong when setting this to 7 for the stage1 build? If not, then these two macros should be set by autoconf depending on the compiler accepting this operator. Next the build fails for some java classes (ecj-hacks.diff). Could somebody look at these errors? Are these ecj compiler bugs? My work around was to comment out the offending lines, and add these hacks to ICEDTEA_BOOT_PATCHES. The resulting build and jtreg runs look fine to me. Matthias -------------- next part -------------- jaxws: compile: [javac] Compiling 2737 source files to /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/jaxws/build/classes [javac] Annotation processing got disabled, since it requires a 1.6 compliant JVM [javac] ---------- [javac] 1. ERROR in /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java (at line 113) [javac] params.setSSLParameters (getSSLContext().getDefaultSSLParameters()); [javac] ^^^^^^^^^^^^^^^^^^^^^^^ [javac] The method getDefaultSSLParameters() is undefined for the type SSLContext [javac] ---------- [javac] ---------- [javac] 2. ERROR in /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java (at line 81) [javac] engine.setSSLParameters (sslParams); [javac] ^^^^^^^^^^^^^^^^ [javac] The method setSSLParameters(SSLParameters) is undefined for the type SSLEngine [javac] ---------- [javac] 2 problems (2 errors) BUILD FAILED /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jaxws/build.xml:149: Compile failed; see the compiler error output for details. jdk/make/java/management: make[5]: Entering directory `/scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/make/java/management' rm -f /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_pt_BR.java # Adding to compile properties list: ../../../src/share/classes/sun/management/resources/agent_pt_BR.properties -> /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_pt_BR.java /bin/echo -e "-compile ../../../src/share/classes/sun/management/resources/agent_pt_BR.properties /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_pt_BR.java ListResourceBundle" >> /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/tmp/java/java.lang.management/management/compile_prop_options /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/bootstrap/jdk1.6.0/bin/java -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput -Xmx512m -Xms512m -XX:PermSize=32m -XX:MaxPermSize=160m -jar /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/btjars/compileproperties.jar -optionsfile /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/tmp/java/java.lang.management/management/compile_prop_options parsing: ../../../src/share/classes/sun/management/resources/agent_pt_BR.properties inferred package name: sun.management.resources wrote: /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_pt_BR.java # Java sources to be compiled: (listed in file /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/tmp/java/java.lang.management/management/.classes.list) ../../../src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java ../../../src/share/classes/com/sun/management/GarbageCollectorMXBean.java ../../../src/share/classes/com/sun/management/GcInfo.java ../../../src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ../../../src/share/classes/com/sun/management/OperatingSystemMXBean.java ../../../src/share/classes/com/sun/management/ThreadMXBean.java ../../../src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java ../../../src/share/classes/com/sun/management/VMOption.java ../../../src/share/classes/java/lang/management/BufferPoolMXBean.java ../../../src/share/classes/java/lang/management/PlatformComponent.java ../../../src/share/classes/java/lang/management/PlatformLoggingMXBean.java ../../../src/share/classes/java/lang/management/PlatformManagedObject.java ../../../src/share/classes/sun/management/Agent.java ../../../src/share/classes/sun/management/AgentConfigurationError.java ../../../src/share/classes/sun/management/ClassLoadingImpl.java ../../../src/share/classes/sun/management/CompilationImpl.java ../../../src/share/classes/sun/management/CompilerThreadStat.java ../../../src/share/classes/sun/management/ConnectorAddressLink.java ../../../src/share/classes/sun/management/FileSystem.java ../../../src/share/classes/sun/management/Flag.java ../../../src/share/classes/sun/management/GarbageCollectionNotifInfoCompositeData.java ../../../src/share/classes/sun/management/GarbageCollectorImpl.java ../../../src/share/classes/sun/management/GcInfoBuilder.java ../../../src/share/classes/sun/management/GcInfoCompositeData.java ../../../src/share/classes/sun/management/HotSpotDiagnostic.java ../../../src/share/classes/sun/management/HotspotClassLoading.java ../../../src/share/classes/sun/management/HotspotClassLoadingMBean.java ../../../src/share/classes/sun/management/HotspotCompilation.java ../../../src/share/classes/sun/management/HotspotCompilationMBean.java ../../../src/share/classes/sun/management/HotspotInternal.java ../../../src/share/classes/sun/management/HotspotInternalMBean.java ../../../src/share/classes/sun/management/HotspotMemory.java ../../../src/share/classes/sun/management/HotspotMemoryMBean.java ../../../src/share/classes/sun/management/HotspotRuntime.java ../../../src/share/classes/sun/management/HotspotRuntimeMBean.java ../../../src/share/classes/sun/management/HotspotThread.java ../../../src/share/classes/sun/management/HotspotThreadMBean.java ../../../src/share/classes/sun/management/LazyCompositeData.java ../../../src/share/classes/sun/management/LockDataConverter.java ../../../src/share/classes/sun/management/LockDataConverterMXBean.java ../../../src/share/classes/sun/management/ManagementFactory.java ../../../src/share/classes/sun/management/ManagementFactoryHelper.java ../../../src/share/classes/sun/management/MappedMXBeanType.java ../../../src/share/classes/sun/management/MemoryImpl.java ../../../src/share/classes/sun/management/MemoryManagerImpl.java ../../../src/share/classes/sun/management/MemoryNotifInfoCompositeData.java ../../../src/share/classes/sun/management/MemoryPoolImpl.java ../../../src/share/classes/sun/management/MemoryUsageCompositeData.java ../../../src/share/classes/sun/management/MethodInfo.java ../../../src/share/classes/sun/management/MonitorInfoCompositeData.java ../../../src/share/classes/sun/management/NotificationEmitterSupport.java ../../../src/share/classes/sun/management/OperatingSystemImpl.java ../../../src/share/classes/sun/management/RuntimeImpl.java ../../../src/share/classes/sun/management/Sensor.java ../../../src/share/classes/sun/management/StackTraceElementCompositeData.java ../../../src/share/classes/sun/management/ThreadImpl.java ../../../src/share/classes/sun/management/ThreadInfoCompositeData.java ../../../src/share/classes/sun/management/Util.java ../../../src/share/classes/sun/management/VMManagement.java ../../../src/share/classes/sun/management/VMManagementImpl.java ../../../src/share/classes/sun/management/VMOptionCompositeData.java ../../../src/share/classes/sun/management/counter/AbstractCounter.java ../../../src/share/classes/sun/management/counter/ByteArrayCounter.java ../../../src/share/classes/sun/management/counter/Counter.java ../../../src/share/classes/sun/management/counter/LongArrayCounter.java ../../../src/share/classes/sun/management/counter/LongCounter.java ../../../src/share/classes/sun/management/counter/StringCounter.java ../../../src/share/classes/sun/management/counter/Units.java ../../../src/share/classes/sun/management/counter/Variability.java ../../../src/share/classes/sun/management/counter/perf/ByteArrayCounterSnapshot.java ../../../src/share/classes/sun/management/counter/perf/InstrumentationException.java ../../../src/share/classes/sun/management/counter/perf/LongArrayCounterSnapshot.java ../../../src/share/classes/sun/management/counter/perf/LongCounterSnapshot.java ../../../src/share/classes/sun/management/counter/perf/PerfByteArrayCounter.java ../../../src/share/classes/sun/management/counter/perf/PerfDataEntry.java ../../../src/share/classes/sun/management/counter/perf/PerfDataType.java ../../../src/share/classes/sun/management/counter/perf/PerfInstrumentation.java ../../../src/share/classes/sun/management/counter/perf/PerfLongArrayCounter.java ../../../src/share/classes/sun/management/counter/perf/PerfLongCounter.java ../../../src/share/classes/sun/management/counter/perf/PerfStringCounter.java ../../../src/share/classes/sun/management/counter/perf/Prologue.java ../../../src/share/classes/sun/management/counter/perf/StringCounterSnapshot.java ../../../src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java ../../../src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java ../../../src/share/classes/sun/management/jmxremote/SingleEntryRegistry.java ../../../src/solaris/classes/com/sun/management/OSMBeanFactory.java ../../../src/solaris/classes/com/sun/management/UnixOperatingSystem.java ../../../src/solaris/classes/sun/management/FileSystemImpl.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_de.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_es.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_fr.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_it.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_ja.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_ko.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_pt_BR.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_sv.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_zh_CN.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_zh_HK.java /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build/sun/management/resources/agent_zh_TW.java # Running javac: /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/bootstrap/jdk1.6.0/bin/javac -J-XX:ThreadStackSize=1536 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -g -Xlint:-path -source 7 -target 7 -encoding ascii -Xbootclasspath:/scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/classes -sourcepath /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/generated.build:../../../src/solaris/classes:../../../src/share/classes -bootclasspath /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/classes:/scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/bootstrap/jdk1.6.0/jre/lib/rt.jar -d /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/classes @/scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk.build-boot/tmp/java/java.lang.management/management/.classes.list Annotation processing got disabled, since it requires a 1.6 compliant JVM ---------- 1. ERROR in /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java (at line 700) return new SslRMIServerSocketFactory( ctx, enabledCipherSuites, enabledProtocols, sslNeedClientAuth); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The constructor SslRMIServerSocketFactory(SSLContext, String[], String[], boolean) is undefined ---------- 1 problem (1 error)make[5]: *** [.compile.classlist] Error 255 make[5]: Leaving directory `/scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/make/java/management' make[4]: *** [all] Error 1 --- openjdk-boot/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java~ 2013-03-04 22:51:01.000000000 +0100 +++ openjdk-boot/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java 2013-04-15 11:27:51.301325575 +0200 @@ -110,7 +110,8 @@ * @since 1.6 */ public void configure (HttpsParameters params) { - params.setSSLParameters (getSSLContext().getDefaultSSLParameters()); + // FIXME: ecj 3.8 compiler error + // params.setSSLParameters (getSSLContext().getDefaultSSLParameters()); } //END_TIGER_EXCLUDE } --- openjdk-boot/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java~ 2013-03-04 22:51:01.000000000 +0100 +++ openjdk-boot/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java 2013-04-15 11:30:07.986236354 +0200 @@ -78,7 +78,8 @@ cfg.configure (params); SSLParameters sslParams = params.getSSLParameters(); if (sslParams != null) { - engine.setSSLParameters (sslParams); + // FIXME: ecj 3.8 compiler error + // engine.setSSLParameters (sslParams); } else //END_TIGER_EXCLUDE { --- openjdk-boot/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java~ 2013-03-04 22:51:01.000000000 +0100 +++ openjdk-boot/jdk/src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java 2013-04-15 11:44:22.643900980 +0200 @@ -697,8 +697,9 @@ SSLContext ctx = SSLContext.getInstance("SSL"); ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + // FIXME: ecj 3.8 compiler error return new SslRMIServerSocketFactory( - ctx, + // ctx, enabledCipherSuites, enabledProtocols, sslNeedClientAuth); From gnu.andrew at redhat.com Mon Apr 15 06:31:29 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 15 Apr 2013 09:31:29 -0400 (EDT) Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <516BDC74.6060809@ubuntu.com> References: <516BDC74.6060809@ubuntu.com> Message-ID: <605748557.434143.1366032689242.JavaMail.root@redhat.com> ----- Original Message ----- > I'm trying to update the ecj.jar shipped with Debian and Ubuntu, then > noticing > build problems not yet reported, and then noticing about the updated version > in > Fedora. Isn't the OpenJDK bootstrap used anymore? > Yes, I do a full bootstrap on every change. I use either the gcj version of ecj with CACAO or the later 3.6 natively compiled for gcj: $ /home/andrew/build/cacao-jdk/bin/javac -version Eclipse Java Compiler 0.972_R35x, 3.5.1 release, Copyright IBM Corp 2000, 2009. All rights reserved. $ /usr/lib/gcj-jdk-4.8.0/bin/javac -version Eclipse Compiler for Java(TM) 0.A58, 3.6.0, Copyright IBM Corp 2000, 2010. All rights reserved. I have 3.8/4.2 installed too, but it doesn't even build with gcj. > See http://gcc.gnu.org/ml/java-patches/2013-q2/msg00009.html for the ecj > updates > (R3_8_2), the jar can be found at > http://people.debian.org/~doko/tmp/eclipse-gcj/. > I see this has literally just been posted. I asked you about updating the version used by gcj some time ago, but don't recall ever seeing a reply. > Tried to build the 2.3.x branch with this new javac. > > The build fails first in the stamps/rt-class-files.stamp target with some > hundred warnings: > > 1. ERROR in .../openjdk-boot/jdk/src/share/classes/java/lang/Thread.java > (at > line 1619) > Map m = new HashMap<>(threads.length); > ^^^^^^^ > '<>' operator is not allowed for source level below 1.7 > > Setting IT_LANGUAGE_SOURCE_VERSION=7 and IT_CLASS_TARGET_VERSION=7 fixes this > for me. Is there anything going wrong when setting this to 7 for the stage1 > build? If not, then these two macros should be set by autoconf depending on > the > compiler accepting this operator. > It does. You have a configuration error here, whereby configure is detecting you have a javac capable of using <> and is not applying the diamond patch. Please post your config.log. > > Next the build fails for some java classes (ecj-hacks.diff). Could somebody > look at these errors? Are these ecj compiler bugs? My work around was to > comment out the offending lines, and add these hacks to ICEDTEA_BOOT_PATCHES. > The resulting build and jtreg runs look fine to me. The build works fine for me using the above mentioned versions of ecj. Please stick to these for now. > > Matthias > -- 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 gnu.andrew at redhat.com Mon Apr 15 06:37:53 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 15 Apr 2013 09:37:53 -0400 (EDT) Subject: FYI: IcedTea 3 JamVM and CACAO build system update. In-Reply-To: <51680F18.7040309@zafena.se> References: <51680F18.7040309@zafena.se> Message-ID: <1509439130.440348.1366033073112.JavaMail.root@redhat.com> ----- Original Message ----- > I have updated the IcedTea 3 build system to use the new > OpenJDK 8 configure --with-import-hotspot option for JamVM and CACAO builds. > http://icedtea.classpath.org/hg/icedtea/rev/de5854f8197d > > This change also pulled in the new JamVM with full JSR 292 invoke dynamic, > JSR 308 and JEP 171 support. > http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/log/ > > ./java -jamvm -version > openjdk version "1.8.0-fcs" > OpenJDK Runtime Environment (build 1.8.0-fcs-xranby_2013_03_28_12_21-b00) > JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching) > > Cheers > Xerxes > > > Thanks for doing this. Can you sync the JamVM bump to 6 & 7 too? 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 gnu.andrew at redhat.com Mon Apr 15 06:38:42 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 15 Apr 2013 09:38:42 -0400 (EDT) Subject: FYI: IcedTea 3 JamVM and CACAO build system update. In-Reply-To: <51680F18.7040309@zafena.se> References: <51680F18.7040309@zafena.se> Message-ID: <968119988.440871.1366033122043.JavaMail.root@redhat.com> ----- Original Message ----- > I have updated the IcedTea 3 build system to use the new > OpenJDK 8 configure --with-import-hotspot option for JamVM and CACAO builds. > http://icedtea.classpath.org/hg/icedtea/rev/de5854f8197d > > This change also pulled in the new JamVM with full JSR 292 invoke dynamic, > JSR 308 and JEP 171 support. > http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/log/ > > ./java -jamvm -version > openjdk version "1.8.0-fcs" > OpenJDK Runtime Environment (build 1.8.0-fcs-xranby_2013_03_28_12_21-b00) > JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching) > > Cheers > Xerxes > > > Also, when committing, please add a summary line at the top of your commit as I have absolutely no idea looking at: http://icedtea.classpath.org/hg/icedtea/ what your commit is about without clicking on it. Ditto from hg log/tip. -- 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 Mon Apr 15 07:18:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 15 Apr 2013 14:18:59 +0000 Subject: [Bug 1395] New: Bug javaws.itweb / icedtea with JNLP Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1395 Bug ID: 1395 Summary: Bug javaws.itweb / icedtea with JNLP Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: lcestari at redhat.com CC: unassigned at icedtea.classpath.org Created attachment 855 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=855&action=edit Reproducer of the problem Description of problem: The /usr/bin/javaws.itweb (icedtea) can't use JNLP. I How reproducible: Can follow the mkyong guide or the files attached. http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/ Steps to Reproduce: Create a JNLP and try to use it. Actual results: An error message appears and the VM halts. Expected results: Open a Swing window. Additional info: Error message when executing the program-> lcestari at dhcp-32-133 ROOT$ /usr/bin/javaws.itweb -verbose Test.jnlp No User level deployment.properties found. Starting security dialog thread Using firefox's profiles file: /home/lcestari/.mozilla/firefox/profiles.ini Found preferences file: /home/lcestari/.mozilla/firefox/uuxg95qg.default/prefs.js Read 75 entries from Firefox's preferences JNLP file location: Test.jnlp Status: CONNECTED DOWNLOADED STARTED +(CONNECTED DOWNLOADED STARTED) @ /home/lcestari/servers/apache-tomcat-7.0.39/webapps/ROOT/Test.jnlp line: 2 line: 3 line: 4 Jnlp Testing line: 5 YONG MOOK KIM line: 6 line: 7 Testing Testing line: 8 line: 9 line: 10 line: 11 line: 12 line: 13 line: 14 line: 15 line: 16 line: 17 line: 18 Homepage: http://localhost:8080/ Description: Testing Testing Acceptable title tag found, contains: Jnlp Testing Acceptable vendor tag found, contains: YONG MOOK KIM normalizing path /Test.jnlp in http://localhost:8080/Test.jnlp Test.jnlp chunk needs to be encoded => Test.jnlp normalizing query null in http://localhost:8080/Test.jnlp Nothing was normalized in this url Status: CONNECT STARTED +(CONNECT STARTED) @ /Test.jnlp Status: CONNECT DOWNLOAD STARTED +(DOWNLOAD) @ /Test.jnlp Status: CONNECTING DOWNLOAD STARTED +(CONNECTING) -(CONNECT) @ /Test.jnlp All possible urls for location=http://localhost:8080/Test.jnlp state=CONNECTING DOWNLOAD STARTED : [http://localhost:8080/Test.jnlp, http://localhost:8080/Test.jnlp] Selecting proxy for: http://localhost:8080/Test.jnlp Browser selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] Selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] Selecting proxy for: http://localhost:8080/Test.jnlp Browser selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] Selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] java.lang.NullPointerException at net.sourceforge.jnlp.cache.ResourceTracker.initializeResource(ResourceTracker.java:796) at net.sourceforge.jnlp.cache.ResourceTracker.processResource(ResourceTracker.java:629) at net.sourceforge.jnlp.cache.ResourceTracker.access$500(ResourceTracker.java:75) at net.sourceforge.jnlp.cache.ResourceTracker$Downloader$1.run(ResourceTracker.java:1131) at net.sourceforge.jnlp.cache.ResourceTracker$Downloader$1.run(ResourceTracker.java:1129) at java.security.AccessController.doPrivileged(Native Method) at net.sourceforge.jnlp.cache.ResourceTracker$Downloader.run(ResourceTracker.java:1129) at java.lang.Thread.run(Thread.java:722) Status: CONNECTING DOWNLOAD ERROR STARTED +(ERROR) @ /Test.jnlp Selecting proxy for: http://localhost:8080/Test.jnlp Browser selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] Selected proxies: [HTTP @ squid.corp.redhat.com/10.11.255.147:3128] netx: Read Error: Could not read or parse the JNLP file. (Server returned HTTP response code: 400 for URL: http://localhost:8080/Test.jnlp) net.sourceforge.jnlp.LaunchException: Fatal: Read Error: Could not read or parse the JNLP file. at net.sourceforge.jnlp.Launcher.fromUrl(Launcher.java:491) at net.sourceforge.jnlp.Launcher.launch(Launcher.java:283) at net.sourceforge.jnlp.runtime.Boot.run(Boot.java:202) at net.sourceforge.jnlp.runtime.Boot.run(Boot.java:51) at java.security.AccessController.doPrivileged(Native Method) at net.sourceforge.jnlp.runtime.Boot.main(Boot.java:168) Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8080/Test.jnlp at net.sourceforge.jnlp.JNLPFile.openURL(JNLPFile.java:284) at net.sourceforge.jnlp.JNLPFile.(JNLPFile.java:214) at net.sourceforge.jnlp.JNLPFile.(JNLPFile.java:190) at net.sourceforge.jnlp.JNLPFile.(JNLPFile.java:175) at net.sourceforge.jnlp.JNLPFile.(JNLPFile.java:161) at net.sourceforge.jnlp.Launcher.fromUrl(Launcher.java:477) ... 5 more Using oracle jdk it works: lcestari at dhcp-32-133 ROOT$ javaws -verbose Test.jnlp Java(TM) Web Start 1.6.0_37 Launching: /usr/java/jdk1.6.0_37/jre/bin/java /usr/java/jdk1.6.0_37/jre/bin/java -Xbootclasspath/a:/usr/java/jdk1.6.0_37/jre/lib/javaws.jar:/usr/java/jdk1.6.0_37/jre/lib/deploy.jar:/usr/java/jdk1.6.0_37/jre/lib/plugin.jar -classpath /usr/java/jdk1.6.0_37/jre/lib/deploy.jar -Djava.security.policy=file:/usr/java/jdk1.6.0_37/jre/lib/security/javaws.policy -DtrustProxy=true -Xverify:remote -Djnlpx.home=/usr/java/jdk1.6.0_37/jre/bin -Dsun.awt.warmup=true -Djnlpx.origFilenameArg=Test.jnlp -Djnlpx.remove=true -Djnlpx.splashport=40605 -Djnlpx.jvm=/usr/java/jdk1.6.0_37/jre/bin/java com.sun.javaws.Main /tmp/javaws1RnwB -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130415/9b58ce71/attachment.html From doko at ubuntu.com Mon Apr 15 07:56:36 2013 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 15 Apr 2013 16:56:36 +0200 Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <605748557.434143.1366032689242.JavaMail.root@redhat.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> Message-ID: <516C1524.1020906@ubuntu.com> Am 15.04.2013 15:31, schrieb Andrew Hughes: > I use either the gcj version of ecj > with CACAO or the later 3.6 natively compiled for gcj: > > $ /home/andrew/build/cacao-jdk/bin/javac -version > Eclipse Java Compiler 0.972_R35x, 3.5.1 release, Copyright IBM Corp 2000, 2009. All rights reserved. > $ /usr/lib/gcj-jdk-4.8.0/bin/javac -version > Eclipse Compiler for Java(TM) 0.A58, 3.6.0, Copyright IBM Corp 2000, 2010. All rights reserved. > > I have 3.8/4.2 installed too, but it doesn't even build with gcj. The ecj.jar distributed by gcc.gnu.org never did include the complete ecj. >> See http://gcc.gnu.org/ml/java-patches/2013-q2/msg00009.html for the ecj >> updates >> (R3_8_2), the jar can be found at >> http://people.debian.org/~doko/tmp/eclipse-gcj/. >> > > I see this has literally just been posted. so what? > I asked you about updating the version used by gcj some time ago, but don't recall > ever seeing a reply. no, never did see this question. >> Tried to build the 2.3.x branch with this new javac. >> >> The build fails first in the stamps/rt-class-files.stamp target with some >> hundred warnings: >> >> 1. ERROR in .../openjdk-boot/jdk/src/share/classes/java/lang/Thread.java >> (at >> line 1619) >> Map m = new HashMap<>(threads.length); >> ^^^^^^^ >> '<>' operator is not allowed for source level below 1.7 >> >> Setting IT_LANGUAGE_SOURCE_VERSION=7 and IT_CLASS_TARGET_VERSION=7 fixes this >> for me. Is there anything going wrong when setting this to 7 for the stage1 >> build? If not, then these two macros should be set by autoconf depending on >> the >> compiler accepting this operator. >> > > It does. You have a configuration error here, whereby configure is detecting you > have a javac capable of using <> and is not applying the diamond patch. so the config test looks broken: if $JAVAC -cp . $JAVACFLAGS -source 7 -target 7 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then it_cv_diamond=no; else it_cv_diamond=yes; fi and then it uses $JAVAC with -source 6 -target 6 unconditionally in the Makefile. However, not calling the config test with the explicit -source/-target options makes the diamond operator unavailable and then leads to: ---------- 1. ERROR in /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java (at line 566) return invoker.invokeExact(this, arguments); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Invocation of polymorphic methods not allowed for source level below 1.7 >> Next the build fails for some java classes (ecj-hacks.diff). Could somebody >> look at these errors? Are these ecj compiler bugs? My work around was to >> comment out the offending lines, and add these hacks to ICEDTEA_BOOT_PATCHES. >> The resulting build and jtreg runs look fine to me. > > The build works fine for me using the above mentioned versions of ecj. Please > stick to these for now. so I assume that http://pkgs.fedoraproject.org/cgit/ecj.git/tree/ecj.spec?h=f17&id=458c2cac2fae5947d3250c2cf4a0bbe1db4c47fa isn't yet part of any release, and the icedtea bootstrap will fail the same way. Matthias From gnu.andrew at redhat.com Mon Apr 15 08:31:18 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 15 Apr 2013 11:31:18 -0400 (EDT) Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <516C1524.1020906@ubuntu.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> Message-ID: <231593293.534648.1366039878158.JavaMail.root@redhat.com> ----- Original Message ----- > Am 15.04.2013 15:31, schrieb Andrew Hughes: > > I use either the gcj version of ecj > > with CACAO or the later 3.6 natively compiled for gcj: > > > > $ /home/andrew/build/cacao-jdk/bin/javac -version > > Eclipse Java Compiler 0.972_R35x, 3.5.1 release, Copyright IBM Corp 2000, > > 2009. All rights reserved. > > $ /usr/lib/gcj-jdk-4.8.0/bin/javac -version > > Eclipse Compiler for Java(TM) 0.A58, 3.6.0, Copyright IBM Corp 2000, 2010. > > All rights reserved. > > > > I have 3.8/4.2 installed too, but it doesn't even build with gcj. > > The ecj.jar distributed by gcc.gnu.org never did include the complete ecj. > Right. > >> See http://gcc.gnu.org/ml/java-patches/2013-q2/msg00009.html for the ecj > >> updates > >> (R3_8_2), the jar can be found at > >> http://people.debian.org/~doko/tmp/eclipse-gcj/. > >> > > > > I see this has literally just been posted. > > so what? It read as if you expected me to already be familiar with this. > > > I asked you about updating the version used by gcj some time ago, but don't > > recall > > ever seeing a reply. > > no, never did see this question. > > >> Tried to build the 2.3.x branch with this new javac. > >> > >> The build fails first in the stamps/rt-class-files.stamp target with some > >> hundred warnings: > >> > >> 1. ERROR in .../openjdk-boot/jdk/src/share/classes/java/lang/Thread.java > >> (at > >> line 1619) > >> Map m = new > >> HashMap<>(threads.length); > >> ^^^^^^^ > >> '<>' operator is not allowed for source level below 1.7 > >> > >> Setting IT_LANGUAGE_SOURCE_VERSION=7 and IT_CLASS_TARGET_VERSION=7 fixes > >> this > >> for me. Is there anything going wrong when setting this to 7 for the > >> stage1 > >> build? If not, then these two macros should be set by autoconf depending > >> on > >> the > >> compiler accepting this operator. > >> > > > > It does. You have a configuration error here, whereby configure is > > detecting you > > have a javac capable of using <> and is not applying the diamond patch. > > so the config test looks broken: > > if $JAVAC -cp . $JAVACFLAGS -source 7 -target 7 $CLASS >&AS_MESSAGE_LOG_FD > 2>&1; then > it_cv_diamond=no; > else > it_cv_diamond=yes; > fi > What is broken here? I don't see any problem. > and then it uses $JAVAC with -source 6 -target 6 unconditionally in the > Makefile. This is unrelated to the above test. I asked you to post your config.log so I could see what was wrong and you haven't. Please stop trying to second guess it instead. > > However, not calling the config test with the explicit -source/-target > options > makes the diamond operator unavailable and then leads to: > > ---------- > 1. ERROR in > /scratch/packages/openjdk/7u15/openjdk-7-7u17-2.3.8/build/openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandle.java > (at line 566) > return invoker.invokeExact(this, arguments); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Invocation of polymorphic methods not allowed for source level below 1.7 > Well, obviously. I don't see your point here. > >> Next the build fails for some java classes (ecj-hacks.diff). Could > >> somebody > >> look at these errors? Are these ecj compiler bugs? My work around was to > >> comment out the offending lines, and add these hacks to > >> ICEDTEA_BOOT_PATCHES. > >> The resulting build and jtreg runs look fine to me. > > > > The build works fine for me using the above mentioned versions of ecj. > > Please > > stick to these for now. > > so I assume that > http://pkgs.fedoraproject.org/cgit/ecj.git/tree/ecj.spec?h=f17&id=458c2cac2fae5947d3250c2cf4a0bbe1db4c47fa > isn't yet part of any release, and the icedtea bootstrap will fail the same > way. > I don't see what Fedora's ecj packages have to do with IcedTea at all. IcedTea's bootstrap works fine both for me and our autobuilders. Stop trying to use something that isn't yet supported and it'll work fine for you too. We can look at a newer ecj in the 2.5 timeframe. > Matthias > > -- 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 jvanalte at redhat.com Mon Apr 15 08:53:29 2013 From: jvanalte at redhat.com (Jon VanAlten) Date: Mon, 15 Apr 2013 11:53:29 -0400 (EDT) Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <231593293.534648.1366039878158.JavaMail.root@redhat.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> <231593293.534648.1366039878158.JavaMail.root@redhat.com> Message-ID: <650159582.554936.1366041209221.JavaMail.root@redhat.com> > > I don't see what Fedora's ecj packages have to do with IcedTea at all. > > IcedTea's bootstrap works fine both for me and our autobuilders. Stop trying > to use > something that isn't yet supported and it'll work fine for you too. > > We can look at a newer ecj in the 2.5 timeframe. > As I've been doing most of the packaging of ecj in Fedora of late, I must double-check my understanding of something: this issue, do you believe it to be caused by some fedora-specific patch? My assumption so far is that this bootstrapping issue is from changes to ecj upstream. If this is correct, I might suggest for clarity on this list to stop referring to "fedora's ecj" and instead refer to the upstream ecj version that introduces the issue. If this is not correct, I would be very interested in any feedback about what patch is guilty. thanks, jon From doko at ubuntu.com Mon Apr 15 08:56:10 2013 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 15 Apr 2013 17:56:10 +0200 Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <650159582.554936.1366041209221.JavaMail.root@redhat.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> <231593293.534648.1366039878158.JavaMail.root@redhat.com> <650159582.554936.1366041209221.JavaMail.root@redhat.com> Message-ID: <516C231A.3050009@ubuntu.com> Am 15.04.2013 17:53, schrieb Jon VanAlten: > >> >> I don't see what Fedora's ecj packages have to do with IcedTea at all. >> >> IcedTea's bootstrap works fine both for me and our autobuilders. Stop trying >> to use >> something that isn't yet supported and it'll work fine for you too. >> >> We can look at a newer ecj in the 2.5 timeframe. >> > > As I've been doing most of the packaging of ecj in Fedora of late, > I must double-check my understanding of something: this issue, do > you believe it to be caused by some fedora-specific patch? My > assumption so far is that this bootstrapping issue is from changes > to ecj upstream. If this is correct, I might suggest for clarity > on this list to stop referring to "fedora's ecj" and instead refer > to the upstream ecj version that introduces the issue. If this is > not correct, I would be very interested in any feedback about what > patch is guilty. no, upstream. so maybe better write "the upstream version as found or used in this repository". From gnu.andrew at redhat.com Mon Apr 15 14:27:21 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 15 Apr 2013 17:27:21 -0400 (EDT) Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <650159582.554936.1366041209221.JavaMail.root@redhat.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> <231593293.534648.1366039878158.JavaMail.root@redhat.com> <650159582.554936.1366041209221.JavaMail.root@redhat.com> Message-ID: <94818923.674805.1366061241766.JavaMail.root@redhat.com> ----- Original Message ----- > > > > > I don't see what Fedora's ecj packages have to do with IcedTea at all. > > > > IcedTea's bootstrap works fine both for me and our autobuilders. Stop > > trying > > to use > > something that isn't yet supported and it'll work fine for you too. > > > > We can look at a newer ecj in the 2.5 timeframe. > > > > As I've been doing most of the packaging of ecj in Fedora of late, > I must double-check my understanding of something: this issue, do > you believe it to be caused by some fedora-specific patch? My > assumption so far is that this bootstrapping issue is from changes > to ecj upstream. If this is correct, I might suggest for clarity > on this list to stop referring to "fedora's ecj" and instead refer > to the upstream ecj version that introduces the issue. If this is > not correct, I would be very interested in any feedback about what > patch is guilty. > I think part of what Matthias is complaining about is: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 He still hasn't posted a config.log to explain what the other issue is with the diamond operator. I suspect, as I noted to you about the IcedTea6 issue, that ecj has changed what classes get dragged in during the pre-bootstrap stage and it isn't prebuilding as many OpenJDK classes. I don't think it's so much a bug as we need to be more explicit. If someone with the IcedTea6 issue wants to try HEAD and see if the SSLParameters issue has been resolved, I can know whether it's worth backporting to 1.12.x. As noted, it still bootstraps fine here and a release branch is not the place to be trying to support new versions, especially not when we have a security release taking place in the next 24-48 hours. > thanks, > jon > -- 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 Mon Apr 15 15:42:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 15 Apr 2013 22:42:00 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #4 from Omair Majid --- Still getting the same error, on changeset 44dda0c0c865: compile: [javac] Compiling 2545 source files to /home/omajid/devel/icedtea6/openjdk.build-ecj/jaxws/build/classes [javac] ---------- [javac] 1. ERROR in /home/omajid/devel/icedtea6/openjdk-ecj/jdk/src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java (at line 112) [javac] params.setSSLParameters (getSSLContext().getDefaultSSLParameters()); [javac] ^^^^^^^^^^^^^^^^^^^^^^^ [javac] The method getDefaultSSLParameters() is undefined for the type SSLContext [javac] ---------- [javac] ---------- [javac] 2. ERROR in /home/omajid/devel/icedtea6/openjdk-ecj/jdk/src/share/classes/sun/net/httpserver/SSLStreams.java (at line 82) [javac] engine.setSSLParameters (sslParams); [javac] ^^^^^^^^^^^^^^^^ [javac] The method setSSLParameters(SSLParameters) is undefined for the type SSLEngine [javac] ---------- [javac] 2 problems (2 errors) BUILD FAILED /home/omajid/devel/icedtea6/openjdk-ecj/jaxws/build.xml:136: Compile failed; see the compiler error output for details. Total time: 2 minutes 44 seconds make[3]: *** [all] Error 1 make[3]: Leaving directory `/home/omajid/devel/icedtea6/openjdk-ecj/jaxws/make' make[2]: *** [jaxws-build] Error 2 make[2]: Leaving directory `/home/omajid/devel/icedtea6/openjdk-ecj' make[1]: *** [build_product_image] Error 2 make[1]: Leaving directory `/home/omajid/devel/icedtea6/openjdk-ecj' make: *** [stamps/icedtea-ecj.stamp] Error 2 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130415/164aaa21/attachment.html From stefan at complang.tuwien.ac.at Mon Apr 15 22:06:59 2013 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Tue, 16 Apr 2013 07:06:59 +0200 Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: <94818923.674805.1366061241766.JavaMail.root@redhat.com> References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> <231593293.534648.1366039878158.JavaMail.root@redhat.com> <650159582.554936.1366041209221.JavaMail.root@redhat.com> <94818923.674805.1366061241766.JavaMail.root@redhat.com> Message-ID: > I suspect, as I noted to you about the IcedTea6 issue, that ecj has changed > what classes get dragged in during the pre-bootstrap stage and it isn't prebuilding > as many OpenJDK classes. I don't think it's so much a bug as we need to be more > explicit. If someone with the IcedTea6 issue wants to try HEAD and see if the > SSLParameters issue has been resolved, I can know whether it's worth backporting > to 1.12.x. As already reported by Omair, it has not. Actually, fixing this issue blindly would have been very impressive... From bugzilla-daemon at icedtea.classpath.org Mon Apr 15 22:46:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 05:46:26 +0000 Subject: [Bug 1396] New: Application Fujitsu ServerView RAID Manager (5.6.4) does not run Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 Bug ID: 1396 Summary: Application Fujitsu ServerView RAID Manager (5.6.4) does not run Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: haenig at cosifan.de CC: unassigned at icedtea.classpath.org System is OpenSuSE 12.3 Version of icedtea-web (Zypper: "Java Web Start and plugin implementation") is 1.3.1-4.1.5 When calling the address of ServerView RAID Manager's Web front end from within e.g. Firefox (https://machine_name:3173/), all one gets is a grey filled FF saying "applet loaded". For an Internet Explorer 8 with SUN Java Plug-in 1.6.0_31 the application works. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/8480605c/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Apr 15 23:19:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 06:19:26 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #5 from Stefan Ring --- One thing that did change, as opposed to bcad714e7c48, at least on Fedora 18: The build stops at the same point, but the error messages about SSLContext are gone. It looks like this now, and I have no idea where to go look for compiler output. There just isn't any: compile: [javac] Compiling 2545 source files to /home/sr/staging/staging-build/icedtea6/openjdk.build-ecj/jaxws/build/classes BUILD FAILED /home/sr/staging/staging-build/icedtea6/openjdk-ecj/jaxws/build.xml:136: Compile failed; see the compiler error output for details. Total time: 1 minute 24 seconds make[4]: *** [all] Error 1 make[4]: Leaving directory `/home/sr/staging/staging-build/icedtea6/openjdk-ecj/jaxws/make' make[3]: *** [jaxws-build] Error 2 make[3]: Leaving directory `/home/sr/staging/staging-build/icedtea6/openjdk-ecj' make[2]: *** [build_product_image] Error 2 make[2]: Leaving directory `/home/sr/staging/staging-build/icedtea6/openjdk-ecj' make[1]: *** [jdk_only] Error 2 make[1]: Leaving directory `/home/sr/staging/staging-build/icedtea6/openjdk-ecj' make: *** [stamps/icedtea-ecj.stamp] Error 2 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/9d10cffa/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 00:08:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 07:08:55 +0000 Subject: [Bug 1396] Application Fujitsu ServerView RAID Manager (5.6.4) does not run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 --- Comment #1 from haenig at cosifan.de --- here is another constellation (besides Windows) where the web front end works as expected OpenSuSE 11.1, Firefox 3.6.23, Java Plugin 1.6.0_26 (Name: java-1_6_0-sun-plugin, Version: 1.6.0.u26-0.1.1 from openSUSE Evergreen) -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/7b2c2cb9/attachment.html From ptisnovs at icedtea.classpath.org Tue Apr 16 00:53:06 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 16 Apr 2013 07:53:06 +0000 Subject: /hg/gfx-test: 12 helper methods added into CommonBitmapOperation... Message-ID: changeset a7ed7b19f6aa in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a7ed7b19f6aa author: Pavel Tisnovsky date: Tue Apr 16 09:56:19 2013 +0200 12 helper methods added into CommonBitmapOperations class. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/CommonBitmapOperations.java | 312 ++++++++++++++++++ 2 files changed, 317 insertions(+), 0 deletions(-) diffs (332 lines): diff -r 333cbb14438b -r a7ed7b19f6aa ChangeLog --- a/ChangeLog Mon Apr 15 10:54:43 2013 +0200 +++ b/ChangeLog Tue Apr 16 09:56:19 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-16 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + 12 helper methods added into CommonBitmapOperations class. + 2013-04-15 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltConvolveOp.java: diff -r 333cbb14438b -r a7ed7b19f6aa src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Mon Apr 15 10:54:43 2013 +0200 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Tue Apr 16 09:56:19 2013 +0200 @@ -1737,4 +1737,316 @@ return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; } + /** + * Create new buffered image containing horizontal yellow gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalYellowGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalYellowGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal yellow gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalYellowGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalYellowGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical yellow gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalYellowGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalYellowGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical yellow gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalYellowGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalYellowGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal magenta gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalMagentaGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalMagentaGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal magenta gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalMagentaGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalMagentaGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical magenta gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalMagentaGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalMagentaGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical magenta gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalMagentaGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalMagentaGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal cyan gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalCyanGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalCyanGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal cyan gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalCyanGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalCyanGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical cyan gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalCyanGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalCyanGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical cyan gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalCyanGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalCyanGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + } From gnu.andrew at redhat.com Tue Apr 16 00:53:45 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Tue, 16 Apr 2013 03:53:45 -0400 (EDT) Subject: IcedTea bootstrap and OpenJDK build broken with ecj-3.8/4.2 In-Reply-To: References: <516BDC74.6060809@ubuntu.com> <605748557.434143.1366032689242.JavaMail.root@redhat.com> <516C1524.1020906@ubuntu.com> <231593293.534648.1366039878158.JavaMail.root@redhat.com> <650159582.554936.1366041209221.JavaMail.root@redhat.com> <94818923.674805.1366061241766.JavaMail.root@redhat.com> Message-ID: <106731092.762282.1366098825865.JavaMail.root@redhat.com> ----- Original Message ----- > > I suspect, as I noted to you about the IcedTea6 issue, that ecj has changed > > what classes get dragged in during the pre-bootstrap stage and it isn't > > prebuilding > > as many OpenJDK classes. I don't think it's so much a bug as we need to be > > more > > explicit. If someone with the IcedTea6 issue wants to try HEAD and see if > > the > > SSLParameters issue has been resolved, I can know whether it's worth > > backporting > > to 1.12.x. > > As already reported by Omair, it has not. Actually, fixing this issue > blindly would have been very impressive... > Yeah, I didn't read the error output properly. Another fix coming up. -- 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 Tue Apr 16 00:58:25 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 16 Apr 2013 07:58:25 +0000 Subject: /hg/rhino-tests: Updated four tests in CompiledScriptClassTest f... Message-ID: changeset ae65fb0ae251 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=ae65fb0ae251 author: Pavel Tisnovsky date: Tue Apr 16 10:01:43 2013 +0200 Updated four tests in CompiledScriptClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/CompiledScriptClassTest.java | 62 +++++++++++++++++++++++- 2 files changed, 65 insertions(+), 4 deletions(-) diffs (119 lines): diff -r 46a9ca22d451 -r ae65fb0ae251 ChangeLog --- a/ChangeLog Mon Apr 15 10:51:45 2013 +0200 +++ b/ChangeLog Tue Apr 16 10:01:43 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-16 Pavel Tisnovsky + + * src/org/RhinoTests/CompiledScriptClassTest.java: + Updated four tests in CompiledScriptClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-15 Pavel Tisnovsky * src/org/RhinoTests/SimpleBindingsClassTest.java: diff -r 46a9ca22d451 -r ae65fb0ae251 src/org/RhinoTests/CompiledScriptClassTest.java --- a/src/org/RhinoTests/CompiledScriptClassTest.java Mon Apr 15 10:51:45 2013 +0200 +++ b/src/org/RhinoTests/CompiledScriptClassTest.java Tue Apr 16 10:01:43 2013 +0200 @@ -342,13 +342,26 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); testedConstructors_jdk7.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); + testedConstructors_jdk8.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.compiledScriptClass.getConstructors(); @@ -373,13 +386,26 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); testedConstructors_jdk7.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); + testedConstructors_jdk8.put("public javax.script.CompiledScript()", "javax.script.CompiledScript"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.compiledScriptClass.getDeclaredConstructors(); @@ -407,7 +433,21 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); constructorsThatShouldExist_jdk7.put("javax.script.CompiledScript", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.CompiledScript", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -439,7 +479,21 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); constructorsThatShouldExist_jdk7.put("javax.script.CompiledScript", new Class[] {}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.CompiledScript", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 05:45:28 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 12:45:28 +0000 Subject: [Bug 1396] Application Fujitsu ServerView RAID Manager (5.6.4) does not run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|dbhole at redhat.com |jvanek at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/b19a9a3b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 06:10:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 13:10:32 +0000 Subject: [Bug 1396] Application Fujitsu ServerView RAID Manager (5.6.4) does not run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |adomurad at redhat.com --- Comment #2 from Adam Domurad --- Can you please follow the instructions (about getting logs) at http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs and attach the logs you get when you try to run it with icedtea-web ? -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/62039ee4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 06:22:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 13:22:43 +0000 Subject: [Bug 1396] Application Fujitsu ServerView RAID Manager (5.6.4) does not run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 --- Comment #3 from haenig at cosifan.de --- Created attachment 856 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=856&action=edit the plugin.log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/2a91d4eb/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 06:24:38 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 13:24:38 +0000 Subject: [Bug 1396] Application Fujitsu ServerView RAID Manager (5.6.4) does not run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1396 --- Comment #4 from haenig at cosifan.de --- Created attachment 857 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=857&action=edit ~/.icedtea/log/java.stderr java.stdout from the same directory has been empty -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/6e037913/attachment.html From jvanek at redhat.com Tue Apr 16 07:12:00 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 16 Apr 2013 16:12:00 +0200 Subject: [rfc][icedtea-web] removed java call to obtain jvm args for plugin Message-ID: <516D5C30.7080009@redhat.com> To get jvm args for plugin were used separate jvm lunch of command line version of itw-settings. It is unnecessary burden. This patch is replacing the new process by function call. 2013-04-XX Jiri Vanek removed java call to obtain jvm args for plugin * /plugin/icedteanp/IcedTeaNPPlugin.cc: (get_jvm_args) Java call replaced by call to recently added read_deploy_property_value function. -------------- next part -------------- A non-text attachment was scrubbed... Name: removedJavaCallToreciveJavaArgs.patch Type: text/x-patch Size: 1899 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/0c90e1f2/removedJavaCallToreciveJavaArgs.patch From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 09:03:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 16:03:05 +0000 Subject: [Bug 1397] New: [IcedTea6] Remove needed for override patch by building source/target 6 throughout Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1397 Bug ID: 1397 Summary: [IcedTea6] Remove needed for override patch by building source/target 6 throughout Classification: Unclassified Product: IcedTea Version: 6-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org The patch patches/ecj/override.patch is needed because the code contains the @Override annotation on interfaces, yet is often built with source/target 5 which doesn't allow this. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/7a3fc810/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 09:06:47 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 16:06:47 +0000 Subject: [Bug 686] IcedTea6 1.10 build fails on Sparc In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=686 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Resolution|--- |WONTFIX --- Comment #2 from Andrew John Hughes --- 1.10.x is no longer supported. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/8a27381f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 09:12:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 16:12:59 +0000 Subject: [Bug 1300] Support for X32 ABI x86_64-linux-gnux32 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1300 --- Comment #7 from Andrew John Hughes --- I should point out that this would be a largely academic exercise. Zero is many orders of magnitude slower than the native x86 and x86_64 HotSpot ports and no-one is going to want to run an x32 Zero over these. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/72cf4cdb/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 09:45:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 16:45:33 +0000 Subject: [Bug 1398] New: Current Minecraft (v 1.5.1) under current CentOS 6 and current OpenJDK crashes with backtrace Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1398 Bug ID: 1398 Summary: Current Minecraft (v 1.5.1) under current CentOS 6 and current OpenJDK crashes with backtrace Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: herrold at owlriver.com CC: unassigned at icedtea.classpath.org Created attachment 858 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=858&action=edit backtrace of the crash [herrold at centos-6 minecraft]$ rpm -qa \*java\* \*-release centos-release-6-4.el6.centos.10.x86_64 gcc-java-4.4.7-3.el6.x86_64 tzdata-java-2013b-1.el6.noarch epel-release-6-8.noarch java-1.6.0-openjdk-1.6.0.0-1.57.1.11.9.el6_4.x86_64 java-1.5.0-gcj-devel-1.5.0.0-29.1.el6.x86_64 java_cup-0.10k-5.el6.x86_64 java-1.6.0-openjdk-devel-1.6.0.0-1.57.1.11.9.el6_4.x86_64 java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64 [herrold at centos-6 minecraft]$ -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/fd349b0d/attachment.html From andrew at icedtea.classpath.org Tue Apr 16 10:40:01 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 17:40:01 +0000 Subject: /hg/icedtea6: 4 new changesets Message-ID: changeset db7918fff199 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=db7918fff199 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. changeset ef687bd533e2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ef687bd533e2 author: Andrew John Hughes date: Tue Apr 16 17:08:54 2013 +0100 PR1338: Remove dependence on libXp. 2013-04-16 Andrew John Hughes PR1338: Remove dependence on libXp * configure.ac: Drop check for libXp. changeset f9540cbade1e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9540cbade1e author: Andrew John Hughes date: Tue Apr 16 17:11:46 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and previous fix. changeset ab418eb1e664 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ab418eb1e664 author: Andrew John Hughes date: Tue Apr 16 18:39:51 2013 +0100 Fix typo in ICEDTEA_PATCHES. 2013-04-16 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add missing backslash (oops!) * patches/openjdk/7024568-long_method_resolution_oom_error.patch: Fix patch that doesn't apply cleanly. diffstat: ChangeLog | 24 ++++ Makefile.am | 2 +- NEWS | 2 + configure.ac | 10 - patches/openjdk/7024568-long_method_resolution_oom_error.patch | 59 +++------ patches/pr1319-support_giflib_5.patch | 2 +- rewriter/com/redhat/rewriter/ClassRewriter.java | 6 +- 7 files changed, 54 insertions(+), 51 deletions(-) diffs (209 lines): diff -r 44dda0c0c865 -r ab418eb1e664 ChangeLog --- a/ChangeLog Sun Apr 14 21:05:17 2013 +0100 +++ b/ChangeLog Tue Apr 16 18:39:51 2013 +0100 @@ -1,3 +1,27 @@ +2013-04-16 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add missing backslash (oops!) + * patches/openjdk/7024568-long_method_resolution_oom_error.patch: + Fix patch that doesn't apply cleanly. + +2013-03-11 Andrew John Hughes + + PR1339: Simplify the rewriter, avoiding concurrency. + * rewriter/com/redhat/rewriter/ClassRewriter.java: + Always use the single threaded executor. + * NEWS: Updated with this and previous fix. + +2013-04-16 Andrew John Hughes + + PR1338: Remove dependence on libXp + * configure.ac: Drop check for libXp. + +2013-04-16 Andrew John Hughes + + * patches/pr1319-support_giflib_5.patch, + Use #if not #ifdef. + 2013-04-12 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 diff -r 44dda0c0c865 -r ab418eb1e664 Makefile.am --- a/Makefile.am Sun Apr 14 21:05:17 2013 +0100 +++ b/Makefile.am Tue Apr 16 18:39:51 2013 +0100 @@ -487,7 +487,7 @@ patches/copy_memory.patch \ patches/openjdk/6718364-inference_failure.patch \ patches/openjdk/6682380-foreach_crash.patch \ - patches/openjdk/7046929-fix_t6397104_test_failure.patch + patches/openjdk/7046929-fix_t6397104_test_failure.patch \ patches/openjdk/7024568-long_method_resolution_oom_error.patch \ patches/openjdk/7003595-incompatibleclasschangeerror.patch \ patches/openjdk/6500343-bad_code_from_conditionals.patch diff -r 44dda0c0c865 -r ab418eb1e664 NEWS --- a/NEWS Sun Apr 14 21:05:17 2013 +0100 +++ b/NEWS Tue Apr 16 18:39:51 2013 +0100 @@ -24,6 +24,8 @@ - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) - PR1362: Fedora 19 / rawhide FTBFS SIGILL + - PR1338: Remove dependence on libXp + - PR1339: Simplify the rhino class rewriter to avoid use of concurrency New in release 1.12.4 (2013-03-04): diff -r 44dda0c0c865 -r ab418eb1e664 configure.ac --- a/configure.ac Sun Apr 14 21:05:17 2013 +0100 +++ b/configure.ac Tue Apr 16 18:39:51 2013 +0100 @@ -284,16 +284,6 @@ AC_SUBST(XT_CFLAGS) AC_SUBST(XT_LIBS) -dnl Check for libXp headers and libraries. -PKG_CHECK_MODULES(XP, xp,[XP_FOUND=yes],[XP_FOUND=no]) -if test "x${XP_FOUND}" = xno -then - AC_MSG_ERROR([Could not find Xp - \ - Try installing libXp-devel.]) -fi -AC_SUBST(XP_CFLAGS) -AC_SUBST(XP_LIBS) - dnl Check for libX11 headers and libraries. PKG_CHECK_MODULES(X11, x11,[X11_FOUND=yes],[X11_FOUND=no]) if test "x${X11_FOUND}" = xno diff -r 44dda0c0c865 -r ab418eb1e664 patches/openjdk/7024568-long_method_resolution_oom_error.patch --- a/patches/openjdk/7024568-long_method_resolution_oom_error.patch Sun Apr 14 21:05:17 2013 +0100 +++ b/patches/openjdk/7024568-long_method_resolution_oom_error.patch Tue Apr 16 18:39:51 2013 +0100 @@ -1,52 +1,41 @@ -# HG changeset patch -# User mcimadamore -# Date 1299507108 0 -# Node ID 74f0c05c51eb8e4ce08cdf8a3b8a33e36b09b5b2 -# Parent 5e6c661891da3dfbf371c1186df6cc0a77224951 -7024568: Very long method resolution causing OOM error -Summary: Resolve.findMethod scans same receiver type more than once in certain inheritance graphs -Reviewed-by: jjg -Contributed-by: jan.lahoda at oracle.com - -diff --git a/src/share/classes/com/sun/tools/javac/comp/Resolve.java b/src/share/classes/com/sun/tools/javac/comp/Resolve.java ---- openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java -+++ openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java -@@ -45,7 +45,9 @@ +diff -Nru openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java +--- openjdk.orig/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java 2013-04-16 17:29:24.789670017 +0100 ++++ openjdk/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java 2013-04-16 17:36:54.208874016 +0100 +@@ -38,6 +38,10 @@ + import static com.sun.tools.javac.code.Flags.*; + import static com.sun.tools.javac.code.Kinds.*; + import static com.sun.tools.javac.code.TypeTags.*; ++ ++import java.util.Set; ++import java.util.HashSet; ++ import javax.lang.model.element.ElementVisitor; - import java.util.Map; -+import java.util.Set; - import java.util.HashMap; -+import java.util.HashSet; - /** Helper class for name resolution, used mostly by the attribution phase. - * -@@ -896,7 +898,8 @@ - bestSoFar, +@@ -719,7 +723,8 @@ + methodNotFound, allowBoxing, useVarargs, - operator); + operator, -+ new HashSet()); ++ new HashSet()); } // where private Symbol findMethod(Env env, -@@ -909,11 +912,13 @@ +@@ -732,9 +737,11 @@ Symbol bestSoFar, boolean allowBoxing, boolean useVarargs, - boolean operator) { + boolean operator, + Set seen) { - for (Type ct = intype; ct.tag == CLASS || ct.tag == TYPEVAR; ct = types.supertype(ct)) { - while (ct.tag == TYPEVAR) - ct = ct.getUpperBound(); + for (Type ct = intype; ct.tag == CLASS; ct = types.supertype(ct)) { ClassSymbol c = (ClassSymbol)ct.tsym; + if (!seen.add(c)) return bestSoFar; if ((c.flags() & (ABSTRACT | INTERFACE | ENUM)) == 0) abstractok = false; for (Scope.Entry e = c.members().lookup(name); -@@ -942,7 +947,7 @@ +@@ -761,7 +768,7 @@ bestSoFar = findMethod(env, site, name, argtypes, typeargtypes, l.head, abstractok, bestSoFar, @@ -55,10 +44,9 @@ } if (concrete != bestSoFar && concrete.kind < ERR && bestSoFar.kind < ERR && -diff --git a/test/tools/javac/7024568/T7024568.java b/test/tools/javac/7024568/T7024568.java -new file mode 100644 ---- /dev/null -+++ openjdk/langtools/test/tools/javac/7024568/T7024568.java +diff -Nru openjdk.orig/langtools/test/tools/javac/7024568/T7024568.java openjdk/langtools/test/tools/javac/7024568/T7024568.java +--- openjdk.orig/langtools/test/tools/javac/7024568/T7024568.java 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/langtools/test/tools/javac/7024568/T7024568.java 2013-04-16 17:34:57.014990669 +0100 @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -106,10 +94,9 @@ +interface C extends A, B, Test {} +interface D extends A, B, C, Test {} +interface E extends A, B, C, D, Test {} -diff --git a/test/tools/javac/7024568/T7024568.out b/test/tools/javac/7024568/T7024568.out -new file mode 100644 ---- /dev/null -+++ openjdk/langtools/test/tools/javac/7024568/T7024568.out +diff -Nru openjdk.orig/langtools/test/tools/javac/7024568/T7024568.out openjdk/langtools/test/tools/javac/7024568/T7024568.out +--- openjdk.orig/langtools/test/tools/javac/7024568/T7024568.out 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/langtools/test/tools/javac/7024568/T7024568.out 2013-04-16 17:34:57.014990669 +0100 @@ -0,0 +1,2 @@ +T7024568.java:32:40: compiler.err.cant.resolve.location: kindname.variable, undefined, , , (compiler.misc.location: kindname.class, Main, null) +1 error diff -r 44dda0c0c865 -r ab418eb1e664 patches/pr1319-support_giflib_5.patch --- a/patches/pr1319-support_giflib_5.patch Sun Apr 14 21:05:17 2013 +0100 +++ b/patches/pr1319-support_giflib_5.patch Tue Apr 16 18:39:51 2013 +0100 @@ -12,7 +12,7 @@ int SplashDecodeGifStream(Splash * splash, SplashStream * stream) { -+#ifdef GIFLIB_MAJOR >= 5 ++#if GIFLIB_MAJOR >= 5 + int error = 0; + GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, &error); + diff -r 44dda0c0c865 -r ab418eb1e664 rewriter/com/redhat/rewriter/ClassRewriter.java --- a/rewriter/com/redhat/rewriter/ClassRewriter.java Sun Apr 14 21:05:17 2013 +0100 +++ b/rewriter/com/redhat/rewriter/ClassRewriter.java Tue Apr 16 18:39:51 2013 +0100 @@ -60,8 +60,8 @@ /** * The executor for submitting rewriting jobs. */ - private static final ExecutorService executor = DEBUG ? - Executors.newSingleThreadExecutor() : Executors.newCachedThreadPool(); + private static final ExecutorService executor = + Executors.newSingleThreadExecutor(); /** * The source directory, set once by main. @@ -290,4 +290,4 @@ return null; } -} \ No newline at end of file +} From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 10:40:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 17:40:19 +0000 Subject: [Bug 1319] [IcedTea6] Support GIF lib v5 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1319 --- Comment #5 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=db7918fff199 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/322d0903/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 10:40:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 17:40:29 +0000 Subject: [Bug 1338] [IcedTea6] Remove dependence on libXp In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1338 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=ef687bd533e2 author: Andrew John Hughes date: Tue Apr 16 17:08:54 2013 +0100 PR1338: Remove dependence on libXp. 2013-04-16 Andrew John Hughes PR1338: Remove dependence on libXp * configure.ac: Drop check for libXp. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/69047bed/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 10:40:38 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Apr 2013 17:40:38 +0000 Subject: [Bug 1339] [IcedTea6] Simplify the rhino class rewriter to avoid use of concurrency In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1339 --- Comment #1 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=f9540cbade1e author: Andrew John Hughes date: Tue Apr 16 17:11:46 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and previous fix. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/55991e9f/attachment.html From adomurad at redhat.com Tue Apr 16 13:15:37 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 16 Apr 2013 16:15:37 -0400 Subject: [rfc][icedtea-web] A dead-lock / Firefox hanging fix Message-ID: <516DB169.3030301@redhat.com> Hi all. Recently on one of my computers I noticed that Firefox was hanging every time an applet failed. While I'm not sure why this was suddenly happening every time, I took it as an opportunity to look into a fix while the bug was in plain sight. The problem area is here: plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:740 (from HEAD) > while (panel == null || !panel.isAlive()) { > ^^^^^^^^^^^^^ > maxTimeToSleep -= waitTillTimeout(panelLock, > panelLive, > maxTimeToSleep); > > /* we already waited till timeout, give up here > directly, > * instead of waiting 180s again in below > waitForAppletInit() > */ > if(maxTimeToSleep < 0) { > streamhandler.write("instance " + identifier + > " reference " + -1 + " fatalError: " + "Initialization timed out"); > return; The intent for using panel.isAlive() in the condition here is presumably to ensure that the handler thread is created. NetxPanel is created with appletAlive=true, so the following method: netx/net/sourceforge/jnlp/NetxPanel.java:196 (from HEAD) > public boolean isAlive() { > return handler != null && handler.isAlive() && this.appletAlive; > } Effectively tests that the handler thread was created. There's one problem, in the case of an exception path ... netx/net/sourceforge/jnlp/NetxPanel.java:150 (from HEAD) > } catch (Exception e) { > this.appletAlive = false; > ^^^^^^^^^^^^^^^^^^ > e.printStackTrace(); > replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), > getHeight(), e)); This unfortunately causes isAlive() to permanently return false from that point onwards. Clearly if isAlive() ever gets false in the condition at PluginAppletViewer:740 we will loop forever. The C++ side of the plugin can do nothing but wait. Additionally, since icedtea-web is run in-process unlike other plugins, this hangs firefox completely. One thing to notice is, PluginAppletViewer:740-751 are fairly redundant because line 760 (== 'waitForAppletInit(panel)') waits for complete initialization anyway. The patch therefore axes these lines, which were mostly identical to waitForAppletInit. There is no need to separately wait for the handler thread to initialize. It's also worth noting that waiting on panel == null makes little sense because 'panel' is set *only* in the constructor. Therefore if it were ever null we would be spinning forever anyway. The other part of the fix was making sure the C++ side of the plugin gets a response. plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:764 (from HEAD) > if (panel.getApplet() == null) { > streamhandler.write("instance " + identifier + " > reference " + -1 + " fatalError: " + "Initialization failed"); > return; > } This lacks a response to the message being handled, meaning the C++ side will wait until timeout. Adding 'streamhandler.write("context 0 reference " + reference + " Error");' solves the problem neatly. ChangeLog: 2013-XX-XX Adam Domurad Fix a dead-lock that can cause (namely) Firefox to hang. * netx/net/sourceforge/jnlp/NetxPanel.java (appletAlive): Remove flag. (isAlive): Remove getter. (initialized): New, explicit initialization flag. (isInitialized): New, getter. (runLoader): Set initialization flag when done (whether errored or not). * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (waitForAppletInit): Wait on initialization flag from NetxPanel. (handleMessage): Remove redundant waiting for init. Respond properly to GetJavaObject in case of error/time-out. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: NetxPanel-init-deadlock.patch Type: text/x-patch Size: 5005 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/0a13b8cc/NetxPanel-init-deadlock.patch From adomurad at redhat.com Tue Apr 16 13:46:12 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 16 Apr 2013 16:46:12 -0400 Subject: [rfc][icedtea-web] Minor NetxPanel clean-up Message-ID: <516DB894.6010607@redhat.com> This causes exceptions to be printed to console more clearly in two ways: 1. It does not swallow launch exceptions in NetxPanel#runLoader, and the launch exception is printed instead of a spurious NPE. 2. It sets the applet status to an error status in the exception path, preventing from further applet loading code, which would thrown an exception. There is also some minor cleanup of a dead code path and a (quite) obsolete comment. 2013-XX-XX Adam Domurad * netx/net/sourceforge/jnlp/NetxPanel.java (exitOnFailure): Remove always-false field. (NetxPanel): Remove overloaded constructor (runLoader): Do not swallow LaunchException's. Remove dead exitOnFailure code-path. Set applet status to APPLET_ERROR on exception. * plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java (createPanel): Update call to NetxPanel constructor. Happy hacking, -Adam -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/6085189c/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: netx-panel-minor-cleanup.patch Type: text/x-patch Size: 4084 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/6085189c/netx-panel-minor-cleanup.patch From adomurad at redhat.com Tue Apr 16 14:01:41 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 16 Apr 2013 17:01:41 -0400 Subject: [rfc][icedtea-web] removed java call to obtain jvm args for plugin In-Reply-To: <516D5C30.7080009@redhat.com> References: <516D5C30.7080009@redhat.com> Message-ID: <516DBC35.4010600@redhat.com> On 04/16/2013 10:12 AM, Jiri Vanek wrote: > To get jvm args for plugin were used separate jvm lunch of command > line version of itw-settings. It is unnecessary burden. This patch is > replacing the new process by function call. +1 > > > 2013-04-XX Jiri Vanek > > removed java call to obtain jvm args for plugin > * /plugin/icedteanp/IcedTeaNPPlugin.cc: (get_jvm_args) > Java call replaced by call to recently added > read_deploy_property_value > function. Great! Looks good to me, go ahead and push. (C++ patch correct in your first try!? ... Just teasing :-) Happy hacking, -Adam -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130416/e76df4ff/attachment.html From andrew at icedtea.classpath.org Tue Apr 16 14:16:04 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 21:16:04 +0000 Subject: /hg/release/icedtea6-1.11: 3 new changesets Message-ID: changeset 85113f382f7b in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=85113f382f7b author: Jon VanAlten date: Thu Apr 11 16:25:37 2013 -0400 Add backport of 7036559 and ConcurrentHashMap deserialization reliability fix for 8009063. changeset e92def3935ee in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=e92def3935ee author: Andrew John Hughes date: Fri Apr 12 12:32:45 2013 +0100 Fix issues with previous commit. 2013-04-12 Andrew John Hughes * NEWS: Updated. * Makefile.am: (SECURITY_PATCHES): Correct path to 7036559; not a security patch but a backport to enable one to be applied. * patches/security/20130416/7036559.patch: Moved to... * patches/openjdk/7036559-concurrenthashmap_improvements.patch: ...here. 2013-04-11 Jon VanAlten * Makefile.am: (SECURITY_PATCHES): Add new patches. * patches/security/20130416/7036559.patch: Add backport. * patches/security/20130416/8009063.patch: Add security fix. changeset 1a2df02fa23d in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=1a2df02fa23d author: Andrew John Hughes date: Tue Apr 16 20:25:56 2013 +0100 Add 2013/04/16 security patches. 2013-04-17 Andrew John Hughes * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: Reapplied as a security patch pre-requisite. * patches/security/20120612/7157609.patch, * patches/security/20130201/8001235.patch: Dropped as included in JAXP tarball used. * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. * Makefile.am: (JAXWS_DROP_URL): Removed. (JAXWS_DROP_ZIP): Likewise. (JAXWS_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAF_DROP_ZIP): Likewise. (JAF_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAXP_DROP_URL): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (DROP_PATCHES): Add patches providing code previously provided by drop zips. (SECURITY_PATCHES): Updated. (ICEDTEA_PATCHES): Add DROP_PATCHES. Move 7102369 patch to precede RMI security patch. (ICEDTEA_ENV): Remove ALT_DROPS_DIR. (download-jaxp-drop): Removed. (clean-download-jaxp-drop): Likewise. (download-jaf-drop): Likewise. (clean-download-jaf-drop): Likewise. (download-jaxws-drop): Likewise. (clean-download-jaxws-drop): Likewise. (download-drops): Likewise. (clean-drops): Likewise. (download): Don't depend on download-drops. (clean-download): Likewise for clean-drops. * NEWS: Add security issues, backports and mention drop move. * acinclude.m4: (IT_WITH_JAXP_DROP_ZIP): Removed. (IT_WITH_JAF_DROP_ZIP): Likewise. (IT_WITH_JAXWS_DROP_ZIP): Likewise. * configure.ac: Don't call removed macros above. * patches/ecj/override.patch: Add new cases introduced by security patches (sigh). * patches/libraries.patch, * patches/nomotif-6706121.patch: Regenerated against security patches. * patches/openjdk/5102804-memory_leak.patch, * patches/openjdk/6501644-icu_sync.patch: Backports for security patches. * patches/openjdk/6633275-shaped_translucent_windows.patch: Remove copyright notice changes broken by 8006790 security patch. * patches/openjdk/6669869-queries_per_appcontext.patch, * patches/openjdk/6886358-layout_update.patch, * patches/openjdk/6963811-deadlock_fix.patch, * patches/openjdk/7017324-kerning_crash.patch, * patches/openjdk/7064279-fixup.patch, * patches/openjdk/7064279-resource_release.patch, * patches/openjdk/8004302-soap_test_failure.patch: More backports for security patches. * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, * patches/openjdk/jaxp144_05.patch: Add drop zips in patch form. * patches/security/20130416/6657673-fixup.patch, * patches/security/20130416/6657673.patch, * patches/security/20130416/7200507.patch, * patches/security/20130416/8000724.patch, * patches/security/20130416/8001031.patch, * patches/security/20130416/8001040.patch, * patches/security/20130416/8001322.patch, * patches/security/20130416/8001329.patch, * patches/security/20130416/8003335.patch, * patches/security/20130416/8003445.patch, * patches/security/20130416/8003543.patch, * patches/security/20130416/8004261.patch, * patches/security/20130416/8004336.patch, * patches/security/20130416/8004986.patch, * patches/security/20130416/8005432.patch, * patches/security/20130416/8005943.patch, * patches/security/20130416/8006309.patch, * patches/security/20130416/8006435.patch, * patches/security/20130416/8006790.patch, * patches/security/20130416/8006795.patch, * patches/security/20130416/8007406.patch, * patches/security/20130416/8007617.patch, * patches/security/20130416/8009699.patch: Add security patches. * patches/xjc.patch: Regenerate JAXWS patch against sources, not drop system. diffstat: ChangeLog | 118 + INSTALL | 3 - Makefile.am | 163 +- NEWS | 41 + acinclude.m4 | 63 - configure.ac | 3 - patches/ecj/override.patch | 59 + patches/libraries.patch | 2589 +- patches/nomotif-6706121.patch | 44 +- patches/openjdk/5102804-memory_leak.patch | 429 + patches/openjdk/6501644-icu_sync.patch | 8066 + patches/openjdk/6633275-shaped_translucent_windows.patch | 49 - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch | 346 - patches/openjdk/6669869-queries_per_appcontext.patch | 355 + patches/openjdk/6886358-layout_update.patch | 13847 + patches/openjdk/6963811-deadlock_fix.patch | 42 + patches/openjdk/7017324-kerning_crash.patch | 101 + patches/openjdk/7036559-concurrenthashmap_improvements.patch | 1436 + patches/openjdk/7064279-fixup.patch | 71 + patches/openjdk/7064279-resource_release.patch | 436 + patches/openjdk/8004302-soap_test_failure.patch | 75 + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch | 449213 +++++++ patches/openjdk/jaxp144_05.patch | 595585 ++++++++++ patches/security/20120612/7157609.patch | 56 - patches/security/20130201/8001235.patch | 36 - patches/security/20130416/6657673-fixup.patch | 229 + patches/security/20130416/6657673.patch | 9545 + patches/security/20130416/7200507.patch | 230 + patches/security/20130416/8000724.patch | 1368 + patches/security/20130416/8001031.patch | 5457 + patches/security/20130416/8001040.patch | 113 + patches/security/20130416/8001322.patch | 61 + patches/security/20130416/8001329.patch | 32 + patches/security/20130416/8003335.patch | 63 + patches/security/20130416/8003445.patch | 77 + patches/security/20130416/8003543.patch | 236 + patches/security/20130416/8004261.patch | 142 + patches/security/20130416/8004336.patch | 29 + patches/security/20130416/8004986.patch | 374 + patches/security/20130416/8005432.patch | 518 + patches/security/20130416/8005943.patch | 202 + patches/security/20130416/8006309.patch | 22 + patches/security/20130416/8006435.patch | 76 + patches/security/20130416/8006790.patch | 166 + patches/security/20130416/8006795.patch | 35 + patches/security/20130416/8007406.patch | 31 + patches/security/20130416/8007617.patch | 376 + patches/security/20130416/8007667.patch | 579 + patches/security/20130416/8007918.patch | 357 + patches/security/20130416/8009063.patch | 67 + patches/security/20130416/8009305.patch | 68 + patches/security/20130416/8009699.patch | 25 + patches/security/20130416/8009814.patch | 27 + patches/security/20130416/8009857.patch | 66 + patches/xjc.patch | 56 +- 55 files changed, 1091845 insertions(+), 2008 deletions(-) diffs (truncated from 1094796 to 500 lines): diff -r deabc521f9d2 -r 1a2df02fa23d ChangeLog --- a/ChangeLog Wed Mar 20 09:27:20 2013 +0000 +++ b/ChangeLog Tue Apr 16 20:25:56 2013 +0100 @@ -1,3 +1,121 @@ +2013-04-17 Andrew John Hughes + + * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: + Reapplied as a security patch pre-requisite. + * patches/security/20120612/7157609.patch, + * patches/security/20130201/8001235.patch: + Dropped as included in JAXP tarball used. + * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. + * Makefile.am: + (JAXWS_DROP_URL): Removed. + (JAXWS_DROP_ZIP): Likewise. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAF_DROP_ZIP): Likewise. + (JAF_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAXP_DROP_URL): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (DROP_PATCHES): Add patches providing code + previously provided by drop zips. + (SECURITY_PATCHES): Updated. + (ICEDTEA_PATCHES): Add DROP_PATCHES. Move + 7102369 patch to precede RMI security patch. + (ICEDTEA_ENV): Remove ALT_DROPS_DIR. + (download-jaxp-drop): Removed. + (clean-download-jaxp-drop): Likewise. + (download-jaf-drop): Likewise. + (clean-download-jaf-drop): Likewise. + (download-jaxws-drop): Likewise. + (clean-download-jaxws-drop): Likewise. + (download-drops): Likewise. + (clean-drops): Likewise. + (download): Don't depend on download-drops. + (clean-download): Likewise for clean-drops. + * NEWS: Add security issues, backports and + mention drop move. + * acinclude.m4: + (IT_WITH_JAXP_DROP_ZIP): Removed. + (IT_WITH_JAF_DROP_ZIP): Likewise. + (IT_WITH_JAXWS_DROP_ZIP): Likewise. + * configure.ac: Don't call removed macros above. + * patches/ecj/override.patch: Add new cases introduced + by security patches (sigh). + * patches/libraries.patch, + * patches/nomotif-6706121.patch: + Regenerated against security patches. + * patches/openjdk/5102804-memory_leak.patch, + * patches/openjdk/6501644-icu_sync.patch: + Backports for security patches. + * patches/openjdk/6633275-shaped_translucent_windows.patch: + Remove copyright notice changes broken by 8006790 security patch. + * patches/openjdk/6669869-queries_per_appcontext.patch, + * patches/openjdk/6886358-layout_update.patch, + * patches/openjdk/6963811-deadlock_fix.patch, + * patches/openjdk/7017324-kerning_crash.patch, + * patches/openjdk/7064279-fixup.patch, + * patches/openjdk/7064279-resource_release.patch, + * patches/openjdk/8004302-soap_test_failure.patch: + More backports for security patches. + * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, + * patches/openjdk/jaxp144_05.patch: + Add drop zips in patch form. + * patches/security/20130416/6657673-fixup.patch, + * patches/security/20130416/6657673.patch, + * patches/security/20130416/7200507.patch, + * patches/security/20130416/8000724.patch, + * patches/security/20130416/8001031.patch, + * patches/security/20130416/8001040.patch, + * patches/security/20130416/8001322.patch, + * patches/security/20130416/8001329.patch, + * patches/security/20130416/8003335.patch, + * patches/security/20130416/8003445.patch, + * patches/security/20130416/8003543.patch, + * patches/security/20130416/8004261.patch, + * patches/security/20130416/8004336.patch, + * patches/security/20130416/8004986.patch, + * patches/security/20130416/8005432.patch, + * patches/security/20130416/8005943.patch, + * patches/security/20130416/8006309.patch, + * patches/security/20130416/8006435.patch, + * patches/security/20130416/8006790.patch, + * patches/security/20130416/8006795.patch, + * patches/security/20130416/8007406.patch, + * patches/security/20130416/8007617.patch, + * patches/security/20130416/8009699.patch: + Add security patches. + * patches/xjc.patch: + Regenerate JAXWS patch against sources, not + drop system. + +2013-04-12 Omair Majid + + * patches/security/20130416/8007667.patch, + * patches/security/20130416/8007918.patch, + * patches/security/20130416/8009305.patch, + * patches/security/20130416/8009814.patch, + * patches/security/20130416/8009857.patch: + Add security patches. + +2013-04-12 Andrew John Hughes + + * NEWS: Updated. + * Makefile.am: + (SECURITY_PATCHES): Correct path to 7036559; not + a security patch but a backport to enable one to + be applied. + * patches/security/20130416/7036559.patch: Moved to... + * patches/openjdk/7036559-concurrenthashmap_improvements.patch: + ...here. + +2013-04-11 Jon VanAlten + + * Makefile.am: + (SECURITY_PATCHES): Add new patches. + * patches/security/20130416/7036559.patch: Add backport. + * patches/security/20130416/8009063.patch: Add security fix. + 2013-03-19 Andrew John Hughes * Makefile.am: diff -r deabc521f9d2 -r 1a2df02fa23d INSTALL --- a/INSTALL Wed Mar 20 09:27:20 2013 +0000 +++ b/INSTALL Tue Apr 16 20:25:56 2013 +0100 @@ -145,9 +145,6 @@ * --with-openjdk-src-zip: Specify the location of the OpenJDK tarball to avoid downloading. * --with-hotspot-src-zip: Specify the location of the HotSpot tarball to avoid downloading. * --with-alt-jar: Use the specified jar binary in the second stage rather than the one just built. -* --with-jaxp-drop-zip: Specify the location of the JAXP source drop zip file to avoid downloading. -* --with-jaf-drop-zip: Specify the location of the JAF source drop zip file to avoid downloading. -* --with-jaxws-drop-zip: Specify the location of the JAXWS source drop zip file to avoid downloading. * --with-cacao-home: Specify the location of an installed CACAO to use rather than downloading and building one. * --with-cacao-src-zip: Specify the location of a CACAO tarball to avoid downloading. diff -r deabc521f9d2 -r 1a2df02fa23d Makefile.am --- a/Makefile.am Wed Mar 20 09:27:20 2013 +0000 +++ b/Makefile.am Tue Apr 16 20:25:56 2013 +0100 @@ -17,15 +17,6 @@ JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz -JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops -JAXWS_DROP_ZIP = jdk6-jaxws2_1_6-2011_06_13.zip -JAXWS_DROP_SHA256SUM = 229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3 -JAF_DROP_URL = http://icedtea.classpath.org/download/drops -JAF_DROP_ZIP = jdk6-jaf-b20.zip -JAF_DROP_SHA256SUM = 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 -JAXP_DROP_URL = http://icedtea.classpath.org/download/drops -JAXP_DROP_ZIP = jaxp144_03.zip -JAXP_DROP_SHA256SUM = c1a5348e17b330a7e4b18431e61a40efd2ba99a7da71102cf2c604478ef96012 OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk6/jdk6 HOTSPOT_SRC_ZIP = hotspot.tar.gz @@ -201,6 +192,10 @@ ICEDTEA_FSG_PATCHES = +DROP_PATCHES = \ + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch \ + patches/openjdk/jaxp144_05.patch + SECURITY_PATCHES = \ patches/security/20120214/7082299.patch \ patches/security/20120214/7088367.patch \ @@ -219,7 +214,6 @@ patches/security/20120612/7143872.patch \ patches/security/20120612/7145239.patch \ patches/security/20120612/7152811.patch \ - patches/security/20120612/7157609.patch \ patches/security/20120612/7160677.patch \ patches/security/20120612/7160757.patch \ patches/security/20120830/7162476-xmldecoder_via_classfinder.patch \ @@ -274,17 +268,57 @@ patches/security/20130201/8001307.patch \ patches/security/20130201/8001972.patch \ patches/security/20130201/8002325.patch \ - patches/security/20130201/8001235.patch \ patches/security/20130219/8006446.patch \ patches/security/20130219/8006777.patch \ patches/openjdk/7123519-problems_with_certification_path.patch \ patches/security/20130219/8007688.patch \ patches/security/20130304/8007014.patch \ - patches/security/20130304/8007675.patch + patches/security/20130304/8007675.patch \ + patches/openjdk/7036559-concurrenthashmap_improvements.patch \ + patches/security/20130416/8009063.patch \ + patches/openjdk/8004302-soap_test_failure.patch \ + patches/security/20130416/6657673.patch \ + patches/security/20130416/6657673-fixup.patch \ + patches/openjdk/6669869-queries_per_appcontext.patch \ + patches/openjdk/5102804-memory_leak.patch \ + patches/openjdk/6963811-deadlock_fix.patch \ + patches/openjdk/7064279-resource_release.patch \ + patches/openjdk/7064279-fixup.patch \ + patches/security/20130416/7200507.patch \ + patches/security/20130416/8000724.patch \ + patches/security/20130416/8004986.patch \ + patches/openjdk/6501644-icu_sync.patch \ + patches/openjdk/6886358-layout_update.patch \ + patches/security/20130416/8001031.patch \ + patches/openjdk/7017324-kerning_crash.patch \ + patches/openjdk/7102369-7094468-rmiregistry.patch \ + patches/security/20130416/8001040.patch \ + patches/security/20130416/8001322.patch \ + patches/security/20130416/8001329.patch \ + patches/security/20130416/8003335.patch \ + patches/security/20130416/8003445.patch \ + patches/security/20130416/8003543.patch \ + patches/security/20130416/8004261.patch \ + patches/security/20130416/8004336.patch \ + patches/security/20130416/8005432.patch \ + patches/security/20130416/8005943.patch \ + patches/security/20130416/8006309.patch \ + patches/security/20130416/8006435.patch \ + patches/security/20130416/8006790.patch \ + patches/security/20130416/8006795.patch \ + patches/security/20130416/8007406.patch \ + patches/security/20130416/8007617.patch \ + patches/security/20130416/8007667.patch \ + patches/security/20130416/8007918.patch \ + patches/security/20130416/8009305.patch \ + patches/security/20130416/8009699.patch \ + patches/security/20130416/8009814.patch \ + patches/security/20130416/8009857.patch SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch ICEDTEA_PATCHES = \ + $(DROP_PATCHES) \ $(SECURITY_PATCHES) \ patches/openjdk/6610244-modal-fatal-error-windows.patch \ patches/stdc-limit-macros.patch \ @@ -467,7 +501,6 @@ patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch \ - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch \ patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch \ patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch \ patches/pr690-shark-jit-hs20.patch \ @@ -481,7 +514,6 @@ patches/arm-debug.patch \ patches/arm-hsdis.patch \ patches/openjdk/7103610-_NET_WM_PID_and_WM_CLIENT_MACHINE_are_not_set.patch \ - patches/openjdk/7102369-7094468-rmiregistry.patch \ patches/openjdk/6851973-kerberos.patch \ patches/openjdk/7091528-javadoc_class_files.patch \ patches/openjdk/7103725-ssl_beast_regression.patch \ @@ -642,7 +674,6 @@ DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ DEBUG_CLASSFILES="true" \ DEBUG_BINARIES="true" \ - ALT_DROPS_DIR="$(abs_top_builddir)/drops" \ VERBOSE="$(VERBOSE)" \ ALT_OUTPUTDIR="$(BUILD_OUTPUT_DIR)" @@ -820,86 +851,6 @@ clean-hgforest: rm -f stamps/hgforest.stamp -stamps/download-jaxp-drop.stamp: - mkdir -p drops -if USE_ALT_JAXP_DROP_ZIP - ln -sf $(ALT_JAXP_DROP_ZIP) drops/$(JAXP_DROP_ZIP) -endif - if ! echo "$(JAXP_DROP_SHA256SUM) drops/$(JAXP_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if [ -f drops/$(JAXP_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAXP_DROP_ZIP) drops/$(JAXP_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAXP_DROP_URL)/$(JAXP_DROP_ZIP) -O drops/$(JAXP_DROP_ZIP); \ - if ! echo "$(JAXP_DROP_SHA256SUM) drops/$(JAXP_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaxp drop zip"; false; \ - fi; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaxp-drop: - rm -f drops/$(JAXP_DROP_ZIP) - rm -f stamps/download-jaxp-drop.stamp - -stamps/download-jaf-drop.stamp: - mkdir -p drops -if USE_ALT_JAF_DROP_ZIP - ln -sf $(ALT_JAF_DROP_ZIP) drops/$(JAF_DROP_ZIP) -endif - if ! echo "$(JAF_DROP_SHA256SUM) drops/$(JAF_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if [ -f drops/$(JAF_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAF_DROP_ZIP) drops/$(JAF_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAF_DROP_URL)/$(JAF_DROP_ZIP) -O drops/$(JAF_DROP_ZIP); \ - if ! echo "$(JAF_DROP_SHA256SUM) drops/$(JAF_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaf drop zip"; false; \ - fi; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaf-drop: - rm -f drops/$(JAF_DROP_ZIP) - rm -f stamps/download-jaf-drop.stamp - -stamps/download-jaxws-drop.stamp: - mkdir -p drops -if USE_ALT_JAXWS_DROP_ZIP - ln -sf $(ALT_JAXWS_DROP_ZIP) drops/$(JAXWS_DROP_ZIP) -endif - if ! echo "$(JAXWS_DROP_SHA256SUM) drops/$(JAXWS_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if [ -f drops/$(JAXWS_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAXWS_DROP_ZIP) drops/$(JAXWS_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAXWS_DROP_URL)/$(JAXWS_DROP_ZIP) -O drops/$(JAXWS_DROP_ZIP); \ - if ! echo "$(JAXWS_DROP_SHA256SUM) drops/$(JAXWS_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaxws drop zip"; false; \ - fi; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaxws-drop: - rm -f drops/$(JAXWS_DROP_ZIP) - rm -f stamps/download-jaxws-drop.stamp - -stamps/download-drops.stamp: stamps/download-jaxp-drop.stamp \ - stamps/download-jaxws-drop.stamp stamps/download-jaf-drop.stamp - mkdir -p stamps - touch $@ - stamps/download-cacao.stamp: if BUILD_CACAO if !USE_SYSTEM_CACAO @@ -956,14 +907,6 @@ rm -f $(JAMVM_SRC_ZIP) rm -f stamps/download-jamvm.stamp -clean-drops: clean-download-jaxp-drop clean-download-jaf-drop \ - clean-download-jaxws-drop - if [ -e drops ] ; then \ - rm -f drops/*.old ; \ - rmdir drops ; \ - fi - rm -f stamps/download-drops.stamp - stamps/download-openjdk.stamp: stamps/hgforest.stamp if USE_HG if WITH_HGREV @@ -1023,11 +966,11 @@ rm -f $(HOTSPOT_SRC_ZIP) rm -f stamps/download-hotspot.stamp -stamps/download.stamp: stamps/download-drops.stamp stamps/download-cacao.stamp \ - stamps/download-jamvm.stamp stamps/download-openjdk.stamp stamps/download-hotspot.stamp +stamps/download.stamp: stamps/download-cacao.stamp stamps/download-jamvm.stamp \ + stamps/download-openjdk.stamp stamps/download-hotspot.stamp touch stamps/download.stamp -clean-download: clean-drops clean-download-cacao clean-download-jamvm \ +clean-download: clean-download-cacao clean-download-jamvm \ clean-download-openjdk clean-download-hotspot rm -f stamps/download.stamp @@ -2397,18 +2340,10 @@ download-cacao: stamps/download-cacao.stamp -download-drops: stamps/download-drops.stamp - download-hotspot: stamps/download-hotspot.stamp download-jamvm: stamps/download-jamvm.stamp -download-jaf-drop: stamps/download-jaf-drop.stamp - -download-jaxp-drop: stamps/download-jaxp-drop.stamp - -download-jaxws-drop: stamps/download-jaxws-drop.stamp - download-openjdk: stamps/download-openjdk.stamp extract: stamps/extract.stamp diff -r deabc521f9d2 -r 1a2df02fa23d NEWS --- a/NEWS Wed Mar 20 09:27:20 2013 +0000 +++ b/NEWS Tue Apr 16 20:25:56 2013 +0100 @@ -12,8 +12,49 @@ New in release 1.11.10 (2013-04-XX): +* New features + - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. +* Security fixes + - S6657673, CVE-2013-1518: Issues with JAXP + - S7200507: Refactor Introspector internals + - S8000724, CVE-2013-2417: Improve networking serialization + - S8001031, CVE-2013-2419: Better font processing + - S8001040, CVE-2013-1537: Rework RMI model + - S8001322: Refactor deserialization + - S8001329, CVE-2013-1557: Augment RMI logging + - S8003335: Better handling of Finalizer thread + - S8003445: Adjust JAX-WS to focus on API + - S8003543, CVE-2013-2415: Improve processing of MTOM attachments + - S8004261: Improve input validation + - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames + - S8004986, CVE-2013-2383: Better handling of glyph table + - S8004987, CVE-2013-2384: Better handling of glyph table + - S8004994, CVE-2013-1569: Better handling of glyph table + - S8005432: Update access to JAX-WS + - S8005943: (process) Improved Runtime.exec + - S8006309: More reliable control panel operation + - S8006435, CVE-2013-2424: Improvements in JMX + - S8006790: Improve checking for windows + - S8006795: Improve font warning messages + - S8007406: Improve accessibility of AccessBridge + - S8007617, CVE-2013-2420: Better validation of images + - S8007667, CVE-2013-2430: Better image reading + - S8007918, CVE-2013-2429: Better image writing + - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap + - S8009305, CVE-2013-0401: Improve AWT data transfer + - S8009699, CVE-2013-2421: Methodhandle lookup + - S8009814, CVE-2013-1488: Better driver management + - S8009857. CVE-2013-2422: Problem with plugin * Backports - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts + - S7036559: ConcurrentHashMap footprint and contention improvements + - S5102804: Memory leak in Introspector.getBeanInfo(Class) for custom BeanInfo: Class param (with WeakCache from S6397609) + - S6501644: sync LayoutEngine *code* structure to match ICU + - S6886358: layout code update + - S6963811: Deadlock-prone locking changes in Introspector + - S7017324: Kerning crash in JDK 7 since ICU layout update + - S7064279: Introspector.getBeanInfo() should release some resources in timely manner + - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 * Bug fixes - Fix get_stack_bounds memory leak (alternate fix for S7197906) diff -r deabc521f9d2 -r 1a2df02fa23d acinclude.m4 --- a/acinclude.m4 Wed Mar 20 09:27:20 2013 +0000 +++ b/acinclude.m4 Tue Apr 16 20:25:56 2013 +0100 @@ -998,69 +998,6 @@ AC_SUBST(ALT_HOTSPOT_SRC_ZIP) ]) -AC_DEFUN([IT_WITH_JAXP_DROP_ZIP], -[ - AC_MSG_CHECKING([for a JAXP drop zip]) - AC_ARG_WITH([jaxp-drop-zip], - [AS_HELP_STRING(--with-jaxp-drop-zip,specify the location of the JAXP drop zip)], - [ - ALT_JAXP_DROP_ZIP=${withval} - if test "x${ALT_JAXP_DROP_ZIP}" = "xno"; then - ALT_JAXP_DROP_ZIP="not specified" - elif ! test -f ${ALT_JAXP_DROP_ZIP} ; then - AC_MSG_ERROR([Invalid JAXP drop zip specified: ${ALT_JAXP_DROP_ZIP}]) - fi - ], - [ - ALT_JAXP_DROP_ZIP="not specified" - ]) - AM_CONDITIONAL(USE_ALT_JAXP_DROP_ZIP, test "x${ALT_JAXP_DROP_ZIP}" != "xnot specified") - AC_MSG_RESULT(${ALT_JAXP_DROP_ZIP}) - AC_SUBST(ALT_JAXP_DROP_ZIP) -]) - -AC_DEFUN([IT_WITH_JAF_DROP_ZIP], -[ - AC_MSG_CHECKING([for a JAF drop zip]) - AC_ARG_WITH([jaf-drop-zip], - [AS_HELP_STRING(--with-jaf-drop-zip,specify the location of the JAF drop zip)], - [ - ALT_JAF_DROP_ZIP=${withval} - if test "x${ALT_JAF_DROP_ZIP}" = "xno"; then - ALT_JAF_DROP_ZIP="not specified" - elif ! test -f ${ALT_JAF_DROP_ZIP} ; then - AC_MSG_ERROR([Invalid JAF drop zip specified: ${ALT_JAF_DROP_ZIP}]) - fi - ], - [ - ALT_JAF_DROP_ZIP="not specified" - ]) - AM_CONDITIONAL(USE_ALT_JAF_DROP_ZIP, test "x${ALT_JAF_DROP_ZIP}" != "xnot specified") - AC_MSG_RESULT(${ALT_JAF_DROP_ZIP}) - AC_SUBST(ALT_JAF_DROP_ZIP) -]) - -AC_DEFUN([IT_WITH_JAXWS_DROP_ZIP], -[ From andrew at icedtea.classpath.org Tue Apr 16 14:16:12 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 21:16:12 +0000 Subject: /hg/release/icedtea7-forest-2.3/jaxp: 6657673: Issues with JAXP Message-ID: changeset d2142901bcb7 in /hg/release/icedtea7-forest-2.3/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jaxp?cmd=changeset;node=d2142901bcb7 author: joehw date: Sat Feb 16 18:03:23 2013 -0800 6657673: Issues with JAXP Reviewed-by: alanb, lancea, ahgross, mullan diffstat: src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java | 6 +- src/com/sun/org/apache/bcel/internal/util/Class2HTML.java | 3 +- src/com/sun/org/apache/bcel/internal/util/ClassPath.java | 20 +- src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java | 3 +- src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java | 223 ++++++++++ src/com/sun/org/apache/xalan/internal/res/XSLMessages.java | 106 ++-- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java | 63 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java | 64 -- src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java | 11 +- src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java | 98 +++- src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java | 11 +- src/com/sun/org/apache/xalan/internal/xslt/Process.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java | 10 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java | 14 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java | 7 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java | 16 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java | 12 + src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java | 14 +- src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java | 15 +- src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java | 63 +-- src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java | 4 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java | 11 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java | 5 +- src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java | 9 +- src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/SecurityManager.java | 70 +- src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java | 13 +- src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java | 36 + src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java | 9 +- src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java | 8 +- src/com/sun/org/apache/xml/internal/dtm/DTMManager.java | 3 +- src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java | 67 --- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLMessages.java | 65 +-- src/com/sun/org/apache/xml/internal/resolver/Catalog.java | 5 +- src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java | 17 +- src/com/sun/org/apache/xml/internal/resolver/Resolver.java | 5 +- src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java | 3 +- src/com/sun/org/apache/xml/internal/serializer/Encodings.java | 4 +- src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java | 5 +- src/com/sun/org/apache/xml/internal/serializer/ToStream.java | 3 +- src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java | 5 +- src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java | 100 +---- src/com/sun/org/apache/xml/internal/utils/TreeWalker.java | 7 +- src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java | 141 +---- src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java | 7 +- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java | 216 ++++---- src/com/sun/xml/internal/stream/XMLEntityStorage.java | 3 +- src/com/sun/xml/internal/stream/writers/WriterUtility.java | 3 +- src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java | 3 +- src/javax/xml/datatype/FactoryFinder.java | 62 ++- src/javax/xml/parsers/FactoryFinder.java | 10 +- src/javax/xml/stream/FactoryFinder.java | 77 ++- src/javax/xml/transform/FactoryFinder.java | 11 +- src/javax/xml/validation/SchemaFactoryFinder.java | 43 +- src/javax/xml/xpath/XPathFactoryFinder.java | 30 +- src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java | 13 +- src/org/xml/sax/helpers/NewInstance.java | 38 +- src/org/xml/sax/helpers/ParserAdapter.java | 5 +- src/org/xml/sax/helpers/ParserFactory.java | 13 +- src/org/xml/sax/helpers/SecuritySupport.java | 108 ++++ src/org/xml/sax/helpers/XMLReaderFactory.java | 62 +- 111 files changed, 1139 insertions(+), 3262 deletions(-) diffs (truncated from 6942 to 500 lines): diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java --- a/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java Fri Mar 08 16:04:36 2013 +0000 +++ b/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java Sat Feb 16 18:03:23 2013 -0800 @@ -63,6 +63,7 @@ import com.sun.org.apache.bcel.internal.util.ClassVector; import com.sun.org.apache.bcel.internal.util.ClassQueue; import com.sun.org.apache.bcel.internal.generic.Type; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; import java.io.*; import java.util.StringTokenizer; @@ -77,6 +78,7 @@ * class file. Those interested in programatically generating classes * should see the ClassGen class. + * @version $Id: JavaClass.java,v 1.4 2007-07-19 04:34:42 ofung Exp $ * @see com.sun.org.apache.bcel.internal.generic.ClassGen * @author M. Dahm */ @@ -451,9 +453,9 @@ String debug = null, sep = null; try { - debug = System.getProperty("JavaClass.debug"); + debug = SecuritySupport.getSystemProperty("JavaClass.debug"); // Get path separator either / or \ usually - sep = System.getProperty("file.separator"); + sep = SecuritySupport.getSystemProperty("file.separator"); } catch (SecurityException e) { // falls through diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/bcel/internal/util/Class2HTML.java --- a/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java Fri Mar 08 16:04:36 2013 +0000 +++ b/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java Sat Feb 16 18:03:23 2013 -0800 @@ -82,6 +82,7 @@ * method in the Method's frame will jump to the appropiate method in * the Code frame. * + * @version $Id: Class2HTML.java,v 1.3 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm */ public class Class2HTML implements Constants @@ -137,7 +138,7 @@ ClassParser parser=null; JavaClass java_class=null; String zip_file = null; - char sep = System.getProperty("file.separator").toCharArray()[0]; + char sep = SecuritySupport.getSystemProperty("file.separator").toCharArray()[0]; String dir = "." + sep; // Where to store HTML files try { diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/bcel/internal/util/ClassPath.java --- a/src/com/sun/org/apache/bcel/internal/util/ClassPath.java Fri Mar 08 16:04:36 2013 +0000 +++ b/src/com/sun/org/apache/bcel/internal/util/ClassPath.java Sat Feb 16 18:03:23 2013 -0800 @@ -66,6 +66,7 @@ * Responsible for loading (class) files from the CLASSPATH. Inspired by * sun.tools.ClassPath. * + * @version $Id: ClassPath.java,v 1.4 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm */ public class ClassPath implements Serializable { @@ -83,7 +84,7 @@ ArrayList vec = new ArrayList(); for(StringTokenizer tok=new StringTokenizer(class_path, - System.getProperty("path.separator")); + SecuritySupport.getSystemProperty("path.separator")); tok.hasMoreTokens();) { String path = tok.nextToken(); @@ -92,7 +93,7 @@ File file = new File(path); try { - if(file.exists()) { + if(SecuritySupport.getFileExists(file)) { if(file.isDirectory()) vec.add(new Dir(path)); else @@ -143,8 +144,9 @@ String name = tok.nextToken(); File file = new File(name); - if(file.exists()) + if(SecuritySupport.getFileExists(file)) { list.add(name); + } } } } @@ -159,9 +161,9 @@ String class_path, boot_path, ext_path; try { - class_path = System.getProperty("java.class.path"); - boot_path = System.getProperty("sun.boot.class.path"); - ext_path = System.getProperty("java.ext.dirs"); + class_path = SecuritySupport.getSystemProperty("java.class.path"); + boot_path = SecuritySupport.getSystemProperty("sun.boot.class.path"); + ext_path = SecuritySupport.getSystemProperty("java.ext.dirs"); } catch (SecurityException e) { return ""; @@ -176,8 +178,8 @@ getPathComponents(ext_path, dirs); for(Iterator e = dirs.iterator(); e.hasNext(); ) { - File ext_dir = new File((String)e.next()); - String[] extensions = ext_dir.list(new FilenameFilter() { + File ext_dir = new File((String)e.next()); + String[] extensions = SecuritySupport.getFileList(ext_dir, new FilenameFilter() { public boolean accept(File dir, String name) { name = name.toLowerCase(); return name.endsWith(".zip") || name.endsWith(".jar"); @@ -342,7 +344,7 @@ final File file = new File(dir + File.separatorChar + name.replace('.', File.separatorChar) + suffix); - return file.exists()? new ClassFile() { + return SecuritySupport.getFileExists(file)? new ClassFile() { public InputStream getInputStream() throws IOException { return new FileInputStream(file); } public String getPath() { try { diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java --- a/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java Fri Mar 08 16:04:36 2013 +0000 +++ b/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java Sat Feb 16 18:03:23 2013 -0800 @@ -72,6 +72,7 @@ *
    java com.sun.org.apache.bcel.internal.util.JavaWrapper -Dbcel.classloader=foo.MyLoader <real.class.name> [arguments]
    *

    * + * @version $Id: JavaWrapper.java,v 1.3 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm * @see ClassLoader */ @@ -79,7 +80,7 @@ private java.lang.ClassLoader loader; private static java.lang.ClassLoader getClassLoader() { - String s = System.getProperty("bcel.classloader"); + String s = SecuritySupport.getSystemProperty("bcel.classloader"); if((s == null) || "".equals(s)) s = "com.sun.org.apache.bcel.internal.util.ClassLoader"; diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java Sat Feb 16 18:03:23 2013 -0800 @@ -0,0 +1,223 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2002-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.sun.org.apache.bcel.internal.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FilenameFilter; +import java.io.InputStream; +import java.lang.ClassLoader; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.ListResourceBundle; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * This class is duplicated for each subpackage so keep it in sync. It is + * package private and therefore is not exposed as part of any API. + * + * @xerces.internal + */ +public final class SecuritySupport { + + private static final SecuritySupport securitySupport = new SecuritySupport(); + + /** + * Return an instance of this class. + */ + public static SecuritySupport getInstance() { + return securitySupport; + } + + static ClassLoader getContextClassLoader() { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader cl = null; + try { + cl = Thread.currentThread().getContextClassLoader(); + } catch (SecurityException ex) { + } + return cl; + } + }); + } + + static ClassLoader getSystemClassLoader() { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader cl = null; + try { + cl = ClassLoader.getSystemClassLoader(); + } catch (SecurityException ex) { + } + return cl; + } + }); + } + + static ClassLoader getParentClassLoader(final ClassLoader cl) { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader parent = null; + try { + parent = cl.getParent(); + } catch (SecurityException ex) { + } + + // eliminate loops in case of the boot + // ClassLoader returning itself as a parent + return (parent == cl) ? null : parent; + } + }); + } + + public static String getSystemProperty(final String propName) { + return (String) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return System.getProperty(propName); + } + }); + } + + static FileInputStream getFileInputStream(final File file) + throws FileNotFoundException { + try { + return (FileInputStream) AccessController.doPrivileged(new PrivilegedExceptionAction() { + public Object run() throws FileNotFoundException { + return new FileInputStream(file); + } + }); + } catch (PrivilegedActionException e) { + throw (FileNotFoundException) e.getException(); + } + } + + /** + * Return resource using the same classloader for the ObjectFactory by + * default or bootclassloader when Security Manager is in place + */ + public static InputStream getResourceAsStream(final String name) { + if (System.getSecurityManager() != null) { + return getResourceAsStream(null, name); + } else { + return getResourceAsStream(findClassLoader(), name); + } + } + + public static InputStream getResourceAsStream(final ClassLoader cl, + final String name) { + return (InputStream) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + InputStream ris; + if (cl == null) { + ris = Object.class.getResourceAsStream("/" + name); + } else { + ris = cl.getResourceAsStream(name); + } + return ris; + } + }); + } + + /** + * Gets a resource bundle using the specified base name, the default locale, + * and the caller's class loader. + * + * @param bundle the base name of the resource bundle, a fully qualified + * class name + * @return a resource bundle for the given base name and the default locale + */ + public static ListResourceBundle getResourceBundle(String bundle) { + return getResourceBundle(bundle, Locale.getDefault()); + } + + /** + * Gets a resource bundle using the specified base name and locale, and the + * caller's class loader. + * + * @param bundle the base name of the resource bundle, a fully qualified + * class name + * @param locale the locale for which a resource bundle is desired + * @return a resource bundle for the given base name and locale + */ + public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) { + return AccessController.doPrivileged(new PrivilegedAction() { + public ListResourceBundle run() { + try { + return (ListResourceBundle) ResourceBundle.getBundle(bundle, locale); + } catch (MissingResourceException e) { + try { + return (ListResourceBundle) ResourceBundle.getBundle(bundle, new Locale("en", "US")); + } catch (MissingResourceException e2) { + throw new MissingResourceException( + "Could not load any resource bundle by " + bundle, bundle, ""); + } + } + } + }); + } + + public static String[] getFileList(final File f, final FilenameFilter filter) { + return ((String[]) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return f.list(filter); + } + })); + } + + public static boolean getFileExists(final File f) { + return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return f.exists() ? Boolean.TRUE : Boolean.FALSE; + } + })).booleanValue(); + } + + static long getLastModified(final File f) { + return ((Long) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return new Long(f.lastModified()); + } + })).longValue(); + } + + + /** + * Figure out which ClassLoader to use. + */ + public static ClassLoader findClassLoader() + { + if (System.getSecurityManager()!=null) { + //this will ensure bootclassloader is used + return null; + } else { + return SecuritySupport.class.getClassLoader(); + } + } // findClassLoader():ClassLoader + + private SecuritySupport() { + } +} diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/xalan/internal/res/XSLMessages.java --- a/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java Fri Mar 08 16:04:36 2013 +0000 +++ b/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java Sat Feb 16 18:03:23 2013 -0800 @@ -22,68 +22,72 @@ */ package com.sun.org.apache.xalan.internal.res; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; import java.util.ListResourceBundle; import com.sun.org.apache.xpath.internal.res.XPATHMessages; /** - * Sets things up for issuing error messages. This class is misnamed, and - * should be called XalanMessages, or some such. + * Sets things up for issuing error messages. This class is misnamed, and should + * be called XalanMessages, or some such. + * * @xsl.usage internal */ -public class XSLMessages extends XPATHMessages -{ +public class XSLMessages extends XPATHMessages { - /** The language specific resource object for Xalan messages. */ - private static ListResourceBundle XSLTBundle = null; + /** + * The language specific resource object for Xalan messages. + */ + private static ListResourceBundle XSLTBundle = null; + /** + * The class name of the Xalan error message string table. + */ + private static final String XSLT_ERROR_RESOURCES = + "com.sun.org.apache.xalan.internal.res.XSLTErrorResources"; - /** The class name of the Xalan error message string table. */ - private static final String XSLT_ERROR_RESOURCES = - "com.sun.org.apache.xalan.internal.res.XSLTErrorResources"; + /** + * Creates a message from the specified key and replacement arguments, + * localized to the given locale. + * + * @param msgKey The key for the message text. + * @param args The arguments to be used as replacement text in the message + * created. + * + * @return The formatted message string. + */ + public static String createMessage(String msgKey, Object args[]) //throws Exception + { + if (XSLTBundle == null) { + XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES); + } - /** - * Creates a message from the specified key and replacement - * arguments, localized to the given locale. - * - * @param msgKey The key for the message text. - * @param args The arguments to be used as replacement text - * in the message created. - * - * @return The formatted message string. - */ - public static final String createMessage(String msgKey, Object args[]) //throws Exception - { - if (XSLTBundle == null) - XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES); + if (XSLTBundle != null) { + return createMsg(XSLTBundle, msgKey, args); + } else { + return "Could not load any resource bundles."; + } + } - if (XSLTBundle != null) + /** + * Creates a message from the specified key and replacement arguments, + * localized to the given locale. + * + * @param msgKey The key for the message text. + * @param args The arguments to be used as replacement text in the message + * created. + * + * @return The formatted warning string. + */ + public static String createWarning(String msgKey, Object args[]) //throws Exception { - return createMsg(XSLTBundle, msgKey, args); + if (XSLTBundle == null) { + XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES); + } + + if (XSLTBundle != null) { + return createMsg(XSLTBundle, msgKey, args); + } else { + return "Could not load any resource bundles."; + } } - else - return "Could not load any resource bundles."; - } - - /** - * Creates a message from the specified key and replacement - * arguments, localized to the given locale. - * - * @param msgKey The key for the message text. - * @param args The arguments to be used as replacement text - * in the message created. - * - * @return The formatted warning string. - */ - public static final String createWarning(String msgKey, Object args[]) //throws Exception - { - if (XSLTBundle == null) - XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES); - - if (XSLTBundle != null) - { - return createMsg(XSLTBundle, msgKey, args); - } - else - return "Could not load any resource bundles."; - } } diff -r a2c49387365b -r d2142901bcb7 src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java --- a/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java Fri Mar 08 16:04:36 2013 +0000 From andrew at icedtea.classpath.org Tue Apr 16 14:16:19 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 21:16:19 +0000 Subject: /hg/release/icedtea7-forest-2.3/jaxws: 2 new changesets Message-ID: changeset a0026b9ad761 in /hg/release/icedtea7-forest-2.3/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jaxws?cmd=changeset;node=a0026b9ad761 author: mkos date: Fri Feb 01 15:56:12 2013 +0100 8003543: Improve processing of MTOM attachments Summary: old File API replaced by NIO API; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu changeset b1877762d45c in /hg/release/icedtea7-forest-2.3/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jaxws?cmd=changeset;node=b1877762d45c author: mkos date: Wed Feb 20 22:42:04 2013 +0100 8005432: Update access to JAX-WS Summary: newly restricted the whole package com.sun.xml.internal; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu diffstat: src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java | 13 +- src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java | 24 +- src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java | 144 +++++++++ src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java | 46 ++- src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java | 157 ++++++--- src/share/jaxws_classes/javax/xml/soap/MessageFactory.java | 13 +- src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java | 4 +- src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java | 4 +- src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java | 10 +- 9 files changed, 328 insertions(+), 87 deletions(-) diffs (truncated from 694 to 500 lines): diff -r 8eb0bc947ad4 -r b1877762d45c src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Fri Mar 08 16:04:54 2013 +0000 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -235,7 +235,7 @@ String pkg = nav.getPackageName(ci.getClazz()); if(!registries.containsKey(pkg)) { // insert the package's object factory - C c = nav.findClass(pkg + ".ObjectFactory",ci.getClazz()); + C c = loadObjectFactory(ci, pkg); if(c!=null) addRegistry(c,(Locatable)p); } @@ -264,6 +264,15 @@ return r; } + private C loadObjectFactory(ClassInfoImpl ci, String pkg) { + try { + return nav.findClass(pkg + ".ObjectFactory", ci.getClazz()); + } catch (SecurityException ignored) { + // treat SecurityException in same way as ClassNotFoundException in this case + return null; + } + } + /** * Checks the uniqueness of the type name. */ diff -r 8eb0bc947ad4 -r b1877762d45c src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java --- a/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Fri Mar 08 16:04:54 2013 +0000 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,7 @@ import java.nio.ByteBuffer; import java.io.File; import java.io.IOException; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -50,41 +51,45 @@ } // size of the chunk given by the parser + @Override public int size() { return len; } + @Override public byte[] read() { return data; } + @Override public long writeTo(DataFile file) { return file.writeTo(data, 0, len); } /** - * * @param dataHead * @param buf * @return */ + @Override public Data createNext(DataHead dataHead, ByteBuffer buf) { if (!config.isOnlyMemory() && dataHead.inMemory >= config.memoryThreshold) { try { String prefix = config.getTempFilePrefix(); String suffix = config.getTempFileSuffix(); - File dir = config.getTempDir(); - File tempFile = (dir == null) - ? File.createTempFile(prefix, suffix) - : File.createTempFile(prefix, suffix, dir); - LOGGER.fine("Created temp file = "+tempFile); + File tempFile = TempFiles.createTempFile(prefix, suffix, config.getTempDir()); + // delete the temp file when VM exits as a last resort for file clean up + tempFile.deleteOnExit(); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile); + } dataHead.dataFile = new DataFile(tempFile); - } catch(IOException ioe) { + } catch (IOException ioe) { throw new MIMEParsingException(ioe); } if (dataHead.head != null) { - for(Chunk c=dataHead.head; c != null; c=c.next) { + for (Chunk c = dataHead.head; c != null; c = c.next) { long pointer = c.data.writeTo(dataHead.dataFile); c.data = new FileData(dataHead.dataFile, pointer, len); } @@ -94,4 +99,5 @@ return new MemoryData(buf, config); } } + } diff -r 8eb0bc947ad4 -r b1877762d45c src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java Wed Feb 20 22:42:04 2013 +0100 @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.xml.internal.org.jvnet.mimepull; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Array; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Helper utility to support jdk <= jdk1.6. After jdk1.6 EOL reflection can be removed and API can be used directly. + */ +class TempFiles { + + private static final Logger LOGGER = Logger.getLogger(TempFiles.class.getName()); + + private static final Class CLASS_FILES; + private static final Class CLASS_PATH; + private static final Class CLASS_FILE_ATTRIBUTE; + private static final Class CLASS_FILE_ATTRIBUTES; + private static final Method METHOD_FILE_TO_PATH; + private static final Method METHOD_FILES_CREATE_TEMP_FILE; + private static final Method METHOD_FILES_CREATE_TEMP_FILE_WITHPATH; + + private static final Method METHOD_PATH_TO_FILE; + + private static boolean useJdk6API; + + static { + useJdk6API = isJdk6(); + + CLASS_FILES = safeGetClass("java.nio.file.Files"); + CLASS_PATH = safeGetClass("java.nio.file.Path"); + CLASS_FILE_ATTRIBUTE = safeGetClass("java.nio.file.attribute.FileAttribute"); + CLASS_FILE_ATTRIBUTES = safeGetClass("[Ljava.nio.file.attribute.FileAttribute;"); + METHOD_FILE_TO_PATH = safeGetMethod(File.class, "toPath"); + METHOD_FILES_CREATE_TEMP_FILE = safeGetMethod(CLASS_FILES, "createTempFile", String.class, String.class, CLASS_FILE_ATTRIBUTES); + METHOD_FILES_CREATE_TEMP_FILE_WITHPATH = safeGetMethod(CLASS_FILES, "createTempFile", CLASS_PATH, String.class, String.class, CLASS_FILE_ATTRIBUTES); + METHOD_PATH_TO_FILE = safeGetMethod(CLASS_PATH, "toFile"); + } + + private static boolean isJdk6() { + String javaVersion = System.getProperty("java.version"); + LOGGER.log(Level.FINEST, "Detected java version = {0}", javaVersion); + return javaVersion.startsWith("1.6."); + } + + private static Class safeGetClass(String className) { + // it is jdk 6 or something failed already before + if (useJdk6API) return null; + try { + return Class.forName(className); + } catch (ClassNotFoundException e) { + LOGGER.log(Level.SEVERE, "Exception cought", e); + LOGGER.log(Level.WARNING, "Class {0} not found. Temp files will be created using old java.io API.", className); + useJdk6API = true; + return null; + } + } + + private static Method safeGetMethod(Class clazz, String methodName, Class... parameterTypes) { + // it is jdk 6 or something failed already before + if (useJdk6API) return null; + try { + return clazz.getMethod(methodName, parameterTypes); + } catch (NoSuchMethodException e) { + LOGGER.log(Level.SEVERE, "Exception cought", e); + LOGGER.log(Level.WARNING, "Method {0} not found. Temp files will be created using old java.io API.", methodName); + useJdk6API = true; + return null; + } + } + + + static Object toPath(File f) throws InvocationTargetException, IllegalAccessException { + return METHOD_FILE_TO_PATH.invoke(f); + } + + static File toFile(Object path) throws InvocationTargetException, IllegalAccessException { + return (File) METHOD_PATH_TO_FILE.invoke(path); + } + + static File createTempFile(String prefix, String suffix, File dir) throws IOException { + + if (useJdk6API) { + LOGGER.log(Level.FINEST, "Jdk6 detected, temp file (prefix:{0}, suffix:{1}) being created using old java.io API.", new Object[]{prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + + } else { + + try { + if (dir != null) { + Object path = toPath(dir); + LOGGER.log(Level.FINEST, "Temp file (path: {0}, prefix:{1}, suffix:{2}) being created using NIO API.", new Object[]{dir.getAbsolutePath(), prefix, suffix}); + return toFile(METHOD_FILES_CREATE_TEMP_FILE_WITHPATH.invoke(null, path, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); + } else { + LOGGER.log(Level.FINEST, "Temp file (prefix:{0}, suffix:{1}) being created using NIO API.", new Object[]{prefix, suffix}); + return toFile(METHOD_FILES_CREATE_TEMP_FILE.invoke(null, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); + } + + } catch (IllegalAccessException e) { + LOGGER.log(Level.SEVERE, "Exception caught", e); + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + + } catch (InvocationTargetException e) { + LOGGER.log(Level.SEVERE, "Exception caught", e); + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + } + } + + } + + +} diff -r 8eb0bc947ad4 -r b1877762d45c src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java Fri Mar 08 16:04:54 2013 +0000 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,6 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ - package com.sun.xml.internal.ws.client; import com.sun.istack.internal.NotNull; @@ -30,13 +29,11 @@ import com.sun.xml.internal.ws.Closeable; import com.sun.xml.internal.ws.api.BindingID; import com.sun.xml.internal.ws.api.EndpointAddress; -import com.sun.xml.internal.ws.api.WSBinding; import com.sun.xml.internal.ws.api.WSService; import com.sun.xml.internal.ws.api.addressing.WSEndpointReference; import com.sun.xml.internal.ws.api.client.ServiceInterceptor; import com.sun.xml.internal.ws.api.client.ServiceInterceptorFactory; -import com.sun.xml.internal.ws.api.model.SEIModel; -import com.sun.xml.internal.ws.api.pipe.*; +import com.sun.xml.internal.ws.api.pipe.Stubs; import com.sun.xml.internal.ws.api.server.Container; import com.sun.xml.internal.ws.api.server.ContainerResolver; import com.sun.xml.internal.ws.api.wsdl.parser.WSDLParserExtension; @@ -45,8 +42,8 @@ import com.sun.xml.internal.ws.client.HandlerConfigurator.AnnotationConfigurator; import com.sun.xml.internal.ws.client.HandlerConfigurator.HandlerResolverImpl; import com.sun.xml.internal.ws.client.sei.SEIStub; +import com.sun.xml.internal.ws.developer.UsesJAXBContextFeature; import com.sun.xml.internal.ws.developer.WSBindingProvider; -import com.sun.xml.internal.ws.developer.UsesJAXBContextFeature; import com.sun.xml.internal.ws.model.AbstractSEIModelImpl; import com.sun.xml.internal.ws.model.RuntimeModeler; import com.sun.xml.internal.ws.model.SOAPSEIModel; @@ -59,7 +56,6 @@ import com.sun.xml.internal.ws.util.JAXWSUtils; import com.sun.xml.internal.ws.util.ServiceConfigurationError; import com.sun.xml.internal.ws.util.ServiceFinder; -import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver; import com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser; import org.xml.sax.SAXException; @@ -74,16 +70,17 @@ import javax.xml.ws.handler.HandlerResolver; import javax.xml.ws.soap.AddressingFeature; import java.io.IOException; +import java.lang.RuntimePermission; import java.lang.reflect.Proxy; import java.net.MalformedURLException; import java.net.URL; -import java.security.AccessController; -import java.security.PrivilegedAction; +import java.security.*; import java.util.*; import java.util.concurrent.Executor; -import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; +import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver; + /** * Service objects provide the client view of a Web service. * @@ -578,7 +575,7 @@ } } - private T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, Class portInterface, + private T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, final Class portInterface, WebServiceFeature[] webServiceFeatures, SEIPortInfo eif) { //fail if service doesnt have WSDL if (wsdlService == null) @@ -592,14 +589,37 @@ BindingImpl binding = eif.createBinding(webServiceFeatures,portInterface); SEIStub pis = new SEIStub(eif, binding, eif.model, epr); - T proxy = portInterface.cast(Proxy.newProxyInstance(portInterface.getClassLoader(), - new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis)); + T proxy = createProxy(portInterface, pis); + if (serviceInterceptor != null) { serviceInterceptor.postCreateProxy((WSBindingProvider)proxy, portInterface); } return proxy; } + private T createProxy(final Class portInterface, final SEIStub pis) { + + // accessClassInPackage privilege needs to be granted ... + RuntimePermission perm = new RuntimePermission("accessClassInPackage.com.sun." + "xml.internal.*"); + PermissionCollection perms = perm.newPermissionCollection(); + perms.add(perm); + + return AccessController.doPrivileged( + new PrivilegedAction() { + @Override + public T run() { + Object proxy = Proxy.newProxyInstance(portInterface.getClassLoader(), + new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis); + return portInterface.cast(proxy); + } + }, + new AccessControlContext( + new ProtectionDomain[]{ + new ProtectionDomain(null, perms) + }) + ); + } + /** * Lists up the port names in WSDL. For error diagnostics. */ diff -r 8eb0bc947ad4 -r b1877762d45c src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java --- a/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java Fri Mar 08 16:04:54 2013 +0000 +++ b/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,20 +43,12 @@ throws SOAPException { try { - Class spiClass; - if (classLoader == null) { - spiClass = Class.forName(className); - } else { - spiClass = classLoader.loadClass(className); - } + Class spiClass = safeLoadClass(className, classLoader); return spiClass.newInstance(); } catch (ClassNotFoundException x) { - throw new SOAPException( - "Provider " + className + " not found", x); + throw new SOAPException("Provider " + className + " not found", x); } catch (Exception x) { - throw new SOAPException( - "Provider " + className + " could not be instantiated: " + x, - x); + throw new SOAPException("Provider " + className + " could not be instantiated: " + x, x); } } @@ -73,11 +65,65 @@ * a system property * @exception SOAPException if there is a SOAP error */ - static Object find(String factId) + static Object find(String factoryId) throws SOAPException { - final ClassLoader classLoader; - final String factoryId = factId; + return find(factoryId, null, false); + } + + /** + * Finds the implementation Class object for the given + * factory name, or if that fails, finds the Class object + * for the given fallback class name. The arguments supplied must be + * used in order. If using the first argument is successful, the second + * one will not be used. + *

    + * This method is package private so that this code can be shared. + * + * @return the Class object of the specified message factory; + * may be null + * + * @param factoryId the name of the factory to find, which is + * a system property + * @param fallbackClassName the implementation class name, which is + * to be used only if nothing else + * is found; null to indicate that + * there is no fallback class name + * @exception SOAPException if there is a SOAP error + */ + static Object find(String factoryId, String fallbackClassName) + throws SOAPException + { + return find(factoryId, fallbackClassName, true); + } + + /** + * Finds the implementation Class object for the given + * factory name, or if that fails, finds the Class object + * for the given default class name, but only if tryFallback + * is true. The arguments supplied must be used in order + * If using the first argument is successful, the second one will not + * be used. Note the default class name may be needed even if fallback + * is not to be attempted, so certain error conditions can be handled. + *

    + * This method is package private so that this code can be shared. + * + * @return the Class object of the specified message factory; + * may not be null + * + * @param factoryId the name of the factory to find, which is + * a system property + * @param defaultClassName the implementation class name, which is + * to be used only if nothing else + * is found; null to indicate + * that there is no default class name + * @param tryFallback whether to try the default class as a + * fallback + * @exception SOAPException if there is a SOAP error + */ + static Object find(String factoryId, String defaultClassName, + boolean tryFallback) throws SOAPException { + ClassLoader classLoader; try { classLoader = Thread.currentThread().getContextClassLoader(); } catch (Exception x) { @@ -99,7 +145,7 @@ String javah=System.getProperty( "java.home" ); String configFile = javah + File.separator + "lib" + File.separator + "jaxm.properties"; - final File f=new File( configFile ); + File f=new File( configFile ); if( f.exists()) { Properties props=new Properties(); props.load( new FileInputStream(f)); @@ -134,49 +180,56 @@ } catch( Exception ex ) { } - return null; + // If not found and fallback should not be tried, return a null result. From andrew at icedtea.classpath.org Tue Apr 16 14:16:30 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 21:16:30 +0000 Subject: /hg/release/icedtea7-forest-2.3/hotspot: 3 new changesets Message-ID: changeset 10d9ec58b4df in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=10d9ec58b4df author: twisti date: Mon Feb 25 11:54:35 2013 -0800 8004336: Better handling of method handle intrinsic frames Reviewed-by: kvn, jrose, ahgross changeset 8cda51f4dcbf in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=8cda51f4dcbf author: poonam date: Wed Mar 06 16:30:38 2013 -0800 8006309: More reliable control panel operation Summary: Added a comment in the dead Kernel code Reviewed-by: ahgross, sla, coleenp changeset ad5a321edea2 in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=ad5a321edea2 author: kvn date: Fri Mar 15 09:33:37 2013 -0700 8009699: Methodhandle lookup Reviewed-by: ahgross, jrose, jdn diffstat: src/share/vm/opto/library_call.cpp | 4 ++-- src/share/vm/prims/methodHandles.cpp | 8 ++++++++ src/share/vm/runtime/thread.cpp | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diffs (56 lines): diff -r 23888f3dec52 -r ad5a321edea2 src/share/vm/opto/library_call.cpp --- a/src/share/vm/opto/library_call.cpp Fri Mar 08 16:05:19 2013 +0000 +++ b/src/share/vm/opto/library_call.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -3931,7 +3931,8 @@ } } } - else if (method->is_method_handle_adapter()) { + + if (method->is_method_handle_adapter()) { // This is an internal adapter frame from the MethodHandleCompiler -- skip it return true; } @@ -5476,4 +5477,3 @@ push(result); return true; } - diff -r 23888f3dec52 -r ad5a321edea2 src/share/vm/prims/methodHandles.cpp --- a/src/share/vm/prims/methodHandles.cpp Fri Mar 08 16:05:19 2013 +0000 +++ b/src/share/vm/prims/methodHandles.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -645,6 +645,13 @@ } } methodHandle m = result.resolved_method(); + KlassHandle mklass = m->method_holder(); + KlassHandle receiver_limit = result.resolved_klass(); + if (receiver_limit.is_null() || + // ignore passed-in limit; interfaces are interconvertible + receiver_limit->is_interface() && mklass->is_interface()) { + receiver_limit = mklass; + } oop vmtarget = NULL; int vmindex = methodOopDesc::nonvirtual_vtable_index; if (defc->is_interface()) { @@ -665,6 +672,7 @@ java_lang_invoke_MemberName::set_vmtarget(mname(), vmtarget); java_lang_invoke_MemberName::set_vmindex(mname(), vmindex); java_lang_invoke_MemberName::set_modifiers(mname(), mods); + java_lang_invoke_MemberName::set_clazz(mname(), receiver_limit->java_mirror()); DEBUG_ONLY(KlassHandle junk1; int junk2); assert(decode_MemberName(mname(), junk1, junk2) == result.resolved_method(), "properly stored for later decoding"); diff -r 23888f3dec52 -r ad5a321edea2 src/share/vm/runtime/thread.cpp --- a/src/share/vm/runtime/thread.cpp Fri Mar 08 16:05:19 2013 +0000 +++ b/src/share/vm/runtime/thread.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -3555,6 +3555,9 @@ os::dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), name); library = os::dll_load(buffer, ebuf, sizeof ebuf); #ifdef KERNEL + + // Dead code, KERNEL is never built in JDK7 or later. This code will be removed in a future update release. + // Download instrument dll if (library == NULL && strcmp(name, "instrument") == 0) { char *props = Arguments::get_kernel_properties(); From andrew at icedtea.classpath.org Tue Apr 16 14:16:40 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 16 Apr 2013 21:16:40 +0000 Subject: /hg/release/icedtea7-forest-2.3/jdk: 31 new changesets Message-ID: changeset f94abecc5856 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=f94abecc5856 author: anthony date: Wed Jan 18 19:09:26 2012 +0400 7130662: GTK file dialog crashes with a NPE Summary: Guard adding a back slash to the directory name with an if (!= null) check Reviewed-by: anthony, art Contributed-by: Matt changeset 05e8ce931b7f in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=05e8ce931b7f author: andrew date: Wed Apr 10 15:29:37 2013 +0100 6657673: Issues with JAXP Reviewed-by: alanb, lancea, ahgross, mullan changeset 2389a7227a05 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=2389a7227a05 author: malenkov date: Fri Feb 08 18:06:56 2013 +0400 7200507: Refactor Introspector internals Reviewed-by: ahgross, art changeset 4df72afdad14 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=4df72afdad14 author: michaelm date: Wed Feb 13 10:47:15 2013 +0000 8000724: Improve networking serialization Summary: delegate InetAddress fields to a holder object Reviewed-by: alanb, chegar changeset e2c37d07f387 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=e2c37d07f387 author: andrew date: Wed Apr 10 17:27:39 2013 +0100 8004986: Better handling of glyph table 8004987: Improve font layout 8004994: Improve checking of glyph table Reviewed-by: bae, mschoene, jgodinez Contributed-by: steven.loomis at oracle.com changeset c1c43fa38d93 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=c1c43fa38d93 author: andrew date: Wed Apr 10 22:07:37 2013 +0100 8001031: Better font processing. Reviewed-by: vadim, prr, mschoene changeset 096ed306159f in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=096ed306159f author: andrew date: Wed Apr 10 23:02:46 2013 +0100 8001040: Rework RMI model Reviewed-by: alanb, ahgross, coffeys, dmocek changeset 225dd0768720 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=225dd0768720 author: dfuchs date: Mon Mar 11 15:07:19 2013 +0100 8001322: Refactor deserialization Reviewed-by: mchung, skoivu, smarks changeset 3ef8908aecab in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=3ef8908aecab author: dmocek date: Tue Feb 05 16:38:25 2013 -0800 8001329: Augment RMI logging Reviewed-by: smarks, hawtin, alanb changeset 75334b922465 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=75334b922465 author: chegar date: Thu Dec 20 13:40:27 2012 +0000 8003335: Better handling of Finalizer thread Reviewed-by: alanb, ahgross changeset a487556c02af in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=a487556c02af author: andrew date: Wed Apr 10 23:17:54 2013 +0100 8003445: Adjust JAX-WS to focus on API Reviewed-by: vinnie, ahgross, mgrebac changeset 4344de2c6ec2 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=4344de2c6ec2 author: serb date: Tue Feb 19 20:40:48 2013 +0400 8004261: Improve input validation Reviewed-by: art, mschoene, amenkov changeset a9951bd61959 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=a9951bd61959 author: mkos date: Wed Feb 20 22:26:11 2013 +0100 8005432: Update access to JAX-WS Summary: newly restricted the whole package com.sun.xml.internal; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu changeset 21f116e7eda0 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=21f116e7eda0 author: uta date: Tue Feb 26 15:58:40 2013 +0400 8005943: (process) Improved Runtime.exec Reviewed-by: alanb, ahgross changeset ee78f13385a2 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=ee78f13385a2 author: dsamersoff date: Mon Feb 25 20:06:22 2013 +0400 8006435: Improvements in JMX Summary: Improvements in JMX Reviewed-by: dfuchs, skoivu changeset b599ded69e0c in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=b599ded69e0c author: malenkov date: Tue Feb 05 20:18:16 2013 +0400 8006790: Improve checking for windows Reviewed-by: art, mschoene changeset 65f1d1c93314 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=65f1d1c93314 author: prr date: Thu Feb 07 12:14:31 2013 -0800 8006795: Improve font warning messages Reviewed-by: bae, jgodinez, mschoene changeset 6446301eabf8 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=6446301eabf8 author: raginip date: Fri Mar 01 14:06:10 2013 +0000 8007406: Improve accessibility of AccessBridge Reviewed-by: skoivu, mullan, ptbrunet changeset 7ae5bd5f0f40 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=7ae5bd5f0f40 author: bae date: Fri Feb 22 15:14:25 2013 +0400 8007617: Better validation of images Reviewed-by: prr, jgodinez changeset 48d6f4da4774 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=48d6f4da4774 author: bae date: Tue Feb 26 00:15:17 2013 +0400 8007667: Better image reading Reviewed-by: prr, jgodinez changeset 06d767baa35e in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=06d767baa35e author: andrew date: Wed Apr 10 23:35:45 2013 +0100 8007918: Better image writing Reviewed-by: prr, jgodinez changeset a3389b193ac0 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=a3389b193ac0 author: vlivanov date: Fri Mar 01 03:50:33 2013 +0400 8008140: Better method handle resolution Reviewed-by: jrose, twisti, jdn changeset 69ee5286b348 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=69ee5286b348 author: vlivanov date: Fri Mar 01 03:50:17 2013 +0400 8009049: Better method handle binding Reviewed-by: jrose, twisti, jdn changeset c76b07cd38f7 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=c76b07cd38f7 author: chegar date: Sun Mar 03 10:11:45 2013 +0000 8009063: Improve reliability of ConcurrentHashMap Reviewed-by: alanb, ahgross changeset a785043fa0d7 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=a785043fa0d7 author: dfuchs date: Thu Mar 14 17:27:32 2013 +0100 8009305: Improve AWT data transfer Reviewed-by: art, skoivu, smarks, ant changeset 6bd7f5484082 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=6bd7f5484082 author: kvn date: Thu Mar 14 08:55:04 2013 -0700 8009677: Better setting of setters Reviewed-by: ahgross, jrose, twisti changeset 2e485cffa19b in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=2e485cffa19b author: lancea date: Sat Mar 16 10:08:14 2013 -0400 8009814: Better driver management Reviewed-by: alanb, skoivu changeset c764b542f8f6 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=c764b542f8f6 author: smarks date: Mon Mar 18 18:05:31 2013 -0700 8009857: Problem with plugin Reviewed-by: jdn, mchung changeset bd8d9d73de2d in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=bd8d9d73de2d author: andrew date: Mon Apr 15 23:39:14 2013 +0100 Handle bad font in TCK changeset c4f267bf4b51 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=c4f267bf4b51 author: Roman Kennke date: Mon Apr 15 14:30:22 2013 +0200 Fix offset problem in ICU LETableReference. changeset 8e91101e36f0 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=8e91101e36f0 author: andrew date: Mon Apr 15 23:41:13 2013 +0100 Merge diffstat: src/macosx/classes/sun/lwawt/LWWindowPeer.java | 8 +- src/macosx/classes/sun/lwawt/macosx/CFileDialog.java | 4 +- src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java | 4 +- src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java | 293 ++++- src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java | 147 ++- src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java | 6 +- src/share/classes/com/sun/media/sound/AbstractMidiDevice.java | 25 +- src/share/classes/com/sun/media/sound/FastShortMessage.java | 2 +- src/share/classes/com/sun/media/sound/FastSysexMessage.java | 2 +- src/share/classes/com/sun/media/sound/MidiOutDevice.java | 16 +- src/share/classes/com/sun/media/sound/RealTimeSequencer.java | 2 +- src/share/classes/java/awt/Window.java | 4 +- src/share/classes/java/awt/peer/WindowPeer.java | 13 +- src/share/classes/java/beans/ThreadGroupContext.java | 7 +- src/share/classes/java/beans/WeakIdentityMap.java | 181 +++ src/share/classes/java/io/ObjectInputStream.java | 19 + src/share/classes/java/lang/ProcessBuilder.java | 19 +- src/share/classes/java/lang/invoke/MethodHandles.java | 36 +- src/share/classes/java/lang/ref/Finalizer.java | 18 +- src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java | 2 +- src/share/classes/java/net/Inet4Address.java | 39 +- src/share/classes/java/net/Inet4AddressImpl.java | 2 +- src/share/classes/java/net/Inet6Address.java | 19 +- src/share/classes/java/net/Inet6AddressImpl.java | 2 +- src/share/classes/java/net/InetAddress.java | 120 +- src/share/classes/java/net/InetSocketAddress.java | 4 +- src/share/classes/java/rmi/server/LogStream.java | 9 +- src/share/classes/java/sql/DriverManager.java | 4 +- src/share/classes/java/util/concurrent/ConcurrentHashMap.java | 28 +- src/share/classes/sun/awt/EmbeddedFrame.java | 4 +- src/share/classes/sun/awt/datatransfer/TransferableProxy.java | 20 +- src/share/classes/sun/awt/image/ImageRepresentation.java | 19 +- src/share/classes/sun/font/CMap.java | 3 - src/share/classes/sun/invoke/util/Wrapper.java | 3 + src/share/classes/sun/reflect/misc/MethodUtil.java | 40 +- src/share/classes/sun/reflect/misc/ReflectUtil.java | 10 +- src/share/classes/sun/rmi/server/MarshalInputStream.java | 14 +- src/share/lib/security/java.security | 48 +- src/share/lib/security/java.security-macosx | 48 +- src/share/lib/security/java.security-solaris | 48 +- src/share/lib/security/java.security-windows | 50 +- src/share/native/java/net/InetAddress.c | 23 +- src/share/native/java/net/net_util.c | 70 +- src/share/native/java/net/net_util.h | 12 +- src/share/native/sun/awt/image/awt_ImageRep.c | 173 ++- src/share/native/sun/awt/image/jpeg/imageioJPEG.c | 45 +- src/share/native/sun/font/FontInstanceAdapter.cpp | 47 +- src/share/native/sun/font/FontInstanceAdapter.h | 1 + src/share/native/sun/font/fontscalerdefs.h | 21 +- src/share/native/sun/font/layout/AlternateSubstSubtables.cpp | 11 +- src/share/native/sun/font/layout/AlternateSubstSubtables.h | 6 +- src/share/native/sun/font/layout/ArabicLayoutEngine.cpp | 36 +- src/share/native/sun/font/layout/ArabicLayoutEngine.h | 2 +- src/share/native/sun/font/layout/ArabicShaping.cpp | 14 +- src/share/native/sun/font/layout/ArabicShaping.h | 2 + src/share/native/sun/font/layout/AttachmentPosnSubtables.h | 6 +- src/share/native/sun/font/layout/CanonData.cpp | 5 + src/share/native/sun/font/layout/CanonShaping.cpp | 10 +- src/share/native/sun/font/layout/CanonShaping.h | 2 + src/share/native/sun/font/layout/ClassDefinitionTables.cpp | 104 +- src/share/native/sun/font/layout/ClassDefinitionTables.h | 27 +- src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp | 48 +- src/share/native/sun/font/layout/ContextualGlyphSubstProc.h | 8 +- src/share/native/sun/font/layout/ContextualSubstSubtables.cpp | 8 +- src/share/native/sun/font/layout/ContextualSubstSubtables.h | 22 + src/share/native/sun/font/layout/CoverageTables.h | 3 + src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp | 6 +- src/share/native/sun/font/layout/CursiveAttachmentSubtables.h | 3 +- src/share/native/sun/font/layout/DeviceTables.h | 1 + src/share/native/sun/font/layout/ExtensionSubtables.cpp | 8 +- src/share/native/sun/font/layout/Features.cpp | 12 +- src/share/native/sun/font/layout/GDEFMarkFilter.cpp | 7 +- src/share/native/sun/font/layout/GDEFMarkFilter.h | 4 +- src/share/native/sun/font/layout/GXLayoutEngine.cpp | 5 +- src/share/native/sun/font/layout/GXLayoutEngine.h | 4 +- src/share/native/sun/font/layout/GlyphDefinitionTables.cpp | 28 +- src/share/native/sun/font/layout/GlyphDefinitionTables.h | 20 +- src/share/native/sun/font/layout/GlyphIterator.cpp | 27 +- src/share/native/sun/font/layout/GlyphIterator.h | 6 +- src/share/native/sun/font/layout/GlyphLookupTables.cpp | 15 +- src/share/native/sun/font/layout/GlyphLookupTables.h | 4 +- src/share/native/sun/font/layout/GlyphPositioningTables.cpp | 6 +- src/share/native/sun/font/layout/GlyphPositioningTables.h | 5 +- src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp | 36 +- src/share/native/sun/font/layout/GlyphPosnLookupProc.h | 4 +- src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp | 28 +- src/share/native/sun/font/layout/GlyphSubstLookupProc.h | 4 +- src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp | 7 +- src/share/native/sun/font/layout/GlyphSubstitutionTables.h | 5 +- src/share/native/sun/font/layout/HanLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/HanLayoutEngine.h | 2 +- src/share/native/sun/font/layout/HangulLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/HangulLayoutEngine.h | 2 +- src/share/native/sun/font/layout/ICUFeatures.h | 9 +- src/share/native/sun/font/layout/IndicLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/IndicLayoutEngine.h | 2 +- src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp | 14 +- src/share/native/sun/font/layout/IndicRearrangementProcessor.h | 7 +- src/share/native/sun/font/layout/IndicReordering.cpp | 5 + src/share/native/sun/font/layout/KernTable.cpp | 55 +- src/share/native/sun/font/layout/KernTable.h | 12 +- src/share/native/sun/font/layout/KhmerLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/KhmerLayoutEngine.h | 2 +- src/share/native/sun/font/layout/LEFontInstance.h | 19 + src/share/native/sun/font/layout/LEScripts.h | 22 +- src/share/native/sun/font/layout/LETableReference.h | 497 ++++++++++ src/share/native/sun/font/layout/LETypes.h | 45 +- src/share/native/sun/font/layout/LayoutEngine.cpp | 103 +- src/share/native/sun/font/layout/LayoutEngine.h | 8 +- src/share/native/sun/font/layout/LigatureSubstProc.cpp | 68 +- src/share/native/sun/font/layout/LigatureSubstProc.h | 6 +- src/share/native/sun/font/layout/LigatureSubstSubtables.cpp | 4 +- src/share/native/sun/font/layout/LigatureSubstSubtables.h | 5 +- src/share/native/sun/font/layout/LookupProcessor.cpp | 127 +- src/share/native/sun/font/layout/LookupProcessor.h | 19 +- src/share/native/sun/font/layout/LookupTables.cpp | 29 +- src/share/native/sun/font/layout/LookupTables.h | 10 +- src/share/native/sun/font/layout/Lookups.cpp | 36 +- src/share/native/sun/font/layout/Lookups.h | 29 +- src/share/native/sun/font/layout/MarkArrays.h | 1 + src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToBasePosnSubtables.h | 4 +- src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h | 5 +- src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h | 4 +- src/share/native/sun/font/layout/MorphTables.cpp | 40 +- src/share/native/sun/font/layout/MorphTables.h | 7 +- src/share/native/sun/font/layout/MultipleSubstSubtables.cpp | 4 +- src/share/native/sun/font/layout/MultipleSubstSubtables.h | 4 +- src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp | 23 +- src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h | 6 +- src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp | 81 +- src/share/native/sun/font/layout/OpenTypeLayoutEngine.h | 16 +- src/share/native/sun/font/layout/OpenTypeTables.h | 3 +- src/share/native/sun/font/layout/OpenTypeUtilities.cpp | 98 +- src/share/native/sun/font/layout/OpenTypeUtilities.h | 13 +- src/share/native/sun/font/layout/PairPositioningSubtables.cpp | 27 +- src/share/native/sun/font/layout/PairPositioningSubtables.h | 10 +- src/share/native/sun/font/layout/ScriptAndLanguage.cpp | 65 +- src/share/native/sun/font/layout/ScriptAndLanguage.h | 9 +- src/share/native/sun/font/layout/SegmentArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/SegmentArrayProcessor.h | 6 +- src/share/native/sun/font/layout/SegmentSingleProcessor.cpp | 17 +- src/share/native/sun/font/layout/SegmentSingleProcessor.h | 6 +- src/share/native/sun/font/layout/ShapingTypeData.cpp | 2 + src/share/native/sun/font/layout/SimpleArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/SimpleArrayProcessor.h | 6 +- src/share/native/sun/font/layout/SinglePositioningSubtables.cpp | 18 +- src/share/native/sun/font/layout/SinglePositioningSubtables.h | 7 +- src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp | 18 +- src/share/native/sun/font/layout/SingleSubstitutionSubtables.h | 7 +- src/share/native/sun/font/layout/SingleTableProcessor.cpp | 13 +- src/share/native/sun/font/layout/SingleTableProcessor.h | 6 +- src/share/native/sun/font/layout/StateTableProcessor.cpp | 24 +- src/share/native/sun/font/layout/StateTableProcessor.h | 9 +- src/share/native/sun/font/layout/StateTables.h | 36 + src/share/native/sun/font/layout/SubtableProcessor.cpp | 6 +- src/share/native/sun/font/layout/SubtableProcessor.h | 6 +- src/share/native/sun/font/layout/ThaiLayoutEngine.cpp | 9 +- src/share/native/sun/font/layout/TibetanLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/TibetanLayoutEngine.h | 2 +- src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/TrimmedArrayProcessor.h | 6 +- src/share/native/sun/font/layout/ValueRecords.h | 1 + src/share/native/sun/font/sunFont.c | 18 +- src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java | 9 +- src/solaris/classes/sun/awt/X11/XWindowPeer.java | 6 +- src/solaris/native/java/net/Inet4AddressImpl.c | 22 +- src/solaris/native/java/net/Inet6AddressImpl.c | 13 +- src/solaris/native/java/net/NetworkInterface.c | 13 +- src/solaris/native/java/net/PlainDatagramSocketImpl.c | 55 +- src/solaris/native/java/net/net_util_md.c | 6 +- src/windows/classes/java/lang/ProcessImpl.java | 125 ++- src/windows/classes/sun/awt/windows/WFileDialogPeer.java | 4 +- src/windows/classes/sun/awt/windows/WPrintDialogPeer.java | 4 +- src/windows/classes/sun/awt/windows/WWindowPeer.java | 6 +- src/windows/native/java/net/Inet4AddressImpl.c | 14 +- src/windows/native/java/net/Inet6AddressImpl.c | 13 +- src/windows/native/java/net/NetworkInterface.c | 9 +- src/windows/native/java/net/NetworkInterface.h | 1 - src/windows/native/java/net/NetworkInterface_winXP.c | 6 +- src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c | 52 +- src/windows/native/java/net/TwoStacksPlainSocketImpl.c | 9 +- src/windows/native/java/net/net_util_md.c | 6 +- test/Makefile | 2 +- test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java | 3 +- test/java/rmi/registry/readTest/readTest.sh | 3 +- test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java | 4 + test/java/rmi/server/RMIClassLoader/downloadArrayClass/security.policy | 2 + test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java | 3 +- test/java/rmi/testlibrary/RMID.java | 3 + 192 files changed, 3250 insertions(+), 1304 deletions(-) diffs (truncated from 10065 to 500 lines): diff -r 850b9e5f2c64 -r 8e91101e36f0 src/macosx/classes/sun/lwawt/LWWindowPeer.java --- a/src/macosx/classes/sun/lwawt/LWWindowPeer.java Fri Mar 08 15:59:37 2013 +0000 +++ b/src/macosx/classes/sun/lwawt/LWWindowPeer.java Mon Apr 15 23:41:13 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -166,7 +166,7 @@ setTitle(((Dialog) getTarget()).getTitle()); } - setAlwaysOnTop(getTarget().isAlwaysOnTop()); + updateAlwaysOnTopState(); updateMinimumSize(); final float opacity = getTarget().getOpacity(); @@ -404,8 +404,8 @@ } @Override - public void setAlwaysOnTop(boolean value) { - platformWindow.setAlwaysOnTop(value); + public void updateAlwaysOnTopState() { + platformWindow.setAlwaysOnTop(getTarget().isAlwaysOnTop()); } @Override diff -r 850b9e5f2c64 -r 8e91101e36f0 src/macosx/classes/sun/lwawt/macosx/CFileDialog.java --- a/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Fri Mar 08 15:59:37 2013 +0000 +++ b/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Mon Apr 15 23:41:13 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -174,7 +174,7 @@ } @Override - public void setAlwaysOnTop(boolean alwaysOnTop) { + public void updateAlwaysOnTopState() { } @Override diff -r 850b9e5f2c64 -r 8e91101e36f0 src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java --- a/src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java Fri Mar 08 15:59:37 2013 +0000 +++ b/src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java Mon Apr 15 23:41:13 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,7 @@ } // 1.6 peer method - public void setAlwaysOnTop(boolean value) { + public void updateAlwaysOnTopState() { // no-op, since we just show the native print dialog } diff -r 850b9e5f2c64 -r 8e91101e36f0 src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java --- a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java Fri Mar 08 15:59:37 2013 +0000 +++ b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java Mon Apr 15 23:41:13 2013 +0100 @@ -238,12 +238,17 @@ * sending warnings to listeners. */ protected void warningOccurred(int code) { - if ((code < 0) || (code > MAX_WARNING)){ - throw new InternalError("Invalid warning index"); + cbLock.lock(); + try { + if ((code < 0) || (code > MAX_WARNING)){ + throw new InternalError("Invalid warning index"); + } + processWarningOccurred + ("com.sun.imageio.plugins.jpeg.JPEGImageReaderResources", + Integer.toString(code)); + } finally { + cbLock.unlock(); } - processWarningOccurred - ("com.sun.imageio.plugins.jpeg.JPEGImageReaderResources", - Integer.toString(code)); } /** @@ -260,7 +265,12 @@ * library warnings from being printed to stderr. */ protected void warningWithMessage(String msg) { - processWarningOccurred(msg); + cbLock.lock(); + try { + processWarningOccurred(msg); + } finally { + cbLock.unlock(); + } } public void setInput(Object input, @@ -269,18 +279,55 @@ { setThreadLock(); try { + cbLock.check(); + super.setInput(input, seekForwardOnly, ignoreMetadata); this.ignoreMetadata = ignoreMetadata; resetInternalState(); iis = (ImageInputStream) input; // Always works - setSource(structPointer, iis); + setSource(structPointer); } finally { clearThreadLock(); } } - private native void setSource(long structPointer, - ImageInputStream source); + /** + * This method is called from native code in order to fill + * native input buffer. + * + * We block any attempt to change the reading state during this + * method, in order to prevent a corruption of the native decoder + * state. + * + * @return number of bytes read from the stream. + */ + private int readInputData(byte[] buf, int off, int len) throws IOException { + cbLock.lock(); + try { + return iis.read(buf, off, len); + } finally { + cbLock.unlock(); + } + } + + /** + * This method is called from the native code in order to + * skip requested number of bytes in the input stream. + * + * @param n + * @return + * @throws IOException + */ + private long skipInputBytes(long n) throws IOException { + cbLock.lock(); + try { + return iis.skipBytes(n); + } finally { + cbLock.unlock(); + } + } + + private native void setSource(long structPointer); private void checkTablesOnly() throws IOException { if (debug) { @@ -332,6 +379,8 @@ public int getNumImages(boolean allowSearch) throws IOException { setThreadLock(); try { // locked thread + cbLock.check(); + return getNumImagesOnThread(allowSearch); } finally { clearThreadLock(); @@ -531,8 +580,13 @@ if (debug) { System.out.println("pushing back " + num + " bytes"); } - iis.seek(iis.getStreamPosition()-num); - // The buffer is clear after this, so no need to set haveSeeked. + cbLock.lock(); + try { + iis.seek(iis.getStreamPosition()-num); + // The buffer is clear after this, so no need to set haveSeeked. + } finally { + cbLock.unlock(); + } } /** @@ -639,7 +693,12 @@ * Ignore this profile. */ iccCS = null; - warningOccurred(WARNING_IGNORE_INVALID_ICC); + cbLock.lock(); + try { + warningOccurred(WARNING_IGNORE_INVALID_ICC); + } finally { + cbLock.unlock(); + } } } } @@ -648,6 +707,7 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } return width; @@ -660,6 +720,7 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } return height; @@ -688,6 +749,8 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); + readHeader(imageIndex, true); } @@ -711,6 +774,7 @@ private Iterator getImageTypesOnThread(int imageIndex) throws IOException { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } @@ -926,6 +990,7 @@ setThreadLock(); try { if (!tablesOnlyChecked) { + cbLock.check(); checkTablesOnly(); } return streamMetadata; @@ -946,6 +1011,8 @@ return imageMetadata; } + cbLock.check(); + gotoImage(imageIndex); imageMetadata = new JPEGMetadata(false, false, iis, this); @@ -962,6 +1029,7 @@ throws IOException { setThreadLock(); try { + cbLock.check(); try { readInternal(imageIndex, param, false); } catch (RuntimeException e) { @@ -1191,58 +1259,63 @@ } target.setRect(destROI.x, destROI.y + y, raster); - processImageUpdate(image, - destROI.x, destROI.y+y, - raster.getWidth(), 1, - 1, 1, - destinationBands); - if ((y > 0) && (y%progInterval == 0)) { - int height = target.getHeight()-1; - float percentOfPass = ((float)y)/height; - if (progressive) { - if (knownPassCount != UNKNOWN) { - processImageProgress((pass + percentOfPass)*100.0F - / knownPassCount); - } else if (maxProgressivePass != Integer.MAX_VALUE) { - // Use the range of allowed progressive passes - processImageProgress((pass + percentOfPass)*100.0F - / (maxProgressivePass - minProgressivePass + 1)); + cbLock.lock(); + try { + processImageUpdate(image, + destROI.x, destROI.y+y, + raster.getWidth(), 1, + 1, 1, + destinationBands); + if ((y > 0) && (y%progInterval == 0)) { + int height = target.getHeight()-1; + float percentOfPass = ((float)y)/height; + if (progressive) { + if (knownPassCount != UNKNOWN) { + processImageProgress((pass + percentOfPass)*100.0F + / knownPassCount); + } else if (maxProgressivePass != Integer.MAX_VALUE) { + // Use the range of allowed progressive passes + processImageProgress((pass + percentOfPass)*100.0F + / (maxProgressivePass - minProgressivePass + 1)); + } else { + // Assume there are a minimum of MIN_ESTIMATED_PASSES + // and that there is always one more pass + // Compute the percentage as the percentage at the end + // of the previous pass, plus the percentage of this + // pass scaled to be the percentage of the total remaining, + // assuming a minimum of MIN_ESTIMATED_PASSES passes and + // that there is always one more pass. This is monotonic + // and asymptotic to 1.0, which is what we need. + int remainingPasses = // including this one + Math.max(2, MIN_ESTIMATED_PASSES-pass); + int totalPasses = pass + remainingPasses-1; + progInterval = Math.max(height/20*totalPasses, + totalPasses); + if (y%progInterval == 0) { + percentToDate = previousPassPercentage + + (1.0F - previousPassPercentage) + * (percentOfPass)/remainingPasses; + if (debug) { + System.out.print("pass= " + pass); + System.out.print(", y= " + y); + System.out.print(", progInt= " + progInterval); + System.out.print(", % of pass: " + percentOfPass); + System.out.print(", rem. passes: " + + remainingPasses); + System.out.print(", prev%: " + + previousPassPercentage); + System.out.print(", %ToDate: " + percentToDate); + System.out.print(" "); + } + processImageProgress(percentToDate*100.0F); + } + } } else { - // Assume there are a minimum of MIN_ESTIMATED_PASSES - // and that there is always one more pass - // Compute the percentage as the percentage at the end - // of the previous pass, plus the percentage of this - // pass scaled to be the percentage of the total remaining, - // assuming a minimum of MIN_ESTIMATED_PASSES passes and - // that there is always one more pass. This is monotonic - // and asymptotic to 1.0, which is what we need. - int remainingPasses = // including this one - Math.max(2, MIN_ESTIMATED_PASSES-pass); - int totalPasses = pass + remainingPasses-1; - progInterval = Math.max(height/20*totalPasses, - totalPasses); - if (y%progInterval == 0) { - percentToDate = previousPassPercentage + - (1.0F - previousPassPercentage) - * (percentOfPass)/remainingPasses; - if (debug) { - System.out.print("pass= " + pass); - System.out.print(", y= " + y); - System.out.print(", progInt= " + progInterval); - System.out.print(", % of pass: " + percentOfPass); - System.out.print(", rem. passes: " - + remainingPasses); - System.out.print(", prev%: " - + previousPassPercentage); - System.out.print(", %ToDate: " + percentToDate); - System.out.print(" "); - } - processImageProgress(percentToDate*100.0F); - } + processImageProgress(percentOfPass * 100.0F); } - } else { - processImageProgress(percentOfPass * 100.0F); } + } finally { + cbLock.unlock(); } } @@ -1255,33 +1328,58 @@ } private void passStarted (int pass) { - this.pass = pass; - previousPassPercentage = percentToDate; - processPassStarted(image, - pass, - minProgressivePass, - maxProgressivePass, - 0, 0, - 1,1, - destinationBands); + cbLock.lock(); + try { + this.pass = pass; + previousPassPercentage = percentToDate; + processPassStarted(image, + pass, + minProgressivePass, + maxProgressivePass, + 0, 0, + 1,1, + destinationBands); + } finally { + cbLock.unlock(); + } } private void passComplete () { - processPassComplete(image); + cbLock.lock(); + try { + processPassComplete(image); + } finally { + cbLock.unlock(); + } } void thumbnailStarted(int thumbnailIndex) { - processThumbnailStarted(currentImage, thumbnailIndex); + cbLock.lock(); + try { + processThumbnailStarted(currentImage, thumbnailIndex); + } finally { + cbLock.unlock(); + } } // Provide access to protected superclass method void thumbnailProgress(float percentageDone) { - processThumbnailProgress(percentageDone); + cbLock.lock(); + try { + processThumbnailProgress(percentageDone); + } finally { + cbLock.unlock(); + } } // Provide access to protected superclass method void thumbnailComplete() { - processThumbnailComplete(); + cbLock.lock(); + try { + processThumbnailComplete(); + } finally { + cbLock.unlock(); + } } /** @@ -1305,6 +1403,11 @@ public void abort() { setThreadLock(); try { + /** + * NB: we do not check the call back lock here, + * we allow to abort the reader any time. + */ + super.abort(); abortRead(structPointer); } finally { @@ -1327,6 +1430,7 @@ setThreadLock(); Raster retval = null; try { + cbLock.check(); /* * This could be further optimized by not resetting the dest. * offset and creating a translated raster in readInternal() @@ -1366,6 +1470,8 @@ public int getNumThumbnails(int imageIndex) throws IOException { setThreadLock(); try { + cbLock.check(); + getImageMetadata(imageIndex); // checks iis state for us // Now check the jfif segments JFIFMarkerSegment jfif = @@ -1386,6 +1492,8 @@ throws IOException { setThreadLock(); try { + cbLock.check(); + if ((thumbnailIndex < 0) || (thumbnailIndex >= getNumThumbnails(imageIndex))) { throw new IndexOutOfBoundsException("No such thumbnail"); @@ -1404,6 +1512,8 @@ throws IOException { setThreadLock(); try { + cbLock.check(); + if ((thumbnailIndex < 0) || (thumbnailIndex >= getNumThumbnails(imageIndex))) { throw new IndexOutOfBoundsException("No such thumbnail"); @@ -1423,6 +1533,8 @@ throws IOException { setThreadLock(); try { From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 17:44:51 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 00:44:51 +0000 Subject: [Bug 1399] New: SIGSEGV (0xb) in libjvm Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1399 Bug ID: 1399 Summary: SIGSEGV (0xb) in libjvm Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: bertoni at igware.com CC: unassigned at icedtea.classpath.org Created attachment 859 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=859&action=edit hs_err file Very infrequently (sadly), the Java VM crashes. I have attached the log file (I hope). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/08403771/attachment.html From andrew at icedtea.classpath.org Tue Apr 16 23:56:48 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 17 Apr 2013 06:56:48 +0000 Subject: /hg/icedtea6: PR1380: Add AArch64 support to Zero Message-ID: changeset fe8749a2c67c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=fe8749a2c67c author: Andrew John Hughes date: Wed Apr 17 07:56:18 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. diffstat: AUTHORS | 4 ++++ ChangeLog | 14 ++++++++++++++ Makefile.am | 3 +++ NEWS | 1 + THANKYOU | 10 ---------- patches/aarch64.patch | 21 +++++++++++++++++++++ 6 files changed, 43 insertions(+), 10 deletions(-) diffs (120 lines): diff -r ab418eb1e664 -r fe8749a2c67c AUTHORS --- a/AUTHORS Tue Apr 16 18:39:51 2013 +0100 +++ b/AUTHORS Wed Apr 17 07:56:18 2013 +0100 @@ -2,6 +2,7 @@ Please keep this list in alphabetical order. Lillian Angel +Alexis Ballier Alon Bar-Lev Gary Benson Tania Bento @@ -18,6 +19,7 @@ Andrew John Hughes Tomas Hurka Ioana Ivan +C. K. Jester-Young (cky944 at gmail.com) Matthias Klose Francis Kung Denis Lila @@ -32,6 +34,7 @@ Mark Reinhold Bernhard Rosenkr??nzer Marc Schoenefeld +Andreas Schwab Keith Seitz Andrew Su Joshua Sumali @@ -39,6 +42,7 @@ Christian Thalinger Dalibor Topic Arnaud Vandyck +Torsten Werner (mail.twerner at googlemail.com) Mark Wielaard Yi Zhan diff -r ab418eb1e664 -r fe8749a2c67c ChangeLog --- a/ChangeLog Tue Apr 16 18:39:51 2013 +0100 +++ b/ChangeLog Wed Apr 17 07:56:18 2013 +0100 @@ -1,3 +1,17 @@ +2013-04-17 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add patch after SH patch. + * NEWS: Updated. + * AUTHORS: Add Andreas and merge in THANKYOU. + * THANKYOU: Removed. + +2013-03-22 Andreas Schwab + + PR1380: Add AArch64 support to Zero + * patches/aarch64.patch: + Add Zero support for AArch64. + 2013-04-16 Andrew John Hughes * Makefile.am: diff -r ab418eb1e664 -r fe8749a2c67c Makefile.am --- a/Makefile.am Tue Apr 16 18:39:51 2013 +0100 +++ b/Makefile.am Wed Apr 17 07:56:18 2013 +0100 @@ -544,6 +544,9 @@ patches/hotspot/original/6840152-jvm_crashes_with_heavyweight_monitors.patch endif +# Needs to be after the addition of SH support to the original HotSpot +ICEDTEA_PATCHES += patches/aarch64.patch + if WITH_RHINO ICEDTEA_PATCHES += \ patches/rhino.patch diff -r ab418eb1e664 -r fe8749a2c67c NEWS --- a/NEWS Tue Apr 16 18:39:51 2013 +0100 +++ b/NEWS Wed Apr 17 07:56:18 2013 +0100 @@ -15,6 +15,7 @@ * New features - PR1317: Provide an option to build with a more up-to-date HotSpot + - PR1380: Add AArch64 support to Zero * Backports - S8009641: OpenJDK 6 build broken via 8007675 fix - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts (bundled HotSpot only) diff -r ab418eb1e664 -r fe8749a2c67c THANKYOU --- a/THANKYOU Tue Apr 16 18:39:51 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -The following have made minor contributions to the IcedTea -project, such as testing, bug submission, or minor patches. See also -the AUTHORS file, which lists people who have submitted major -patches. If your name does not appear on either list, but should, let -us know. Please keep this list in alphabetic order. - -Alexis Ballier (aballier at gentoo.org) -Alon Bar-Lev (alon.barlev at gmail.com) -C. K. Jester-Young (cky944 at gmail.com) -Torsten Werner (mail.twerner at googlemail.com) \ No newline at end of file diff -r ab418eb1e664 -r fe8749a2c67c patches/aarch64.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/aarch64.patch Wed Apr 17 07:56:18 2013 +0100 @@ -0,0 +1,21 @@ +--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp +@@ -1893,7 +1893,8 @@ void * os::dll_load(const char *filename + {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, +- {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ ++ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/ ++ {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/ + }; + + #if (defined IA32) +@@ -1926,6 +1927,8 @@ void * os::dll_load(const char *filename + static Elf32_Half running_arch_code=EM_68K; + #elif (defined SH) + static Elf32_Half running_arch_code=EM_SH; ++ #elif (defined AARCH64) ++ static Elf32_Half running_arch_code=EM_AARCH64; + #else + #error Method os::dll_load requires that one of following is defined:\ + IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH From bugzilla-daemon at icedtea.classpath.org Tue Apr 16 23:57:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 06:57:00 +0000 Subject: [Bug 1380] [IcedTea6] Add AArch64 support to Zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1380 --- Comment #1 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=fe8749a2c67c author: Andrew John Hughes date: Wed Apr 17 07:56:18 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/f8280ed6/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 00:11:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 07:11:18 +0000 Subject: [Bug 591] Unable to build openjdk/icedtea on Slack 13.1 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=591 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Hardware|32-bit |x86 Resolution|--- |WONTFIX --- Comment #23 from Andrew John Hughes --- This version is no longer supported. Please update & reopen if you can reproduce this on a current version. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/9bdaeddc/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 00:16:27 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 07:16:27 +0000 Subject: [Bug 1338] [IcedTea6] Remove dependence on libXp In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1338 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED Target Milestone|--- |6-1.11.5 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/e18d848a/attachment.html From ptisnovs at icedtea.classpath.org Wed Apr 17 00:31:21 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 17 Apr 2013 07:31:21 +0000 Subject: /hg/gfx-test: Twelwe new tests added into the test suite BitBltB... Message-ID: changeset 548fd0068224 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=548fd0068224 author: Pavel Tisnovsky date: Wed Apr 17 09:33:25 2013 +0200 Twelwe new tests added into the test suite BitBltBasicTests. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 181 +++++++++++++++++++++++ 2 files changed, 186 insertions(+), 0 deletions(-) diffs (210 lines): diff -r a7ed7b19f6aa -r 548fd0068224 ChangeLog --- a/ChangeLog Tue Apr 16 09:56:19 2013 +0200 +++ b/ChangeLog Wed Apr 17 09:33:25 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-17 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Twelwe new tests added into the test suite BitBltBasicTests. + 2013-04-16 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r a7ed7b19f6aa -r 548fd0068224 src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Apr 16 09:56:19 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Wed Apr 17 09:33:25 2013 +0200 @@ -3413,6 +3413,51 @@ } /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageType3ByteBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_4BYTE_ABGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_4BYTE_ABGR_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageType4ByteABGR_PRE(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE); + } + + /** * Test basic BitBlt operation for horizontal green gradient buffered image * with type TYPE_BYTE_BINARY. * @@ -3429,6 +3474,142 @@ } /** + * Test basic BitBlt operation for horizontal green gradient buffered image + * with type TYPE_BYTE_INDEXED. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeByteIndexed(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_INDEXED); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_BYTE_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeByteGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_GRAY); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_RGB); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeIntARGB_Pre(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientBufferedImageTypeUshortGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY); + } + + /** * Test basic BitBlt operation for vertical green gradient buffered image * with type TYPE_BYTE_BINARY. * From ptisnovs at icedtea.classpath.org Wed Apr 17 00:37:04 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 17 Apr 2013 07:37:04 +0000 Subject: /hg/rhino-tests: Updated four tests in InvocableClassTest for (O... Message-ID: changeset 9f4e67bc0396 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=9f4e67bc0396 author: Pavel Tisnovsky date: Wed Apr 17 09:40:21 2013 +0200 Updated four tests in InvocableClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 +++ src/org/RhinoTests/InvocableClassTest.java | 56 +++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 4 deletions(-) diffs (107 lines): diff -r ae65fb0ae251 -r 9f4e67bc0396 ChangeLog --- a/ChangeLog Tue Apr 16 10:01:43 2013 +0200 +++ b/ChangeLog Wed Apr 17 09:40:21 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-17 Pavel Tisnovsky + + * src/org/RhinoTests/InvocableClassTest.java: + Updated four tests in InvocableClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-16 Pavel Tisnovsky * src/org/RhinoTests/CompiledScriptClassTest.java: diff -r ae65fb0ae251 -r 9f4e67bc0396 src/org/RhinoTests/InvocableClassTest.java --- a/src/org/RhinoTests/InvocableClassTest.java Tue Apr 16 10:01:43 2013 +0200 +++ b/src/org/RhinoTests/InvocableClassTest.java Wed Apr 17 09:40:21 2013 +0200 @@ -288,10 +288,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.invocableClass.getConstructors(); @@ -310,10 +321,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.invocableClass.getDeclaredConstructors(); @@ -332,7 +354,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -362,7 +397,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From jvanek at icedtea.classpath.org Wed Apr 17 00:45:48 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 17 Apr 2013 07:45:48 +0000 Subject: /hg/icedtea-web: removed java call to obtain jvm args for plugin Message-ID: changeset 45ebf2dfa902 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=45ebf2dfa902 author: Jiri Vanek date: Wed Apr 17 09:45:53 2013 +0200 removed java call to obtain jvm args for plugin * /plugin/icedteanp/IcedTeaNPPlugin.cc: (get_jvm_args) Java call replaced by call to recently added read_deploy_property_value function. diffstat: ChangeLog | 7 ++++++ plugin/icedteanp/IcedTeaNPPlugin.cc | 42 ++++-------------------------------- 2 files changed, 12 insertions(+), 37 deletions(-) diffs (68 lines): diff -r bd86740a226d -r 45ebf2dfa902 ChangeLog --- a/ChangeLog Fri Apr 12 10:04:36 2013 -0400 +++ b/ChangeLog Wed Apr 17 09:45:53 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-17 Jiri Vanek + + removed java call to obtain jvm args for plugin + * /plugin/icedteanp/IcedTeaNPPlugin.cc: (get_jvm_args) + Java call replaced by call to recently added read_deploy_property_value + function. + 2013-04-12 Adam Domurad * netx/net/sourceforge/jnlp/security/appletextendedsecurity/ExtendedAppletSecurityHelp.java: diff -r bd86740a226d -r 45ebf2dfa902 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Apr 12 10:04:36 2013 -0400 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Apr 17 09:45:53 2013 +0200 @@ -1472,45 +1472,13 @@ std::vector* get_jvm_args() { - std::vector < std::string> commands; - gchar *output = NULL; + std::string output; std::vector* tokenOutput = NULL; - - commands.push_back(get_plugin_executable()); - commands.push_back(PLUGIN_BOOTCLASSPATH); - commands.push_back("-classpath"); - commands.push_back(get_plugin_rt_jar()); - commands.push_back("net.sourceforge.jnlp.controlpanel.CommandLine"); - commands.push_back("get"); - commands.push_back("deployment.plugin.jvm.arguments"); - - std::vector vector_gchar = IcedTeaPluginUtilities::vectorStringToVectorGchar(&commands); - gchar **command_line_args = &vector_gchar[0]; - - if (!g_spawn_sync(NULL, command_line_args, NULL, - (GSpawnFlags) G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &output, NULL, NULL, - &channel_error)) - { - PLUGIN_ERROR("Failed to get JVM arguments set for plugin."); - output = NULL; - return NULL; + bool args_defined = read_deploy_property_value("deployment.plugin.jvm.arguments", output); + if (!args_defined){ + return new std::vector(); } - - tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n"); - - //If deployment.plugin.jvm.arguments is undefined, the output will simply be 'null' - //We remove this so it's not mistakenly used as a jvm argument. - if (!tokenOutput->empty() && *tokenOutput->at(0) =="null") - { - delete tokenOutput->at(0); - tokenOutput->erase(tokenOutput->begin()); - } - - //Free memory - g_free(output); - output = NULL; - command_line_args = NULL; - + tokenOutput = IcedTeaPluginUtilities::strSplit(output.c_str(), " \n"); return tokenOutput; } From jvanek at icedtea.classpath.org Wed Apr 17 01:08:19 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:08:19 +0000 Subject: /hg/release/icedtea-web-1.2: 6 new changesets Message-ID: changeset cb58b31c450e in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=cb58b31c450e author: Jiri Vanek date: Wed Apr 10 18:28:45 2013 +0200 Fixed gifar vulnereability changeset 45a5c6e2e368 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=45a5c6e2e368 author: Jiri Vanek date: Wed Apr 10 18:31:18 2013 +0200 Added CVE number changeset 34b6f60ae586 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=34b6f60ae586 author: Jiri Vanek date: Thu Apr 11 12:22:24 2013 +0200 Fixed CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. changeset 89bbadb66b07 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=89bbadb66b07 author: Jiri Vanek date: Thu Apr 11 18:08:22 2013 +0200 Removed pre from version in configure.ac changeset 5a03fc6c606f in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=5a03fc6c606f author: Jiri Vanek date: Thu Apr 11 18:10:24 2013 +0200 Added tag icedtea-web-1.2.3 for changeset 89bbadb66b07 changeset 608e7e60cf31 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=608e7e60cf31 author: Jiri Vanek date: Wed Apr 17 10:07:27 2013 +0200 configure.ac - updated to being version 1.2.4pre diffstat: .hgtags | 1 + ChangeLog | 29 + NEWS | 3 + configure.ac | 2 +- netx/net/sourceforge/jnlp/Launcher.java | 2 +- netx/net/sourceforge/jnlp/NetxPanel.java | 7 +- netx/net/sourceforge/jnlp/resources/Messages.properties | 3 +- netx/net/sourceforge/jnlp/runtime/Boot.java | 4 + netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 12 +- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 22 +- netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java | 49 +++ netx/net/sourceforge/jnlp/util/JarFile.java | 153 ++++++++++ 13 files changed, 272 insertions(+), 19 deletions(-) diffs (463 lines): diff -r 94234beee2e9 -r 608e7e60cf31 .hgtags --- a/.hgtags Wed Apr 10 15:39:04 2013 +0200 +++ b/.hgtags Wed Apr 17 10:07:27 2013 +0200 @@ -3,3 +3,4 @@ 58c02a3ace5dd11edc900d869b7c69186c54101d icedtea-web-1.2 fae550dbc8843d997d6180b1ba4d25b3dd831ac9 icedtea-web-1.2.1 8253e1b5b9965b9a90b98a5a5e5c7067498cd0f3 icedtea-web-1.2.2 +89bbadb66b0703f49859fd8b3f2e6e2ba30f2a9b icedtea-web-1.2.3 diff -r 94234beee2e9 -r 608e7e60cf31 ChangeLog --- a/ChangeLog Wed Apr 10 15:39:04 2013 +0200 +++ b/ChangeLog Wed Apr 17 10:07:27 2013 +0200 @@ -1,3 +1,32 @@ +2013-04-11 Adam Domurad + + CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with + same relative-path. + * netx/net/sourceforge/jnlp/NetxPanel.java: (NetxPanel) Construct + unique-key with absolute path + +2013-04-10 Jiri Vanek + + Fixed gifar vulnereability with automated testcase + * netx/net/sourceforge/jnlp/util/JarFile.java: IcedTea-Web replacement for + java.util.jar.JarFile.java with capability to verify if the jar starts as jar + and not as something else (eg gif) + * netx/net/sourceforge/jnlp/Launcher.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/resources/Messages.properties: added + BXignoreheaders key with description to new -Xignoreheaders switch + * netx/net/sourceforge/jnlp/runtime/Boot.java: added switch Xignoreheaders + to allow to disable the header verification. + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: + migrated to new JarFile + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: improved + reporting of new JarFile exceptions + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: new field + ignoreHeaders, informing about new JarFile whether to verify or not verify + headers. By default verifying, so have value of false. + * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java: new + not-checked exception to signify that jar is corrupted on headers level. + 2013-04-10 Jiri Vanek Fixed news diff -r 94234beee2e9 -r 608e7e60cf31 NEWS --- a/NEWS Wed Apr 10 15:39:04 2013 +0200 +++ b/NEWS Wed Apr 17 10:07:27 2013 +0200 @@ -9,6 +9,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.2.3 (2013-04-17): +* Security Updates + - CVE-2013-1927, RH884705 - fixed gifar vulnerability + - CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. * Common - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 * Plugin diff -r 94234beee2e9 -r 608e7e60cf31 configure.ac --- a/configure.ac Wed Apr 10 15:39:04 2013 +0200 +++ b/configure.ac Wed Apr 17 10:07:27 2013 +0200 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.2.3pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.2.4pre],[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 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/Launcher.java --- a/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 17 10:07:27 2013 +0200 @@ -29,7 +29,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.cache.CacheUtil; import net.sourceforge.jnlp.cache.UpdatePolicy; diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Wed Apr 17 10:07:27 2013 +0200 @@ -77,11 +77,6 @@ * bad tag cannot trick the loader into getting shared with another. */ - // Firefox sometimes skips the codebase if it is default -- ".", - // so set it that way if absent - String codebaseAttr = atts.get("codebase") != null ? - atts.get("codebase") : "."; - String cache_archiveAttr = atts.get("cache_archive") != null ? atts.get("cache_archive") : ""; @@ -91,7 +86,7 @@ String archiveAttr = atts.get("archive") != null ? atts.get("archive") : ""; - this.uKey = "codebase=" + codebaseAttr + + this.uKey = "codebase=" + getCodeBase().toExternalForm() + "cache_archive=" + cache_archiveAttr + "java_archive=" + java_archiveAttr + "archive=" + archiveAttr; diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 17 10:07:27 2013 +0200 @@ -93,7 +93,7 @@ LNotVerified=Jars not verified. LCancelOnUserRequest=Canceled on user request. LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= +LFatalVerificationInfo=Description LNotVerifiedDialog=Not all jars could be verified. LAskToContinue=Would you still like to continue running this application? @@ -181,6 +181,7 @@ BOViewer = Shows the trusted certificate viewer. BXnofork = Do not create another JVM. BXclearcache= Clean the JNLP application cache. +BXignoreheaders= Skip jar header verification. BOHelp = Print this message and exit. # Cache diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/runtime/Boot.java --- a/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 17 10:07:27 2013 +0200 @@ -102,6 +102,7 @@ + " -strict " + R("BOStrict") + "\n" + " -Xnofork " + R("BXnofork") + "\n" + " -Xclearcache " + R("BXclearcache") + "\n" + + " -Xignoreheaders " + R("BXignoreheaders") + "\n" + " -help " + R("BOHelp") + "\n"; private static final String doubleArgs = "-basedir -jnlp -arg -param -property -update"; @@ -159,6 +160,9 @@ if (null != getOption("-Xtrustall")) { JNLPRuntime.setTrustAll(true); } + if (null != getOption("-Xignoreheaders")) { + JNLPRuntime.setIgnoreHeaders(true); + } JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- a/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 17 10:07:27 2013 +0200 @@ -49,7 +49,7 @@ import java.security.PrivilegedExceptionAction; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.util.UrlUtils; @@ -81,7 +81,7 @@ } @Override - public JarFile retrieve(URL url) throws IOException { + public java.util.jar.JarFile retrieve(URL url) throws IOException { URL localUrl = mapping.get(url); if (localUrl == null) { @@ -122,8 +122,8 @@ /* * This method is a copy of URLJarFile.retrieve() without the callback check. */ - private JarFile cacheJarFile(URL url) throws IOException { - JarFile result = null; + private java.util.jar.JarFile cacheJarFile(URL url) throws IOException { + java.util.jar.JarFile result = null; final int BUF_SIZE = 2048; @@ -132,9 +132,9 @@ try { result = - AccessController.doPrivileged(new PrivilegedExceptionAction() { + AccessController.doPrivileged(new PrivilegedExceptionAction() { @Override - public JarFile run() throws IOException { + public java.util.jar.JarFile run() throws IOException { OutputStream out = null; File tmpFile = null; try { diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 17 10:07:27 2013 +0200 @@ -50,7 +50,7 @@ import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import java.util.jar.Manifest; import net.sourceforge.jnlp.AppletDesc; @@ -483,7 +483,7 @@ //to read the cacerts or trusted.certs files. e.printStackTrace(); throw new LaunchException(null, null, R("LSFatal"), - R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo")); + R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo") + ": " +e.getMessage()); } //Case when at least one jar has some signing diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 10 15:39:04 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 17 10:07:27 2013 +0200 @@ -88,7 +88,7 @@ * @version $Revision: 1.19 $ */ public class JNLPRuntime { - + static { loadResources(); } @@ -146,8 +146,16 @@ /** set to false to indicate another JVM should not be spawned, even if necessary */ private static boolean forksAllowed = true; - /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ + /** all security dialogs will be consumed and pretented as being verified by user and allowed.*/ private static boolean trustAll=false; + /** + * Header is not checked and so eg. gifar exploit is possible + * @see http://en.wikipedia.org/wiki/Gifar for this kind of attack. + * However if jar file is a bit corrupted, then it sometimes can work so + * this switch can disable the header check. + * + */ + private static boolean ignoreHeaders=false; /** contains the arguments passed to the jnlp runtime */ private static List initialArguments; @@ -816,4 +824,14 @@ return trustAll; } + public static boolean isIgnoreHeaders() { + return ignoreHeaders; + } + + public static void setIgnoreHeaders(boolean ignoreHeaders) { + JNLPRuntime.ignoreHeaders = ignoreHeaders; + } + + + } diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java Wed Apr 17 10:07:27 2013 +0200 @@ -0,0 +1,49 @@ +/* +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.util; + +/** + * Thrown from net.sourceforge.jnlp.utilJArFile when verification of headers fails + * + */ +public class InvalidJarHeaderException extends RuntimeException{ + + public InvalidJarHeaderException(String string) { + super(string); + } + +} diff -r 94234beee2e9 -r 608e7e60cf31 netx/net/sourceforge/jnlp/util/JarFile.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/JarFile.java Wed Apr 17 10:07:27 2013 +0200 @@ -0,0 +1,153 @@ +/* + 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.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipFile; +import net.sourceforge.jnlp.runtime.JNLPRuntime; + +public class JarFile extends java.util.jar.JarFile { + + public JarFile(String name) throws IOException { + super(name); + verifyZipHeader(new File(name)); + } + + /** + */ + public JarFile(String name, boolean verify) throws IOException { + super(name, verify); + verifyZipHeader(new File(name)); + } + + /** + */ + public JarFile(File file) throws IOException { + super(file); + verifyZipHeader(file); + } + + /** + */ + public JarFile(File file, boolean verify) throws IOException { + super(file, verify); + verifyZipHeader(file); + } + + /* + */ + public JarFile(File file, boolean verify, int mode) throws IOException { + super(file, verify, mode); + verifyZipHeader(file); + } + + + + + /** + * According to specification - + * http://www.pkware.com/documents/casestudies/APPNOTE.TXT or just google + * around zip header all entries in zip-compressed must start with well + * known "PK" which is defined as hexa x50 x4b x03 x04, which in decimal are + * 80 75 3 4. + * + * Note - this is not file-header, it is item-header. + * + * Actually most of compressing formats have some n-bytes header se eg: + * http://www.gzip.org/zlib/rfc-gzip.html#header-trailer for ID1 and ID2 so + * in case that some differently compressed jars will come to play, this is + * the palce where to fix it. + * + */ + private static final byte[] ZIP_LOCAL_FILE_HEADER_SIGNATURE = new byte[]{80, 75, 3, 4}; + + /** + * This method is checking first four bytes of jar-file against + * ZIP_LOCAL_FILE_HEADER_SIGNATURE + * + * Although zip specification allows to skip all corrupted entries, it is + * not safe for jars. If first four bytes of file are not zip + * ZIP_LOCAL_FILE_HEADER_SIGNATURE then exception is thrown + * + * As noted, ZIP_LOCAL_FILE_HEADER_SIGNATURE is not ile-header, but is item-header. + * Possible attack is using the fact that entries without header are considered + * corrupted and so can be ignoered. However, for other they can have some meaning. + * + * So for our purposes we must insists on first record to be valid. + * + * @param file + * @throws IOException, InvalidJarHeaderException + */ + public static void verifyZipHeader(File file) throws IOException { + if (!JNLPRuntime.isIgnoreHeaders()) { + InputStream s = new FileInputStream(file); + try { + byte[] buffer = new byte[ZIP_LOCAL_FILE_HEADER_SIGNATURE.length]; + /* + * for case that new byte[] will accidently initialize same + * sequence as zip header and during the read the buffer will not be filled + */ + for (int i = 0; i < buffer.length; i++) { + buffer[i] = 0; + } + int toRead = ZIP_LOCAL_FILE_HEADER_SIGNATURE.length; + int readSoFar = 0; + int n = 0; + /* + * this is used instead of s.read(buffer) for case of block and + * so returned not-fully-filled dbuffer + */ + while ((n = s.read(buffer, readSoFar, buffer.length - readSoFar)) != -1) { + readSoFar += n; + if (readSoFar == toRead) { + break; + } + } + for (int i = 0; i < buffer.length; i++) { + if (buffer[i] != ZIP_LOCAL_FILE_HEADER_SIGNATURE[i]) { + throw new InvalidJarHeaderException("Jar " + file.getName() + " do not heave valid header. You can skip this check by -Xignoreheaders"); + } + } + } finally { + s.close(); + } + } + } +} From jvanek at icedtea.classpath.org Wed Apr 17 01:14:50 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:14:50 +0000 Subject: /hg/release/icedtea-web-1.3: 9 new changesets Message-ID: changeset 19f5282f53e8 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=19f5282f53e8 author: Jiri Vanek date: Wed Apr 10 17:49:20 2013 +0200 Fixed gifar vulnereability with automated testcase changeset ccc249a27004 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=ccc249a27004 author: Jiri Vanek date: Wed Apr 10 18:28:07 2013 +0200 Improved Changelog and NEWS changeset c8544250d5b2 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=c8544250d5b2 author: Jiri Vanek date: Wed Apr 10 18:31:56 2013 +0200 Added CVE number changeset 25dd7c7ac39c in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=25dd7c7ac39c author: Jiri Vanek date: Thu Apr 11 12:29:47 2013 +0200 Fixed CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. changeset 88fb945c9397 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=88fb945c9397 author: Jiri Vanek date: Thu Apr 11 15:45:27 2013 +0200 Fix PR580: http://www.horaoficial.cl/ loads improperly. Applets that must share a class-loader now load sequentially. changeset 2d76719a5e4d in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=2d76719a5e4d author: Jiri Vanek date: Thu Apr 11 17:49:29 2013 +0200 Added various self-describing tests for codebase changeset ed5f2b36fc74 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=ed5f2b36fc74 author: Jiri Vanek date: Thu Apr 11 18:04:48 2013 +0200 Removed pre from version id changeset 785836ceee6d in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=785836ceee6d author: Jiri Vanek date: Thu Apr 11 18:06:13 2013 +0200 Added tag icedtea-web-1.3.2 for changeset ed5f2b36fc74 changeset ded8ed9a9427 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=ded8ed9a9427 author: Jiri Vanek date: Wed Apr 17 10:15:16 2013 +0200 configure.ac - updated to become 1.3.3pre diffstat: .hgtags | 1 + ChangeLog | 82 ++ NEWS | 5 + configure.ac | 2 +- netx/net/sourceforge/jnlp/Launcher.java | 2 +- netx/net/sourceforge/jnlp/NetxPanel.java | 7 +- netx/net/sourceforge/jnlp/resources/Messages.properties | 3 +- netx/net/sourceforge/jnlp/runtime/Boot.java | 4 + netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 12 +- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 97 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 22 +- netx/net/sourceforge/jnlp/tools/JarCertVerifier.java | 36 +- netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java | 49 + netx/net/sourceforge/jnlp/util/JarFile.java | 153 ++++ tests/reproducers/custom/GifarCreator/srcs/Makefile | 17 + tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html | 48 + tests/reproducers/signed/GifarBase/resources/gifarView_ok.html | 48 + tests/reproducers/signed/GifarBase/resources/gifar_applet.jnlp | 65 + tests/reproducers/signed/GifarBase/resources/gifar_application.jnlp | 60 + tests/reproducers/signed/GifarBase/resources/happyNonAnimated.gif | Bin tests/reproducers/signed/GifarBase/srcs/GifarMain.java | 212 ++++++ tests/reproducers/signed/GifarBase/testcases/GifarTestcases.java | 221 ++++++ tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer1.html | 46 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer2.html | 46 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader2.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer1.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer2.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer1.html | 46 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer2.html | 46 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader2.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-writer1.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-writer2.html | 43 + tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedClassLoaderApplet1.java | 50 + tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedClassLoaderApplet2.java | 50 + tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedSecret.java | 70 ++ tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_WrittenCompleteCodeBaseTest.java | 232 ++++++ tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_WrittenPartialStubCodeBaseTest.java | 250 +++++++ tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_dotCodeBaseTest.java | 340 ++++++++++ 40 files changed, 2606 insertions(+), 60 deletions(-) diffs (truncated from 3030 to 500 lines): diff -r 6883b7d0a2fc -r ded8ed9a9427 .hgtags --- a/.hgtags Wed Apr 10 15:37:00 2013 +0200 +++ b/.hgtags Wed Apr 17 10:15:16 2013 +0200 @@ -3,3 +3,4 @@ 41f03d932cdf040a89d09c5683fcc7dac6fd2003 icedtea-web-1.2-branchpoint 03ac5dc76069aac927946ccc26698f52e1965260 icedtea-web-1.3 89d481ff6266fdd80f65afeb41b22f23e8371350 icedtea-web-1.3.1 +ed5f2b36fc7465fe54a25f57e4d3bd3cc8c325a3 icedtea-web-1.3.2 diff -r 6883b7d0a2fc -r ded8ed9a9427 ChangeLog --- a/ChangeLog Wed Apr 10 15:37:00 2013 +0200 +++ b/ChangeLog Wed Apr 17 10:15:16 2013 +0200 @@ -1,3 +1,85 @@ +2013-04-11 Jiri Vanek + + Added various self-describing tests for codebase + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer2.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader2.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer2.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer2.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader2.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-writer1.html + * tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-writer2.html + * tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedClassLoaderApplet1.java + * tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedClassLoaderApplet2.java + * tests/reproducers/simple/AppletSharedClassLoader/srcs/SharedSecret.java + * tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_WrittenCompleteCodeBaseTest.java + * tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_WrittenPartialStubCodeBaseTest.java + * tests/reproducers/simple/AppletSharedClassLoader/testcases/SharedClassLoaderApplet_dotCodeBaseTest.jav + + +2013-04-11 Adam Domurad + + Fix PR580: http://www.horaoficial.cl/ loads improperly. Applets that + must share a class-loader now load sequentially. + * NEWS: + Mention the fix. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (getUniqueKeyLock): New, atomically grabs or creates a lock for the + unique key. + (getInstance): Ensure classloader initialization is locked by unique + key. + (decrementLoaderUseCount): Ensure classloader deinitialization is + locked by unique key, get rid of no-longer used locks. + +2013-04-11 Adam Domurad + + CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with + same relative-path. + * netx/net/sourceforge/jnlp/NetxPanel.java: (NetxPanel) Construct + unique-key with absolute path + +2013-04-10 Jiri Vanek + + Fixed gifar vulnereability with automated testcase + * netx/net/sourceforge/jnlp/util/JarFile.java: IcedTea-Web replacement for + java.util.jar.JarFile.java with capability to verify if the jar starts as jar + and not as something else (eg gif) + * netx/net/sourceforge/jnlp/Launcher.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/resources/Messages.properties: added + BXignoreheaders key with description to new -Xignoreheaders switch + * netx/net/sourceforge/jnlp/runtime/Boot.java: added switch Xignoreheaders + to allow to disable the header verification. + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: + migrated to new JarFile + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: improved + reporting of new JarFile exceptions + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: new field + ignoreHeaders, informing about new JarFile whether to verify or not verify + headers. By default verifying, so have value of false. + * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java: new + not-checked exception to signify that jar is corrupted on headers level. + * tests/reproducers/custom/GifarCreator/srcs/Makefile: makefile to + join gif and jar to create gifar + * tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html: + html with hacked gifar + * tests/reproducers/signed/GifarBase/resources/gifarView_ok.html: + html with valid gifs and jars + * tests/reproducers/signed/GifarBase/resources/gifar_applet.jnlp: + jnlp applet constructed from hacked gifar + * tests/reproducers/signed/GifarBase/resources/gifar_application.jnlp: + jnlp application constructed from hacked gifar + * tests/reproducers/signed/GifarBase/srcs/GifarMain.java: + Main method of reproducer + * tests/reproducers/signed/GifarBase/testcases/GifarTestcases.java: + Testing methods + * tests/reproducers/signed/GifarBase/resources/happyNonAnimated.gif: + binary file, image, gif, used to create hacked gifars + 2013-04-10 Jiri Vanek Fixed news diff -r 6883b7d0a2fc -r ded8ed9a9427 NEWS --- a/NEWS Wed Apr 10 15:37:00 2013 +0200 +++ b/NEWS Wed Apr 17 10:15:16 2013 +0200 @@ -9,8 +9,13 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.3.2 (2013-04-17): +* Security Updates + - CVE-2013-1927, RH884705: fixed gifar vulnerability + - CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. * Common - Added new option in itw-settings which allows users to set JVM arguments when plugin is initialized. +* NetX + - PR580: http://www.horaoficial.cl/ loads improperly * Plugin PR1260: IcedTea-Web should not rely on GTK PR1157: Applets can hang browser after fatal exception diff -r 6883b7d0a2fc -r ded8ed9a9427 configure.ac --- a/configure.ac Wed Apr 10 15:37:00 2013 +0200 +++ b/configure.ac Wed Apr 17 10:15:16 2013 +0200 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.3.2pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.3.3pre],[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 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/Launcher.java --- a/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 17 10:15:16 2013 +0200 @@ -29,7 +29,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.cache.CacheUtil; import net.sourceforge.jnlp.cache.UpdatePolicy; diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Wed Apr 17 10:15:16 2013 +0200 @@ -77,11 +77,6 @@ * bad tag cannot trick the loader into getting shared with another. */ - // Firefox sometimes skips the codebase if it is default -- ".", - // so set it that way if absent - String codebaseAttr = atts.get("codebase") != null ? - atts.get("codebase") : "."; - String cache_archiveAttr = atts.get("cache_archive") != null ? atts.get("cache_archive") : ""; @@ -91,7 +86,7 @@ String archiveAttr = atts.get("archive") != null ? atts.get("archive") : ""; - this.uKey = "codebase=" + codebaseAttr + + this.uKey = "codebase=" + getCodeBase().toExternalForm() + "cache_archive=" + cache_archiveAttr + "java_archive=" + java_archiveAttr + "archive=" + archiveAttr; diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 17 10:15:16 2013 +0200 @@ -94,7 +94,7 @@ LNotVerified=Jars not verified. LCancelOnUserRequest=Canceled on user request. LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= +LFatalVerificationInfo=Description LNotVerifiedDialog=Not all jars could be verified. LAskToContinue=Would you still like to continue running this application? @@ -185,6 +185,7 @@ BOViewer = Shows the trusted certificate viewer. BXnofork = Do not create another JVM. BXclearcache= Clean the JNLP application cache. +BXignoreheaders= Skip jar header verification. BOHelp = Print this message and exit. # Cache diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/runtime/Boot.java --- a/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 17 10:15:16 2013 +0200 @@ -102,6 +102,7 @@ + " -strict " + R("BOStrict") + "\n" + " -Xnofork " + R("BXnofork") + "\n" + " -Xclearcache " + R("BXclearcache") + "\n" + + " -Xignoreheaders " + R("BXignoreheaders") + "\n" + " -help " + R("BOHelp") + "\n"; private static final String doubleArgs = "-basedir -jnlp -arg -param -property -update"; @@ -159,6 +160,9 @@ if (null != getOption("-Xtrustall")) { JNLPRuntime.setTrustAll(true); } + if (null != getOption("-Xignoreheaders")) { + JNLPRuntime.setIgnoreHeaders(true); + } JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- a/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 17 10:15:16 2013 +0200 @@ -49,7 +49,7 @@ import java.security.PrivilegedExceptionAction; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.util.UrlUtils; @@ -81,7 +81,7 @@ } @Override - public JarFile retrieve(URL url) throws IOException { + public java.util.jar.JarFile retrieve(URL url) throws IOException { URL localUrl = mapping.get(url); if (localUrl == null) { @@ -122,8 +122,8 @@ /* * This method is a copy of URLJarFile.retrieve() without the callback check. */ - private JarFile cacheJarFile(URL url) throws IOException { - JarFile result = null; + private java.util.jar.JarFile cacheJarFile(URL url) throws IOException { + java.util.jar.JarFile result = null; final int BUF_SIZE = 2048; @@ -132,9 +132,9 @@ try { result = - AccessController.doPrivileged(new PrivilegedExceptionAction() { + AccessController.doPrivileged(new PrivilegedExceptionAction() { @Override - public JarFile run() throws IOException { + public java.util.jar.JarFile run() throws IOException { OutputStream out = null; File tmpFile = null; try { diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 17 10:15:16 2013 +0200 @@ -17,6 +17,10 @@ import static net.sourceforge.jnlp.runtime.Translator.R; +import java.util.concurrent.locks.ReentrantLock; + +import java.util.concurrent.locks.Lock; + import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; @@ -56,7 +60,7 @@ import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import java.util.jar.Manifest; import net.sourceforge.jnlp.AppletDesc; @@ -106,9 +110,12 @@ /** True if the application has a signed JNLP File */ private boolean isSignedJNLP = false; - /** map from JNLPFile url to shared classloader */ - private static Map urlToLoader = - new HashMap(); // never garbage collected! + /** map from JNLPFile unique key to shared classloader */ + private static Map uniqueKeyToLoader = new ConcurrentHashMap(); + + /** map from JNLPFile unique key to lock, the lock is needed to enforce correct + * initialization of applets that share a unique key*/ + private static Map uniqueKeyToLock = new HashMap(); /** the directory for native code */ private File nativeDir = null; // if set, some native code exists @@ -331,6 +338,26 @@ } /** + * Gets the lock for a given unique key, creating one if it does not yet exist. + * This operation is atomic & thread-safe. + * + * @param file the file whose unique key should be used + * @return the lock + */ + private static ReentrantLock getUniqueKeyLock(String uniqueKey) { + synchronized (uniqueKeyToLock) { + ReentrantLock storedLock = uniqueKeyToLock.get(uniqueKey); + + if (storedLock == null) { + storedLock = new ReentrantLock(); + uniqueKeyToLock.put(uniqueKey, storedLock); + } + + return storedLock; + } + } + + /** * Returns a JNLP classloader for the specified JNLP file. * * @param file the file to load classes for @@ -342,11 +369,8 @@ JNLPClassLoader loader = null; String uniqueKey = file.getUniqueKey(); - if (uniqueKey != null) - baseLoader = urlToLoader.get(uniqueKey); - - try { - + synchronized ( getUniqueKeyLock(uniqueKey) ) { + baseLoader = uniqueKeyToLoader.get(uniqueKey); // A null baseloader implies that no loader has been created // for this codebase/jnlp yet. Create one. @@ -358,7 +382,7 @@ // New loader init may have caused extentions to create a // loader for this unique key. Check. - JNLPClassLoader extLoader = urlToLoader.get(uniqueKey); + JNLPClassLoader extLoader = uniqueKeyToLoader.get(uniqueKey); if (extLoader != null && extLoader != loader) { if (loader.signing && !extLoader.signing) @@ -387,16 +411,12 @@ loader = baseLoader; } - } catch (LaunchException e) { - throw e; - } + // loaders are mapped to a unique key. Only extensions and parent + // share a key, so it is safe to always share based on it - // loaders are mapped to a unique key. Only extensions and parent - // share a key, so it is safe to always share based on it - - loader.incrementLoaderUseCount(); - synchronized(urlToLoader) { - urlToLoader.put(uniqueKey, loader); + loader.incrementLoaderUseCount(); + + uniqueKeyToLoader.put(uniqueKey, loader); } return loader; @@ -413,12 +433,17 @@ */ public static JNLPClassLoader getInstance(URL location, String uniqueKey, Version version, UpdatePolicy policy, String mainName) throws IOException, ParseException, LaunchException { - JNLPClassLoader loader = urlToLoader.get(uniqueKey); - if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) { - JNLPFile jnlpFile = new JNLPFile(location, uniqueKey, version, false, policy); + JNLPClassLoader loader; - loader = getInstance(jnlpFile, policy, mainName); + synchronized ( getUniqueKeyLock(uniqueKey) ) { + loader = uniqueKeyToLoader.get(uniqueKey); + + if (loader == null || !location.equals(loader.getJNLPFile().getFileLocation())) { + JNLPFile jnlpFile = new JNLPFile(location, uniqueKey, version, false, policy); + + loader = getInstance(jnlpFile, policy, mainName); + } } return loader; @@ -612,7 +637,7 @@ //to read the cacerts or trusted.certs files. e.printStackTrace(); throw new LaunchException(null, null, R("LSFatal"), - R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo")); + R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo") + ": " +e.getMessage()); } //Case when at least one jar has some signing @@ -2097,13 +2122,16 @@ * * @throws SecurityException if caller is not trusted */ - private synchronized void incrementLoaderUseCount() { - + private void incrementLoaderUseCount() { + // For use by trusted code only if (System.getSecurityManager() != null) System.getSecurityManager().checkPermission(new AllPermission()); - - useCount++; + + // NB: There will only ever be one class-loader per unique-key + synchronized ( getUniqueKeyLock(file.getUniqueKey()) ){ + useCount++; + } } /** @@ -2113,17 +2141,20 @@ * * @throws SecurityException if caller is not trusted */ - public synchronized void decrementLoaderUseCount() { + public void decrementLoaderUseCount() { // For use by trusted code only if (System.getSecurityManager() != null) System.getSecurityManager().checkPermission(new AllPermission()); - useCount--; + String uniqueKey = file.getUniqueKey(); - if (useCount <= 0) { - synchronized(urlToLoader) { - urlToLoader.remove(file.getUniqueKey()); + // NB: There will only ever be one class-loader per unique-key + synchronized ( getUniqueKeyLock(uniqueKey) ) { + useCount--; + + if (useCount <= 0) { + uniqueKeyToLoader.remove(uniqueKey); } } } diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 17 10:15:16 2013 +0200 @@ -87,7 +87,7 @@ * @version $Revision: 1.19 $ */ public class JNLPRuntime { - + static { loadResources(); } @@ -142,8 +142,16 @@ /** set to false to indicate another JVM should not be spawned, even if necessary */ private static boolean forksAllowed = true; - /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ + /** all security dialogs will be consumed and pretented as being verified by user and allowed.*/ private static boolean trustAll=false; + /** + * Header is not checked and so eg. gifar exploit is possible + * @see http://en.wikipedia.org/wiki/Gifar for this kind of attack. + * However if jar file is a bit corrupted, then it sometimes can work so + * this switch can disable the header check. + * + */ + private static boolean ignoreHeaders=false; /** contains the arguments passed to the jnlp runtime */ private static List initialArguments; @@ -775,4 +783,14 @@ return trustAll; } + public static boolean isIgnoreHeaders() { + return ignoreHeaders; + } + + public static void setIgnoreHeaders(boolean ignoreHeaders) { + JNLPRuntime.ignoreHeaders = ignoreHeaders; + } + + + } diff -r 6883b7d0a2fc -r ded8ed9a9427 netx/net/sourceforge/jnlp/tools/JarCertVerifier.java --- a/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java Wed Apr 10 15:37:00 2013 +0200 +++ b/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java Wed Apr 17 10:15:16 2013 +0200 @@ -27,19 +27,35 @@ import static net.sourceforge.jnlp.runtime.Translator.R; -import java.io.*; -import java.util.*; -import java.util.jar.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.security.CodeSigner; +import java.security.KeyStore; +import java.security.cert.CertPath; import java.security.cert.Certificate; import java.security.cert.X509Certificate; -import java.security.cert.CertPath; -import java.security.*; -import sun.security.x509.*; -import sun.security.util.*; From andrew at icedtea.classpath.org Wed Apr 17 01:37:44 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:37:44 +0000 Subject: /hg/release/icedtea6-1.11: 6 new changesets Message-ID: changeset 844ef6a4e570 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=844ef6a4e570 author: Andrew John Hughes date: Wed Apr 17 08:03:37 2013 +0100 PR1362: Fedora 19 / rawhide FTBFS SIGILL 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit and OJ3 identifier to earlier backport. * ChangeLog: Add missing entry for last commit. 2013-04-05 Chris Phillips * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: Fix failure in the register allocation logic, diagnosed by Andrew Haley to be an issue with PUSH/POP macro's and assumption of order of evaluation of arguments. The fix includes detection of the condition and bailing from the compilation if a similar failure is detected. changeset bff1ea798749 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=bff1ea798749 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. changeset a4f35810b04f in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=a4f35810b04f author: Andrew John Hughes date: Wed Apr 17 08:13:18 2013 +0100 Update NEWS from previous commit. 2013-04-17 Andrew John Hughes * NEWS: Updated. changeset 9faadf8e66b2 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=9faadf8e66b2 author: Andrew John Hughes date: Wed Apr 17 08:19:05 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and PR1338, added silently for 1.11.5 but not HEAD. changeset a4c7d55a2e77 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=a4c7d55a2e77 author: Andrew John Hughes date: Wed Apr 17 09:34:34 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. changeset ed783f8e0c51 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=ed783f8e0c51 author: Andrew John Hughes date: Wed Apr 17 09:37:04 2013 +0100 Prepare for 1.11.10 release. 2013-04-17 Andrew John Hughes * NEWS: Add release date of 1.11.10. * configure.ac: Prepare for 1.11.10. diffstat: AUTHORS | 4 + ChangeLog | 53 +++++++++++++++++++++++++ Makefile.am | 3 +- NEWS | 10 +++- THANKYOU | 10 ---- arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 30 +++++++++++-- configure.ac | 2 +- patches/aarch64.patch | 21 +++++++++ patches/pr1319-support_giflib_5.patch | 2 +- rewriter/com/redhat/rewriter/ClassRewriter.java | 6 +- 10 files changed, 118 insertions(+), 23 deletions(-) diffs (315 lines): diff -r 1a2df02fa23d -r ed783f8e0c51 AUTHORS --- a/AUTHORS Tue Apr 16 20:25:56 2013 +0100 +++ b/AUTHORS Wed Apr 17 09:37:04 2013 +0100 @@ -2,6 +2,7 @@ Please keep this list in alphabetical order. Lillian Angel +Alexis Ballier Alon Bar-Lev Gary Benson Tania Bento @@ -18,6 +19,7 @@ Andrew John Hughes Tomas Hurka Ioana Ivan +C. K. Jester-Young (cky944 at gmail.com) Matthias Klose Francis Kung Denis Lila @@ -32,6 +34,7 @@ Mark Reinhold Bernhard Rosenkr??nzer Marc Schoenefeld +Andreas Schwab Keith Seitz Andrew Su Joshua Sumali @@ -39,6 +42,7 @@ Christian Thalinger Dalibor Topic Arnaud Vandyck +Torsten Werner (mail.twerner at googlemail.com) Mark Wielaard Yi Zhan diff -r 1a2df02fa23d -r ed783f8e0c51 ChangeLog --- a/ChangeLog Tue Apr 16 20:25:56 2013 +0100 +++ b/ChangeLog Wed Apr 17 09:37:04 2013 +0100 @@ -1,3 +1,56 @@ +2013-04-17 Andrew John Hughes + + * NEWS: Add release date of 1.11.10. + * configure.ac: Prepare for 1.11.10. + +2013-04-17 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add patch after SH patch. + * NEWS: Updated. + * AUTHORS: Add Andreas and merge in THANKYOU. + * THANKYOU: Removed. + +2013-03-22 Andreas Schwab + + PR1380: Add AArch64 support to Zero + * patches/aarch64.patch: + Add Zero support for AArch64. + +2013-03-11 Andrew John Hughes + + PR1339: Simplify the rewriter, avoiding concurrency. + * rewriter/com/redhat/rewriter/ClassRewriter.java: + Always use the single threaded executor. + * NEWS: Updated with this and PR1338, added silently + for 1.11.5 but not HEAD. + +2013-04-17 Andrew John Hughes + + * NEWS: Updated. + +2013-04-16 Andrew John Hughes + + * patches/pr1319-support_giflib_5.patch, + Use #if not #ifdef. + +2013-04-12 Andrew John Hughes + + * NEWS: Add PR1362 from last commit and + OJ3 identifier to earlier backport. + * ChangeLog: Add missing entry for last + commit. + +2013-04-05 Chris Phillips + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + Fix failure in the register allocation logic, + diagnosed by Andrew Haley to be an issue with + PUSH/POP macro's and assumption of order of + evaluation of arguments. The fix includes + detection of the condition and bailing from the + compilation if a similar failure is detected. + 2013-04-17 Andrew John Hughes * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: diff -r 1a2df02fa23d -r ed783f8e0c51 Makefile.am --- a/Makefile.am Tue Apr 16 20:25:56 2013 +0100 +++ b/Makefile.am Wed Apr 17 09:37:04 2013 +0100 @@ -535,7 +535,8 @@ patches/openjdk/8007393.patch \ patches/openjdk/8007611.patch \ patches/fix_get_stack_bounds_leak.patch \ - patches/openjdk/7197906-handle_32_bit_shifts.patch + patches/openjdk/7197906-handle_32_bit_shifts.patch \ + patches/aarch64.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 1a2df02fa23d -r ed783f8e0c51 NEWS --- a/NEWS Tue Apr 16 20:25:56 2013 +0100 +++ b/NEWS Wed Apr 17 09:37:04 2013 +0100 @@ -7,13 +7,15 @@ GX - http://bugs.gentoo.org/show_bug.cgi?id=X CAX - http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=X LPX - https://bugs.launchpad.net/bugs/X +OJX - http://java.net/jira/browse/OPENJDK6-X CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.11.10 (2013-04-XX): +New in release 1.11.10 (2013-04-17): * New features - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. + - PR1380: Add AArch64 support to Zero * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP - S7200507: Refactor Introspector internals @@ -56,7 +58,10 @@ - S7064279: Introspector.getBeanInfo() should release some resources in timely manner - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 * Bug fixes - - Fix get_stack_bounds memory leak (alternate fix for S7197906) + - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7197906) + - PR1362: Fedora 19 / rawhide FTBFS SIGILL + - PR1319: Correct #ifdef to #if + - PR1339: Simplify the rhino class rewriter to avoid use of concurrency New in release 1.11.9 (2013-03-04): @@ -153,6 +158,7 @@ - S7199153: TEST_BUG: try-with-resources syntax pushed to 6-open repo * Bug fixes - PR1194: IcedTea tries to build with /usr/lib/jvm/java-openjdk (now a 1.7 VM) by default + - PR1338: Remove dependence on libXp New in release 1.11.4 (2012-08-31): diff -r 1a2df02fa23d -r ed783f8e0c51 THANKYOU --- a/THANKYOU Tue Apr 16 20:25:56 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -The following have made minor contributions to the IcedTea -project, such as testing, bug submission, or minor patches. See also -the AUTHORS file, which lists people who have submitted major -patches. If your name does not appear on either list, but should, let -us know. Please keep this list in alphabetic order. - -Alexis Ballier (aballier at gentoo.org) -Alon Bar-Lev (alon.barlev at gmail.com) -C. K. Jester-Young (cky944 at gmail.com) -Torsten Werner (mail.twerner at googlemail.com) \ No newline at end of file diff -r 1a2df02fa23d -r ed783f8e0c51 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp --- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Tue Apr 16 20:25:56 2013 +0100 +++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Apr 17 09:37:04 2013 +0100 @@ -1,5 +1,6 @@ /* * Copyright 2009, 2010 Edward Nevill + * Copyright 2013 Red Hat * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as @@ -399,6 +400,8 @@ static jmp_buf compiler_error_env; +#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED) + #ifdef PRODUCT #define JASSERT(cond, msg) 0 @@ -3472,8 +3475,6 @@ #define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3]) #define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4]) -#define POP(jstack) ((jstack)->stack[--(jstack)->depth]) -#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r)) #define SWAP(jstack) do { \ Reg r = (jstack)->stack[(jstack)->depth-1]; \ (jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \ @@ -3483,6 +3484,17 @@ #define JSTACK_REG(jstack) jstack_reg(jstack) #define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer) +int PUSH(Thumb2_Stack *jstack, unsigned reg) { + jstack->stack[jstack->depth] = reg; + jstack->depth++; + return reg; +} + +int POP(Thumb2_Stack *jstack) { + jstack->depth--; + return jstack->stack[jstack->depth]; +} + static const unsigned last_clear_bit[] = { 3, // 0000 3, // 0001 @@ -3499,11 +3511,13 @@ 1, // 1100 1, // 1101 0, // 1110 - 0, // 1111 + 0, // 1111 // No registers available... }; #define LAST_CLEAR_BIT(mask) last_clear_bit[mask] +unsigned long thumb2_register_allocation_failures = 0; + unsigned jstack_reg(Thumb2_Stack *jstack) { unsigned *stack = jstack->stack; @@ -3514,7 +3528,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } @@ -3530,7 +3547,10 @@ for (i = 0; i < depth; i++) mask |= 1 << stack[i]; mask &= (1 << STACK_REGS) - 1; if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1)); - JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push"); + if (mask >= (1 << STACK_REGS) - 1) { // No free registers + thumb2_register_allocation_failures++; + J_BogusImplementation(); + } r = LAST_CLEAR_BIT(mask); return r; } diff -r 1a2df02fa23d -r ed783f8e0c51 configure.ac --- a/configure.ac Tue Apr 16 20:25:56 2013 +0100 +++ b/configure.ac Wed Apr 17 09:37:04 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.11.10pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.11.10],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 1a2df02fa23d -r ed783f8e0c51 patches/aarch64.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/aarch64.patch Wed Apr 17 09:37:04 2013 +0100 @@ -0,0 +1,21 @@ +--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp +@@ -1893,7 +1893,8 @@ void * os::dll_load(const char *filename + {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, +- {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ ++ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/ ++ {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/ + }; + + #if (defined IA32) +@@ -1926,6 +1927,8 @@ void * os::dll_load(const char *filename + static Elf32_Half running_arch_code=EM_68K; + #elif (defined SH) + static Elf32_Half running_arch_code=EM_SH; ++ #elif (defined AARCH64) ++ static Elf32_Half running_arch_code=EM_AARCH64; + #else + #error Method os::dll_load requires that one of following is defined:\ + IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH diff -r 1a2df02fa23d -r ed783f8e0c51 patches/pr1319-support_giflib_5.patch --- a/patches/pr1319-support_giflib_5.patch Tue Apr 16 20:25:56 2013 +0100 +++ b/patches/pr1319-support_giflib_5.patch Wed Apr 17 09:37:04 2013 +0100 @@ -12,7 +12,7 @@ int SplashDecodeGifStream(Splash * splash, SplashStream * stream) { -+#ifdef GIFLIB_MAJOR >= 5 ++#if GIFLIB_MAJOR >= 5 + int error = 0; + GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, &error); + diff -r 1a2df02fa23d -r ed783f8e0c51 rewriter/com/redhat/rewriter/ClassRewriter.java --- a/rewriter/com/redhat/rewriter/ClassRewriter.java Tue Apr 16 20:25:56 2013 +0100 +++ b/rewriter/com/redhat/rewriter/ClassRewriter.java Wed Apr 17 09:37:04 2013 +0100 @@ -60,8 +60,8 @@ /** * The executor for submitting rewriting jobs. */ - private static final ExecutorService executor = DEBUG ? - Executors.newSingleThreadExecutor() : Executors.newCachedThreadPool(); + private static final ExecutorService executor = + Executors.newSingleThreadExecutor(); /** * The source directory, set once by main. @@ -290,4 +290,4 @@ return null; } -} \ No newline at end of file +} From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 01:38:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:38:01 +0000 Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362 --- Comment #5 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.11?cmd=changeset;node=844ef6a4e570 author: Andrew John Hughes date: Wed Apr 17 08:03:37 2013 +0100 PR1362: Fedora 19 / rawhide FTBFS SIGILL 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit and OJ3 identifier to earlier backport. * ChangeLog: Add missing entry for last commit. 2013-04-05 Chris Phillips * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: Fix failure in the register allocation logic, diagnosed by Andrew Haley to be an issue with PUSH/POP macro's and assumption of order of evaluation of arguments. The fix includes detection of the condition and bailing from the compilation if a similar failure is detected. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/d0cca422/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 01:38:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:38:18 +0000 Subject: [Bug 1319] [IcedTea6] Support GIF lib v5 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1319 --- Comment #6 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.11?cmd=changeset;node=bff1ea798749 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/9d6bee5c/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 01:38:30 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:38:30 +0000 Subject: [Bug 1338] [IcedTea6] Remove dependence on libXp In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1338 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.11?cmd=changeset;node=9faadf8e66b2 author: Andrew John Hughes date: Wed Apr 17 08:19:05 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and PR1338, added silently for 1.11.5 but not HEAD. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/6d621e5c/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 01:38:34 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:38:34 +0000 Subject: [Bug 1339] [IcedTea6] Simplify the rhino class rewriter to avoid use of concurrency In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1339 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.11?cmd=changeset;node=9faadf8e66b2 author: Andrew John Hughes date: Wed Apr 17 08:19:05 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and PR1338, added silently for 1.11.5 but not HEAD. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/c491e2e2/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 01:38:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 08:38:43 +0000 Subject: [Bug 1380] [IcedTea6] Add AArch64 support to Zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1380 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.11?cmd=changeset;node=a4c7d55a2e77 author: Andrew John Hughes date: Wed Apr 17 09:34:34 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/ef10f943/attachment.html From jvanek at redhat.com Wed Apr 17 01:46:36 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 17 Apr 2013 10:46:36 +0200 Subject: Upcoming Releases of 1.12.0 & 2.4.0 In-Reply-To: <274205354.5841846.1361319614275.JavaMail.root@redhat.com> References: <274205354.5841846.1361319614275.JavaMail.root@redhat.com> Message-ID: <516E616C.6070803@redhat.com> On 02/20/2013 01:20 AM, Andrew Hughes wrote: > ----- Original Message ----- >> >> >> >> On Tue, Feb 19, 2013 at 3:43 PM, Andrew Hughes < >> gnu.andrew at redhat.com > wrote: >> >> >> >> ----- Original Message ----- >>> Could you update the table in >>> http://icedtea.classpath.org/wiki/ReleasePolicy >>> with details about IcedTea 2.4? >>> >> >> I will as soon as it's released :-) >> >> >> >> >> Oops, I guess I thought it was, especially with the 2.4 release >> forest already existing. >> > > My fault. I should have posted more news on what was going on, but it's > been kinda hectic. I was all set to release it just after FOSDEM, then > the security update happened. Then, by the time we recovered from that, > another one happened. > >> >> >>> Also, could you clarify the new maintainership of IcedTea6 1.12, >>> perhaps by s/1.11/1.x/ and perhaps s/IcedTea/IcedTea 2.x/ ? >>> >> >> I'm not sure I follow. The following releases are currently >> supported: >> >> 1.11.x >> 1.12.x >> 2.1.x >> 2.2.x >> 2.3.x >> >> >> >> >> What I mean is - who is maintaining what? >> You are listed as the maintainer of "IcedTea", while Omair is listed >> as the maintainer of "1.11". But that's probably not quite right - >> I'm guessing you are the maintainer of 2.x, while Omair is the >> maintainer of 1.x (including 1.12), which isn't clear from the first >> table. >> > > Oh, right, sorry. It's not really that formal and it tends to work > more as Omair will do the release if I'm not around to do it i.e. > whoever wants to pitches in and does things, and it generally makes > sense with security updates to do the lot together as they'll be > mostly the same patches. For example, the last set had a common > set for 6 & 7, then two more just for 7 (JSR 292 stuff). It > doesn't really make sense for someone to patch 1.11.x while someone > is patching 1.12.x as work would be duplicated; we generally patch > one then backport the changeset. > > I should probably just change that page to list us both as IcedTea > maintainers; the whole 'Omair = 1.11" is a bit silly and not even > reflective of reality. But I'll check with him first. > > Thanks, > Just heads up as I'm looking forward to move f19 and rawhide to 2.4, please note, that there have been several TCK failures during last testing of HEAD/2.4pre. Thanx for keeping IcedTea alive for us:) J. From jvanek at redhat.com Wed Apr 17 01:55:25 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 17 Apr 2013 10:55:25 +0200 Subject: IcedTea-Web 1.3.2 and 1.2.3 released! Message-ID: <516E637D.7060206@redhat.com> IcedTea-Web 1.3.2 and 1.2.3 released! The changes well... are as they are. Not much, but at least something - as development was strongly focused to HEAD. From this point of view, I strongly encourage every user to move to 1.4 as smoothly and quickly as possible (will be based on future head anyway). Also please note that 1.2 is getting close to end of its life. http://icedtea.wildebeest.org/download/source/icedtea-web-1.3.2.tar.gz http://icedtea.wildebeest.org/download/source/icedtea-web-1.2.3.tar.gz md5sums: ab56d94251975a9bb5359ea85136ea79 icedtea-web-1.2.3.tar.gz 94ce02c42c1e4d1411357fb3c1014f67 icedtea-web-1.3.2.tar.gz New in release 1.3.2 (2013-04-17): * Security Updates - CVE-2013-1927, RH884705: fixed gifar vulnerability - CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. * Common - Added new option in itw-settings which allows users to set JVM arguments when plugin is initialized. * NetX - PR580: http://www.horaoficial.cl/ loads improperly * Plugin PR1260: IcedTea-Web should not rely on GTK PR1157: Applets can hang browser after fatal exception For details you can see changesets: * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/2d76719a5e4d * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/88fb945c9397 * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/25dd7c7ac39c * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/25dd7c7ac39c * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/19f5282f53e8 * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/ca8b00cca4c3 * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/f63bdf513e9d * http://icedtea.classpath.org/hg/release/icedtea-web-1.3/rev/b619cda99360 New in release 1.2.3 (2013-04-17): * Security Updates - CVE-2013-1927, RH884705: fixed gifar vulnerability - CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. * Common - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 * Plugin - PR1157: Applets can hang browser after fatal exception For details you can see changesets: * http://icedtea.classpath.org/hg/release/icedtea-web-1.2/rev/34b6f60ae586 * http://icedtea.classpath.org/hg/release/icedtea-web-1.2/rev/cb58b31c450e * http://icedtea.classpath.org/hg/release/icedtea-web-1.2/rev/cd4a9f25808e Please consider for next few hours HEAD as frozen (until you see similar commits;) Thanks to everyone who helped with this releases: Deepak Bhole Adam Domurad Jana Fabrikova Tomas Hoger Omair Majid Jiri Vanek Best regard J From jvanek at redhat.com Wed Apr 17 01:58:01 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 17 Apr 2013 10:58:01 +0200 Subject: Upcoming releases of IcedTea-Web 1.2, 1.3, 1.4 In-Reply-To: <51659134.8050509@redhat.com> References: <515E921C.2030207@redhat.com> <51659134.8050509@redhat.com> Message-ID: <516E6419.5050409@redhat.com> On 04/10/2013 06:20 PM, Jiri Vanek wrote: > On 04/05/2013 10:58 AM, Jiri Vanek wrote: >> Hi all! >> >> There are two releases of IcedTea-Web approaching: >> >> We would like to release 1.2 and 1.3 in 17th of April >> Please count with freezing of branches in week 10-17.4, but there is not so much traffic on >> branches anyway. >> >> At 1th of May is planed release of IcedTea-Web 1.4! >> This release is bringing many improvements and IcedTea-Web was never as stable as is now. I would >> like to encourage every distribution to move to this release. >> Unless something unlucky will be found in 1.4, some time later the 1.2 will be proclaimed dead. >> Please count with head frozen in last week of April. >> >> Best regards >> J. > > Hi! > > > With the approaching release of IcedTea-Web 1.2.3 and 1.3.2, please > consider /release/icedtea-web-1.2/ and /release/icedtea-web-1.3/ frozen. > > > 1.2: > - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 > - PR1157: Applets can hang browser after fatal exception > > 1.3 > - Added new option in itw-settings which allows users to set JVM arguments when plugin is > initialized. (backport) > PR1260: IcedTea-Web should not rely on GTK > PR1157: Applets can hang browser after fatal exception > Provide names for unnamed threads for better debugging > > Both releases will also contain a (currently embargoed) security fix. > > Thanks for your for patience, understanding and contributions! > > > J. > > The branches are out[1] and unfrozen, feel free to use and cross finger for upcoming 1.4:) J. [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-April/022790.html From andrew at icedtea.classpath.org Wed Apr 17 04:01:52 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 17 Apr 2013 11:01:52 +0000 Subject: /hg/icedtea6: Update EXTRA_DIST following merge of THANKYOU into... Message-ID: changeset 50031cd2f57a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=50031cd2f57a author: Andrew John Hughes date: Wed Apr 17 12:01:42 2013 +0100 Update EXTRA_DIST following merge of THANKYOU into AUTHORS. 2013-04-17 Andrew John Hughes * Makefile.am: (EXTRA_DIST): Remove THANKYOU. diffstat: ChangeLog | 5 +++++ Makefile.am | 1 - 2 files changed, 5 insertions(+), 1 deletions(-) diffs (23 lines): diff -r fe8749a2c67c -r 50031cd2f57a ChangeLog --- a/ChangeLog Wed Apr 17 07:56:18 2013 +0100 +++ b/ChangeLog Wed Apr 17 12:01:42 2013 +0100 @@ -1,3 +1,8 @@ +2013-04-17 Andrew John Hughes + + * Makefile.am: + (EXTRA_DIST): Remove THANKYOU. + 2013-04-17 Andrew John Hughes * Makefile.am: diff -r fe8749a2c67c -r 50031cd2f57a Makefile.am --- a/Makefile.am Wed Apr 17 07:56:18 2013 +0100 +++ b/Makefile.am Wed Apr 17 12:01:42 2013 +0100 @@ -795,7 +795,6 @@ scripts/jni_desc \ rewriter/agpl-3.0.txt \ $(REWRITER_SRCS) \ - THANKYOU \ $(TAPSET_TEST_SRCS) # Top-Level Targets From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 04:34:28 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 11:34:28 +0000 Subject: [Bug 1400] New: Menu of maximized AWT window not working in GNOME Shell Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1400 Bug ID: 1400 Summary: Menu of maximized AWT window not working in GNOME Shell Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: robin at nibor.org CC: unassigned at icedtea.classpath.org How to reproduce: 1. Start a Swing application (e.g. jEdit) under GNOME Shell 2. Open a window with a menu bar 3. Maximize the window 4. Try to use the menu Expected: Menu is usable Actual: When single-clicking, the menu closes immediately. When dragging, the entries can not activated. What is interesting is that when the window is moved to the top left corner before maximizing it, the menu works. So it seems the menu position of the pre-maximized states is used. The problem seems to be the switch on line 753 here on the WM Name/ID: http://hg.openjdk.java.net/jdk8/awt/jdk/file/dcdf8cd4b09e/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java GNOME Shell uses "GNOME Shell" nowadays, not "Mutter" and so the code is not executed. Either the switch should also include "GNOME Shell" or it should be done for all cases as mentioned in the TODO above the switch. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/dbc29adf/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 04:34:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 11:34:49 +0000 Subject: [Bug 1400] Menu of maximized AWT window not working in GNOME Shell In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1400 Robin Stocker changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugzilla.gnome.org/ | |show_bug.cgi?id=679542 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/68b5200f/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 17 04:35:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Apr 2013 11:35:08 +0000 Subject: [Bug 1400] Menu of maximized AWT window not working in GNOME Shell In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1400 Robin Stocker changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugzilla.redhat.com | |/show_bug.cgi?id=918055 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130417/4b5398de/attachment.html From gnu.andrew at redhat.com Wed Apr 17 05:07:13 2013 From: gnu.andrew at redhat.com (Andrew John Hughes) Date: Wed, 17 Apr 2013 13:07:13 +0100 Subject: [SECURITY] IcedTea 1.11.10 for OpenJDK 6 Released! Message-ID: <20130417120712.GA31205@carrie.middle-earth.co.uk> The IcedTea project provides a harness to build the source code from OpenJDK 6 using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. A new security release, 1.11.10. This contains the following security fixes: * S6657673, CVE-2013-1518: Issues with JAXP * S7200507: Refactor Introspector internals * S8000724, CVE-2013-2417: Improve networking serialization * S8001031, CVE-2013-2419: Better font processing * S8001040, CVE-2013-1537: Rework RMI model * S8001322: Refactor deserialization * S8001329, CVE-2013-1557: Augment RMI logging * S8003335: Better handling of Finalizer thread * S8003445: Adjust JAX-WS to focus on API * S8003543, CVE-2013-2415: Improve processing of MTOM attachments * S8004261: Improve input validation * S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames * S8004986, CVE-2013-2383: Better handling of glyph table * S8004987, CVE-2013-2384: Better handling of glyph table * S8004994, CVE-2013-1569: Better handling of glyph table * S8005432: Update access to JAX-WS * S8005943: (process) Improved Runtime.exec * S8006309: More reliable control panel operation * S8006435, CVE-2013-2424: Improvements in JMX * S8006790: Improve checking for windows * S8006795: Improve font warning messages * S8007406: Improve accessibility of AccessBridge * S8007617, CVE-2013-2420: Better validation of images * S8007667, CVE-2013-2430: Better image reading * S8007918, CVE-2013-2429: Better image writing * S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap * S8009305, CVE-2013-0401: Improve AWT data transfer * S8009699, CVE-2013-2421: Methodhandle lookup * S8009814, CVE-2013-1488: Better driver management * S8009857. CVE-2013-2422: Problem with plugin Full details of the release can be found below. What?s New? ?????? New in release 1.11.10 (2013-04-17): * New features - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. - PR1380: Add AArch64 support to Zero * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP - S7200507: Refactor Introspector internals - S8000724, CVE-2013-2417: Improve networking serialization - S8001031, CVE-2013-2419: Better font processing - S8001040, CVE-2013-1537: Rework RMI model - S8001322: Refactor deserialization - S8001329, CVE-2013-1557: Augment RMI logging - S8003335: Better handling of Finalizer thread - S8003445: Adjust JAX-WS to focus on API - S8003543, CVE-2013-2415: Improve processing of MTOM attachments - S8004261: Improve input validation - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames - S8004986, CVE-2013-2383: Better handling of glyph table - S8004987, CVE-2013-2384: Improve font layout - S8004994, CVE-2013-1569: Improve checking of glyph table - S8005432: Update access to JAX-WS - S8005943: (process) Improved Runtime.exec - S8006309: More reliable control panel operation - S8006435, CVE-2013-2424: Improvements in JMX - S8006790: Improve checking for windows - S8006795: Improve font warning messages - S8007406: Improve accessibility of AccessBridge - S8007617, CVE-2013-2420: Better validation of images - S8007667, CVE-2013-2430: Better image reading - S8007918, CVE-2013-2429: Better image writing - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap - S8009305, CVE-2013-0401: Improve AWT data transfer - S8009699, CVE-2013-2421: Methodhandle lookup - S8009814, CVE-2013-1488: Better driver management - S8009857. CVE-2013-2422: Problem with plugin * Backports - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts - S7036559: ConcurrentHashMap footprint and contention improvements - S5102804: Memory leak in Introspector.getBeanInfo(Class) for custom BeanInfo: Class param (with WeakCache from S6397609) - S6501644: sync LayoutEngine *code* structure to match ICU - S6886358: layout code update - S6963811: Deadlock-prone locking changes in Introspector - S7017324: Kerning crash in JDK 7 since ICU layout update - S7064279: Introspector.getBeanInfo() should release some resources in timely manner - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 * Bug fixes - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7197906) - PR1362: Fedora 19 / rawhide FTBFS SIGILL - PR1319: Correct #ifdef to #if - PR1339: Simplify the rhino class rewriter to avoid use of concurrency The tarballs can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea6-1.11.10.tar.gz SHA256 checksums: 6c362135db9e0477eb9308b02a2adef26fc56cdabf2eda3286ce4301eb6e951e icedtea6-1.11.10.tar.gz Each tarball is accompanied by a digital signature (available at the above URL + '.sig'). This is produced using my public key. See details below. The following people helped with these releases: * Andrew John Hughes (applying most security patches, backports & bug fixes, release management) * Omair Majid (build testing, reproducer runs, patches for S8007667, S8007918, S8009305, S8009814, S8009857) * Chris Phillips (PR1362 patch for ARM issue) * Roman Kennke (S8004986 / S8004987 / S8004994 patch) * Andreas Schwab (PR1380 patch for AArch64 Zero support) * Jon VanAlten (S8009063 patch and S7036559 dependency backport) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.11.10.tar.gz Full build requirements and instructions are in INSTALL: $ mkdir icedtea6-build $ cd icedtea6-build $ ../icedtea6-1.11.10/configure [--enable-zero --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! -- 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 gnu.andrew at redhat.com Wed Apr 17 05:12:21 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Wed, 17 Apr 2013 08:12:21 -0400 (EDT) Subject: Upcoming Releases of 1.12.0 & 2.4.0 In-Reply-To: <516E616C.6070803@redhat.com> References: <274205354.5841846.1361319614275.JavaMail.root@redhat.com> <516E616C.6070803@redhat.com> Message-ID: <343434559.1827428.1366200741031.JavaMail.root@redhat.com> ----- Original Message ----- > On 02/20/2013 01:20 AM, Andrew Hughes wrote: > > ----- Original Message ----- > >> > >> > >> > >> On Tue, Feb 19, 2013 at 3:43 PM, Andrew Hughes < > >> gnu.andrew at redhat.com > wrote: > >> > >> > >> > >> ----- Original Message ----- > >>> Could you update the table in > >>> http://icedtea.classpath.org/wiki/ReleasePolicy > >>> with details about IcedTea 2.4? > >>> > >> > >> I will as soon as it's released :-) > >> > >> > >> > >> > >> Oops, I guess I thought it was, especially with the 2.4 release > >> forest already existing. > >> > > > > My fault. I should have posted more news on what was going on, but it's > > been kinda hectic. I was all set to release it just after FOSDEM, then > > the security update happened. Then, by the time we recovered from that, > > another one happened. > > > >> > >> > >>> Also, could you clarify the new maintainership of IcedTea6 1.12, > >>> perhaps by s/1.11/1.x/ and perhaps s/IcedTea/IcedTea 2.x/ ? > >>> > >> > >> I'm not sure I follow. The following releases are currently > >> supported: > >> > >> 1.11.x > >> 1.12.x > >> 2.1.x > >> 2.2.x > >> 2.3.x > >> > >> > >> > >> > >> What I mean is - who is maintaining what? > >> You are listed as the maintainer of "IcedTea", while Omair is listed > >> as the maintainer of "1.11". But that's probably not quite right - > >> I'm guessing you are the maintainer of 2.x, while Omair is the > >> maintainer of 1.x (including 1.12), which isn't clear from the first > >> table. > >> > > > > Oh, right, sorry. It's not really that formal and it tends to work > > more as Omair will do the release if I'm not around to do it i.e. > > whoever wants to pitches in and does things, and it generally makes > > sense with security updates to do the lot together as they'll be > > mostly the same patches. For example, the last set had a common > > set for 6 & 7, then two more just for 7 (JSR 292 stuff). It > > doesn't really make sense for someone to patch 1.11.x while someone > > is patching 1.12.x as work would be duplicated; we generally patch > > one then backport the changeset. > > > > I should probably just change that page to list us both as IcedTea > > maintainers; the whole 'Omair = 1.11" is a bit silly and not even > > reflective of reality. But I'll check with him first. > > > > Thanks, > > > > > Just heads up as I'm looking forward to move f19 and rawhide to 2.4, please > note, that there have > been several TCK failures during last testing of HEAD/2.4pre. > > Thanx for keeping IcedTea alive for us:) > Thanks :) Hopefully, 2.4.0 will be out this month. It's been repeatedly delayed by all the security releases. > > J. > -- 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 andrew at icedtea.classpath.org Wed Apr 17 05:14:55 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 17 Apr 2013 12:14:55 +0000 Subject: /hg/release/icedtea6-1.11: 6 new changesets Message-ID: changeset 82e17c1cd647 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=82e17c1cd647 author: Andrew John Hughes date: Wed Apr 17 11:26:25 2013 +0100 Update EXTRA_DIST following merge of THANKYOU into AUTHORS. 2013-04-17 Andrew John Hughes * Makefile.am: (EXTRA_DIST): Remove THANKYOU. changeset 1609660fb832 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=1609660fb832 author: Andrew John Hughes date: Wed Apr 17 11:44:19 2013 +0100 Fix all paths to reference openjdk. 2013-04-17 Andrew John Hughes * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, * patches/openjdk/jaxp144_05.patch: Fix all paths to reference openjdk tree. changeset 0a85944d1c12 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=0a85944d1c12 author: Omair Majid date: Tue Apr 16 15:53:33 2013 -0400 Remove conflicting patch preventing build 2013-04-16 Omair Majid * patches/coverage-table.patch: Remove. Already included in patches/openjdk/6886358-layout_update.patch. * Makefile.am (ICEDTEA_PATCHES): Remove patch. changeset f25e5db93976 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=f25e5db93976 author: Andrew John Hughes date: Wed Apr 17 11:49:33 2013 +0100 Merge changeset 941b287668e4 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=941b287668e4 author: Andrew John Hughes date: Wed Apr 17 13:12:46 2013 +0100 Added tag icedtea6-1.11.10 for changeset f25e5db93976 changeset 82628dc4d2d4 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=82628dc4d2d4 author: Andrew John Hughes date: Wed Apr 17 13:14:23 2013 +0100 Improve listing for S8004987 and S8004994 2013-04-17 Andrew John Hughes * NEWS: Improve listing for S8004987 and S8004994, using descriptions buried in the patch itself (found during release announcement). diffstat: .hgtags | 1 + ChangeLog | 23 + Makefile.am | 4 +- NEWS | 4 +- patches/coverage-table.patch | 13 - patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch | 5376 +++++++++--------- patches/openjdk/jaxp144_05.patch | 3926 ++++++------ 7 files changed, 4678 insertions(+), 4669 deletions(-) diffs (truncated from 41921 to 500 lines): diff -r ed783f8e0c51 -r 82628dc4d2d4 .hgtags --- a/.hgtags Wed Apr 17 09:37:04 2013 +0100 +++ b/.hgtags Wed Apr 17 13:14:23 2013 +0100 @@ -32,3 +32,4 @@ ae00216847f46fa26899a5317b75ea07edd5cb19 icedtea6-1.11.7 c529222b0628a112d53bfe3dafa7292df9d6e683 icedtea6-1.11.8 4892e006b2951600c9131e595096f8eceae5ffe8 icedtea6-1.11.9 +f25e5db9397688f7268bb62aca5c63520b4bd08e icedtea6-1.11.10 diff -r ed783f8e0c51 -r 82628dc4d2d4 ChangeLog --- a/ChangeLog Wed Apr 17 09:37:04 2013 +0100 +++ b/ChangeLog Wed Apr 17 13:14:23 2013 +0100 @@ -1,3 +1,26 @@ +2013-04-17 Andrew John Hughes + + * NEWS: Improve listing for S8004987 and + S8004994, using descriptions buried in the + patch itself (found during release announcement). + +2013-04-16 Omair Majid + + * patches/coverage-table.patch: Remove. Already included + in patches/openjdk/6886358-layout_update.patch. + * Makefile.am (ICEDTEA_PATCHES): Remove patch. + +2013-04-17 Andrew John Hughes + + * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, + * patches/openjdk/jaxp144_05.patch: + Fix all paths to reference openjdk tree. + +2013-04-17 Andrew John Hughes + + * Makefile.am: + (EXTRA_DIST): Remove THANKYOU. + 2013-04-17 Andrew John Hughes * NEWS: Add release date of 1.11.10. diff -r ed783f8e0c51 -r 82628dc4d2d4 Makefile.am --- a/Makefile.am Wed Apr 17 09:37:04 2013 +0100 +++ b/Makefile.am Wed Apr 17 13:14:23 2013 +0100 @@ -521,7 +521,6 @@ patches/openjdk/remove-mimpure-option-to-gcc.patch \ patches/idresolver_fix.patch \ patches/openjdk/6792400-Avoid_loading_Normalizer_resources.patch \ - patches/coverage-table.patch \ patches/openjdk/7185678-xmenuitem_peer_npe.patch \ patches/merge_fix.patch \ patches/openjdk/7175845-jar_uf_changes_file_permissions.patch \ @@ -757,8 +756,7 @@ scripts/jni_create_stap.c \ scripts/jni_desc \ rewriter/agpl-3.0.txt \ - $(REWRITER_SRCS) \ - THANKYOU + $(REWRITER_SRCS) # Top-Level Targets # ================= diff -r ed783f8e0c51 -r 82628dc4d2d4 NEWS --- a/NEWS Wed Apr 17 09:37:04 2013 +0100 +++ b/NEWS Wed Apr 17 13:14:23 2013 +0100 @@ -30,8 +30,8 @@ - S8004261: Improve input validation - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames - S8004986, CVE-2013-2383: Better handling of glyph table - - S8004987, CVE-2013-2384: Better handling of glyph table - - S8004994, CVE-2013-1569: Better handling of glyph table + - S8004987, CVE-2013-2384: Improve font layout + - S8004994, CVE-2013-1569: Improve checking of glyph table - S8005432: Update access to JAX-WS - S8005943: (process) Improved Runtime.exec - S8006309: More reliable control panel operation diff -r ed783f8e0c51 -r 82628dc4d2d4 patches/coverage-table.patch --- a/patches/coverage-table.patch Wed Apr 17 09:37:04 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ ---- openjdk/jdk/src/share/native/sun/font/layout/CoverageTables.cpp 2012-05-01 23:18:32.000000000 +0200 -+++ openjdk.orig/jdk/src/share/native/sun/font/layout/CoverageTables.cpp 2012-05-30 13:05:52.000000000 +0200 -@@ -71,6 +71,10 @@ - le_uint16 probe = power; - le_uint16 index = 0; - -+ if (count == 0) { -+ return -1; -+ } -+ - if (SWAPW(glyphArray[extra]) <= ttGlyphID) { - index = extra; - } diff -r ed783f8e0c51 -r 82628dc4d2d4 patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch --- a/patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch Wed Apr 17 09:37:04 2013 +0100 +++ b/patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch Wed Apr 17 13:14:23 2013 +0100 @@ -5,7 +5,7 @@ # Parent 5c734e43475dca2ace97e0ac0dcfbed477c22825 Add contents of jdk6-jaf-b20.zip and jdk6-jaxws2_1_6-2011_06_13.zip -diff --git a/drop_included/jaf_src/LICENSE b/drop_included/jaf_src/LICENSE +diff --git a/drop_included/jaf_src/LICENSE openjdk/jaxws/drop_included/jaf_src/LICENSE new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/LICENSE @@ -357,7 +357,7 @@ + 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. -diff --git a/drop_included/jaf_src/src/META-INF/mailcap.default b/drop_included/jaf_src/src/META-INF/mailcap.default +diff --git a/drop_included/jaf_src/src/META-INF/mailcap.default openjdk/jaxws/drop_included/jaf_src/src/META-INF/mailcap.default new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/META-INF/mailcap.default @@ -369,7 +369,7 @@ +image/jpeg;; x-java-view=com.sun.activation.viewers.ImageViewer +text/*;; x-java-view=com.sun.activation.viewers.TextViewer +text/*;; x-java-edit=com.sun.activation.viewers.TextEditor -diff --git a/drop_included/jaf_src/src/META-INF/mimetypes.default b/drop_included/jaf_src/src/META-INF/mimetypes.default +diff --git a/drop_included/jaf_src/src/META-INF/mimetypes.default openjdk/jaxws/drop_included/jaf_src/src/META-INF/mimetypes.default new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/META-INF/mimetypes.default @@ -398,7 +398,7 @@ +video/mpeg mpeg mpg mpe +video/quicktime qt mov +video/x-msvideo avi -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/LogSupport.java b/drop_included/jaf_src/src/com/sun/activation/registries/LogSupport.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/LogSupport.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/LogSupport.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/LogSupport.java @@ -473,7 +473,7 @@ + return debug || logger.isLoggable(level); + } +} -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapFile.java b/drop_included/jaf_src/src/com/sun/activation/registries/MailcapFile.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapFile.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapFile.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapFile.java @@ -1041,7 +1041,7 @@ + } + */ +} -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapParseException.java b/drop_included/jaf_src/src/com/sun/activation/registries/MailcapParseException.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapParseException.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapParseException.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapParseException.java @@ -1086,7 +1086,7 @@ + super(inInfo); + } +} -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapTokenizer.java b/drop_included/jaf_src/src/com/sun/activation/registries/MailcapTokenizer.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MailcapTokenizer.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapTokenizer.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MailcapTokenizer.java @@ -1412,7 +1412,7 @@ + } + */ +} -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeEntry.java b/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeEntry.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeEntry.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeEntry.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeEntry.java @@ -1467,7 +1467,7 @@ + return "MIMETypeEntry: " + type + ", " + extension; + } +} -diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeFile.java b/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeFile.java +diff --git a/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeFile.java openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeFile.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/com/sun/activation/registries/MimeTypeFile.java @@ -1789,7 +1789,7 @@ + stack.addElement(token); + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/ActivationDataFlavor.java b/drop_included/jaf_src/src/javax/activation/ActivationDataFlavor.java +diff --git a/drop_included/jaf_src/src/javax/activation/ActivationDataFlavor.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/ActivationDataFlavor.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/ActivationDataFlavor.java @@ -2044,7 +2044,7 @@ + return mimeType; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/CommandInfo.java b/drop_included/jaf_src/src/javax/activation/CommandInfo.java +diff --git a/drop_included/jaf_src/src/javax/activation/CommandInfo.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandInfo.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandInfo.java @@ -2187,7 +2187,7 @@ + return new_bean; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/CommandMap.java b/drop_included/jaf_src/src/javax/activation/CommandMap.java +diff --git a/drop_included/jaf_src/src/javax/activation/CommandMap.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandMap.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandMap.java @@ -2412,7 +2412,7 @@ + return null; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/CommandObject.java b/drop_included/jaf_src/src/javax/activation/CommandObject.java +diff --git a/drop_included/jaf_src/src/javax/activation/CommandObject.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandObject.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/CommandObject.java @@ -2471,7 +2471,7 @@ + public void setCommandContext(String verb, DataHandler dh) + throws IOException; +} -diff --git a/drop_included/jaf_src/src/javax/activation/DataContentHandler.java b/drop_included/jaf_src/src/javax/activation/DataContentHandler.java +diff --git a/drop_included/jaf_src/src/javax/activation/DataContentHandler.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataContentHandler.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataContentHandler.java @@ -2577,7 +2577,7 @@ + public void writeTo(Object obj, String mimeType, OutputStream os) + throws IOException; +} -diff --git a/drop_included/jaf_src/src/javax/activation/DataContentHandlerFactory.java b/drop_included/jaf_src/src/javax/activation/DataContentHandlerFactory.java +diff --git a/drop_included/jaf_src/src/javax/activation/DataContentHandlerFactory.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataContentHandlerFactory.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataContentHandlerFactory.java @@ -2630,7 +2630,7 @@ + */ + public DataContentHandler createDataContentHandler(String mimeType); +} -diff --git a/drop_included/jaf_src/src/javax/activation/DataHandler.java b/drop_included/jaf_src/src/javax/activation/DataHandler.java +diff --git a/drop_included/jaf_src/src/javax/activation/DataHandler.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataHandler.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataHandler.java @@ -3529,7 +3529,7 @@ + "no object DCH for MIME type " + this.mimeType); + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/DataSource.java b/drop_included/jaf_src/src/javax/activation/DataSource.java +diff --git a/drop_included/jaf_src/src/javax/activation/DataSource.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataSource.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/DataSource.java @@ -3620,7 +3620,7 @@ + */ + public String getName(); +} -diff --git a/drop_included/jaf_src/src/javax/activation/FileDataSource.java b/drop_included/jaf_src/src/javax/activation/FileDataSource.java +diff --git a/drop_included/jaf_src/src/javax/activation/FileDataSource.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/FileDataSource.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/FileDataSource.java @@ -3783,7 +3783,7 @@ + typeMap = map; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/FileTypeMap.java b/drop_included/jaf_src/src/javax/activation/FileTypeMap.java +diff --git a/drop_included/jaf_src/src/javax/activation/FileTypeMap.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/FileTypeMap.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/FileTypeMap.java @@ -3906,7 +3906,7 @@ + return defaultMap; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/MailcapCommandMap.java b/drop_included/jaf_src/src/javax/activation/MailcapCommandMap.java +diff --git a/drop_included/jaf_src/src/javax/activation/MailcapCommandMap.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MailcapCommandMap.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MailcapCommandMap.java @@ -4612,7 +4612,7 @@ + } + */ +} -diff --git a/drop_included/jaf_src/src/javax/activation/MimeType.java b/drop_included/jaf_src/src/javax/activation/MimeType.java +diff --git a/drop_included/jaf_src/src/javax/activation/MimeType.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeType.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeType.java @@ -4961,7 +4961,7 @@ + } + */ +} -diff --git a/drop_included/jaf_src/src/javax/activation/MimeTypeParameterList.java b/drop_included/jaf_src/src/javax/activation/MimeTypeParameterList.java +diff --git a/drop_included/jaf_src/src/javax/activation/MimeTypeParameterList.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeTypeParameterList.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeTypeParameterList.java @@ -5305,7 +5305,7 @@ + return buffer.toString(); + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/MimeTypeParseException.java b/drop_included/jaf_src/src/javax/activation/MimeTypeParseException.java +diff --git a/drop_included/jaf_src/src/javax/activation/MimeTypeParseException.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeTypeParseException.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimeTypeParseException.java @@ -5360,7 +5360,7 @@ + super(s); + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/MimetypesFileTypeMap.java b/drop_included/jaf_src/src/javax/activation/MimetypesFileTypeMap.java +diff --git a/drop_included/jaf_src/src/javax/activation/MimetypesFileTypeMap.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimetypesFileTypeMap.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/MimetypesFileTypeMap.java @@ -5701,7 +5701,7 @@ + } + */ +} -diff --git a/drop_included/jaf_src/src/javax/activation/SecuritySupport.java b/drop_included/jaf_src/src/javax/activation/SecuritySupport.java +diff --git a/drop_included/jaf_src/src/javax/activation/SecuritySupport.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/SecuritySupport.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/SecuritySupport.java @@ -5837,7 +5837,7 @@ + } + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/URLDataSource.java b/drop_included/jaf_src/src/javax/activation/URLDataSource.java +diff --git a/drop_included/jaf_src/src/javax/activation/URLDataSource.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/URLDataSource.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/URLDataSource.java @@ -5979,7 +5979,7 @@ + return url; + } +} -diff --git a/drop_included/jaf_src/src/javax/activation/UnsupportedDataTypeException.java b/drop_included/jaf_src/src/javax/activation/UnsupportedDataTypeException.java +diff --git a/drop_included/jaf_src/src/javax/activation/UnsupportedDataTypeException.java openjdk/jaxws/drop_included/jaf_src/src/javax/activation/UnsupportedDataTypeException.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaf_src/src/javax/activation/UnsupportedDataTypeException.java @@ -6041,7 +6041,7 @@ + super(s); + } +} -diff --git a/drop_included/jaxws_src/LICENSE b/drop_included/jaxws_src/LICENSE +diff --git a/drop_included/jaxws_src/LICENSE openjdk/jaxws/drop_included/jaxws_src/LICENSE new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/LICENSE @@ -6393,7 +6393,7 @@ + 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. -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/ClassType.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/ClassType.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/ClassType.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/ClassType.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/ClassType.java @@ -6446,7 +6446,7 @@ + public static final ClassType ANNOTATION_TYPE_DECL = new ClassType("@interface"); + public static final ClassType ENUM = new ClassType("enum"); +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/CodeWriter.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/CodeWriter.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/CodeWriter.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/CodeWriter.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/CodeWriter.java @@ -6554,7 +6554,7 @@ + */ + public abstract void close() throws IOException; +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java @@ -6615,7 +6615,7 @@ + */ + W annotate2(Class clazz); +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationArrayMember.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationArrayMember.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationArrayMember.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationArrayMember.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationArrayMember.java @@ -6777,7 +6777,7 @@ + f.nl().o().p('}'); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationStringValue.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationStringValue.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationStringValue.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationStringValue.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationStringValue.java @@ -6831,7 +6831,7 @@ + f.g(value); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java @@ -7126,7 +7126,7 @@ + return memberValues.size()==1 && memberValues.containsKey("value"); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationValue.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationValue.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationValue.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationValue.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationValue.java @@ -7165,7 +7165,7 @@ + */ +public abstract class JAnnotationValue implements JGenerable { +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java @@ -7223,7 +7223,7 @@ + */ + Class getAnnotationType(); +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnonymousClass.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnonymousClass.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnonymousClass.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnonymousClass.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAnonymousClass.java @@ -7276,7 +7276,7 @@ + return base.fullName(); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArray.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArray.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArray.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArray.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArray.java @@ -7368,7 +7368,7 @@ + } + +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayClass.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayClass.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayClass.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayClass.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayClass.java @@ -7495,7 +7495,7 @@ + } + +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayCompRef.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayCompRef.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayCompRef.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayCompRef.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JArrayCompRef.java @@ -7571,7 +7571,7 @@ + return JExpr.assignPlus(this,rhs); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignment.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignment.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignment.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignment.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignment.java @@ -7633,7 +7633,7 @@ + } + +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignmentTarget.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignmentTarget.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignmentTarget.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignmentTarget.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAssignmentTarget.java @@ -7677,7 +7677,7 @@ + JExpression assign(JExpression rhs); + JExpression assignPlus(JExpression rhs); +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAtom.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAtom.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAtom.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAtom.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JAtom.java @@ -7725,7 +7725,7 @@ + f.p(what); + } +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBlock.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBlock.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBlock.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBlock.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBlock.java @@ -8185,7 +8185,7 @@ + } + +} -diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBreak.java b/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBreak.java +diff --git a/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBreak.java openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBreak.java new file mode 100644 --- /dev/null +++ openjdk/jaxws/drop_included/jaxws_src/src/com/sun/codemodel/internal/JBreak.java @@ -8242,7 +8242,7 @@ + f.p("break").p(label.label).p(';').nl(); From jvanek at icedtea.classpath.org Wed Apr 17 05:21:44 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 17 Apr 2013 12:21:44 +0000 Subject: /hg/icedtea-web: Fixed gifar vulnereability with automated testcase Message-ID: changeset e866698141e7 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e866698141e7 author: Jiri Vanek date: Wed Apr 17 14:22:01 2013 +0200 Fixed gifar vulnereability with automated testcase diffstat: ChangeLog | 38 + NEWS | 1 + netx/net/sourceforge/jnlp/Launcher.java | 2 +- netx/net/sourceforge/jnlp/resources/Messages.properties | 1 + netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties | 1 + netx/net/sourceforge/jnlp/runtime/Boot.java | 4 + netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java | 12 +- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 +- netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 22 +- netx/net/sourceforge/jnlp/tools/JarCertVerifier.java | 2 +- netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java | 49 ++ netx/net/sourceforge/jnlp/util/JarFile.java | 153 +++++++ tests/reproducers/custom/GifarCreator/srcs/Makefile | 17 + tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html | 48 ++ tests/reproducers/signed/GifarBase/resources/gifarView_ok.html | 48 ++ tests/reproducers/signed/GifarBase/resources/gifar_applet.jnlp | 65 +++ tests/reproducers/signed/GifarBase/resources/gifar_application.jnlp | 60 ++ tests/reproducers/signed/GifarBase/resources/happyNonAnimated.gif | Bin tests/reproducers/signed/GifarBase/srcs/GifarMain.java | 212 ++++++++++ tests/reproducers/signed/GifarBase/testcases/GifarTestcases.java | 206 +++++++++ 20 files changed, 933 insertions(+), 12 deletions(-) diffs (truncated from 1129 to 500 lines): diff -r 45ebf2dfa902 -r e866698141e7 ChangeLog --- a/ChangeLog Wed Apr 17 09:45:53 2013 +0200 +++ b/ChangeLog Wed Apr 17 14:22:01 2013 +0200 @@ -1,3 +1,41 @@ +2013-04-17 Jiri Vanek + + Fixed gifar vulnereability with automated testcase + * netx/net/sourceforge/jnlp/util/JarFile.java: IcedTea-Web replacement for + java.util.jar.JarFile.java with capability to verify if the jar starts as jar + and not as something else (eg gif) + * netx/net/sourceforge/jnlp/Launcher.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/resources/Messages.properties: added + BXignoreheaders key with description to new -Xignoreheaders switch + * netx/net/sourceforge/jnlp/runtime/Boot.java: added switch Xignoreheaders + to allow to disable the header verification. + * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: + migrated to new JarFile + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: improved + reporting of new JarFile exceptions + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: new field + ignoreHeaders, informing about new JarFile whether to verify or not verify + headers. By default verifying, so have value of false. + * netx/net/sourceforge/jnlp/tools/JarCertVerifier.java: migrated to new JarFile + * netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java: new + not-checked exception to signify that jar is corrupted on headers level. + * tests/reproducers/custom/GifarCreator/srcs/Makefile: makefile to + join gif and jar to create gifar + * tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html: + html with hacked gifar + * tests/reproducers/signed/GifarBase/resources/gifarView_ok.html: + html with valid gifs and jars + * tests/reproducers/signed/GifarBase/resources/gifar_applet.jnlp: + jnlp applet constructed from hacked gifar + * tests/reproducers/signed/GifarBase/resources/gifar_application.jnlp: + jnlp application constructed from hacked gifar + * tests/reproducers/signed/GifarBase/srcs/GifarMain.java: + Main method of reproducer + * tests/reproducers/signed/GifarBase/testcases/GifarTestcases.java: + Testing methods + * tests/reproducers/signed/GifarBase/resources/happyNonAnimated.gif: + binary file, image, gif, used to create hacked gifars + 2013-04-17 Jiri Vanek removed java call to obtain jvm args for plugin diff -r 45ebf2dfa902 -r e866698141e7 NEWS --- a/NEWS Wed Apr 17 09:45:53 2013 +0200 +++ b/NEWS Wed Apr 17 14:22:01 2013 +0200 @@ -18,6 +18,7 @@ * User can select its own JVM via itw-settings and deploy.properties. * Added extended applets security settings and dialogue * Security updates + - CVE-2013-1927, RH884705: fixed gifar vulnerabilit - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings * NetX diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/Launcher.java --- a/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/Launcher.java Wed Apr 17 14:22:01 2013 +0200 @@ -30,7 +30,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.cache.CacheUtil; import net.sourceforge.jnlp.cache.UpdatePolicy; diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Apr 17 14:22:01 2013 +0200 @@ -191,6 +191,7 @@ BOViewer = Shows the trusted certificate viewer. BXnofork = Do not create another JVM. BXclearcache= Clean the JNLP application cache. +BXignoreheaders= Skip jar header verification. BOHelp = Print this message and exit. # Cache diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Wed Apr 17 14:22:01 2013 +0200 @@ -188,6 +188,7 @@ BOViewer= Zobraz\u00ed prohl\u00ed\u017ee\u010d d\u016fv\u011bryhodn\u00fdch certifik\u00e1t\u016f. BXnofork= Zak\u00e1\u017ee vytv\u00e1\u0159en\u00ed jin\u00fdch prost\u0159ed\u00ed JVM. BXclearcache= Vy\u010dist\u00ed vyrovn\u00e1vac\u00ed pam\u011b\u0165 aplikace JNLP. +BXignoreheaders= Nebude prov\u00e1d\u011bt verifikaci hlavi\u010dek soubor\u016f jar. BOHelp= Vyp\u00ed\u0161e zadanou zpr\u00e1vu do konzole a ukon\u010d\u00ed aplikaci. # Cache diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/runtime/Boot.java --- a/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/Boot.java Wed Apr 17 14:22:01 2013 +0200 @@ -102,6 +102,7 @@ + " -strict " + R("BOStrict") + "\n" + " -Xnofork " + R("BXnofork") + "\n" + " -Xclearcache " + R("BXclearcache") + "\n" + + " -Xignoreheaders " + R("BXignoreheaders") + "\n" + " -help " + R("BOHelp") + "\n"; private static final String doubleArgs = "-basedir -jnlp -arg -param -property -update"; @@ -159,6 +160,9 @@ if (null != getOption("-Xtrustall")) { JNLPRuntime.setTrustAll(true); } + if (null != getOption("-Xignoreheaders")) { + JNLPRuntime.setIgnoreHeaders(true); + } JNLPRuntime.setInitialArgments(Arrays.asList(argsIn)); diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java --- a/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java Wed Apr 17 14:22:01 2013 +0200 @@ -49,7 +49,7 @@ import java.security.PrivilegedExceptionAction; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.util.UrlUtils; @@ -81,7 +81,7 @@ } @Override - public JarFile retrieve(URL url) throws IOException { + public java.util.jar.JarFile retrieve(URL url) throws IOException { URL localUrl = mapping.get(url); if (localUrl == null) { @@ -122,8 +122,8 @@ /* * This method is a copy of URLJarFile.retrieve() without the callback check. */ - private JarFile cacheJarFile(URL url) throws IOException { - JarFile result = null; + private java.util.jar.JarFile cacheJarFile(URL url) throws IOException { + java.util.jar.JarFile result = null; final int BUF_SIZE = 2048; @@ -132,9 +132,9 @@ try { result = - AccessController.doPrivileged(new PrivilegedExceptionAction() { + AccessController.doPrivileged(new PrivilegedExceptionAction() { @Override - public JarFile run() throws IOException { + public java.util.jar.JarFile run() throws IOException { OutputStream out = null; File tmpFile = null; try { diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Apr 17 14:22:01 2013 +0200 @@ -60,7 +60,7 @@ import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; import java.util.jar.JarEntry; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import java.util.jar.Manifest; import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; @@ -678,7 +678,7 @@ //to read the cacerts or trusted.certs files. e.printStackTrace(); throw new LaunchException(null, null, R("LSFatal"), - R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo")); + R("LCInit"), R("LFatalVerification"), R("LFatalVerificationInfo") + ": " +e.getMessage()); } //Case when at least one jar has some signing diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Apr 17 14:22:01 2013 +0200 @@ -87,7 +87,7 @@ * @version $Revision: 1.19 $ */ public class JNLPRuntime { - + static { loadResources(); } @@ -142,8 +142,16 @@ /** set to false to indicate another JVM should not be spawned, even if necessary */ private static boolean forksAllowed = true; - /** all security dialogs will be consumed and pretented as beeing verified by user and allowed.*/ + /** all security dialogs will be consumed and pretented as being verified by user and allowed.*/ private static boolean trustAll=false; + /** + * Header is not checked and so eg. gifar exploit is possible + * @see http://en.wikipedia.org/wiki/Gifar for this kind of attack. + * However if jar file is a bit corrupted, then it sometimes can work so + * this switch can disable the header check. + * + */ + private static boolean ignoreHeaders=false; /** contains the arguments passed to the jnlp runtime */ private static List initialArguments; @@ -776,4 +784,14 @@ return trustAll; } + public static boolean isIgnoreHeaders() { + return ignoreHeaders; + } + + public static void setIgnoreHeaders(boolean ignoreHeaders) { + JNLPRuntime.ignoreHeaders = ignoreHeaders; + } + + + } diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/tools/JarCertVerifier.java --- a/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java Wed Apr 17 09:45:53 2013 +0200 +++ b/netx/net/sourceforge/jnlp/tools/JarCertVerifier.java Wed Apr 17 14:22:01 2013 +0200 @@ -41,7 +41,7 @@ import java.util.Map; import java.util.Vector; import java.util.jar.JarEntry; -import java.util.jar.JarFile; +import net.sourceforge.jnlp.util.JarFile; import net.sourceforge.jnlp.JARDesc; import net.sourceforge.jnlp.JNLPFile; diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/InvalidJarHeaderException.java Wed Apr 17 14:22:01 2013 +0200 @@ -0,0 +1,49 @@ +/* +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.util; + +/** + * Thrown from net.sourceforge.jnlp.utilJArFile when verification of headers fails + * + */ +public class InvalidJarHeaderException extends RuntimeException{ + + public InvalidJarHeaderException(String string) { + super(string); + } + +} diff -r 45ebf2dfa902 -r e866698141e7 netx/net/sourceforge/jnlp/util/JarFile.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/JarFile.java Wed Apr 17 14:22:01 2013 +0200 @@ -0,0 +1,153 @@ +/* + 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.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipFile; +import net.sourceforge.jnlp.runtime.JNLPRuntime; + +public class JarFile extends java.util.jar.JarFile { + + public JarFile(String name) throws IOException { + super(name); + verifyZipHeader(new File(name)); + } + + /** + */ + public JarFile(String name, boolean verify) throws IOException { + super(name, verify); + verifyZipHeader(new File(name)); + } + + /** + */ + public JarFile(File file) throws IOException { + super(file); + verifyZipHeader(file); + } + + /** + */ + public JarFile(File file, boolean verify) throws IOException { + super(file, verify); + verifyZipHeader(file); + } + + /* + */ + public JarFile(File file, boolean verify, int mode) throws IOException { + super(file, verify, mode); + verifyZipHeader(file); + } + + + + + /** + * According to specification - + * http://www.pkware.com/documents/casestudies/APPNOTE.TXT or just google + * around zip header all entries in zip-compressed must start with well + * known "PK" which is defined as hexa x50 x4b x03 x04, which in decimal are + * 80 75 3 4. + * + * Note - this is not file-header, it is item-header. + * + * Actually most of compressing formats have some n-bytes header se eg: + * http://www.gzip.org/zlib/rfc-gzip.html#header-trailer for ID1 and ID2 so + * in case that some differently compressed jars will come to play, this is + * the palce where to fix it. + * + */ + private static final byte[] ZIP_LOCAL_FILE_HEADER_SIGNATURE = new byte[]{80, 75, 3, 4}; + + /** + * This method is checking first four bytes of jar-file against + * ZIP_LOCAL_FILE_HEADER_SIGNATURE + * + * Although zip specification allows to skip all corrupted entries, it is + * not safe for jars. If first four bytes of file are not zip + * ZIP_LOCAL_FILE_HEADER_SIGNATURE then exception is thrown + * + * As noted, ZIP_LOCAL_FILE_HEADER_SIGNATURE is not ile-header, but is item-header. + * Possible attack is using the fact that entries without header are considered + * corrupted and so can be ignoered. However, for other they can have some meaning. + * + * So for our purposes we must insists on first record to be valid. + * + * @param file + * @throws IOException, InvalidJarHeaderException + */ + public static void verifyZipHeader(File file) throws IOException { + if (!JNLPRuntime.isIgnoreHeaders()) { + InputStream s = new FileInputStream(file); + try { + byte[] buffer = new byte[ZIP_LOCAL_FILE_HEADER_SIGNATURE.length]; + /* + * for case that new byte[] will accidently initialize same + * sequence as zip header and during the read the buffer will not be filled + */ + for (int i = 0; i < buffer.length; i++) { + buffer[i] = 0; + } + int toRead = ZIP_LOCAL_FILE_HEADER_SIGNATURE.length; + int readSoFar = 0; + int n = 0; + /* + * this is used instead of s.read(buffer) for case of block and + * so returned not-fully-filled dbuffer + */ + while ((n = s.read(buffer, readSoFar, buffer.length - readSoFar)) != -1) { + readSoFar += n; + if (readSoFar == toRead) { + break; + } + } + for (int i = 0; i < buffer.length; i++) { + if (buffer[i] != ZIP_LOCAL_FILE_HEADER_SIGNATURE[i]) { + throw new InvalidJarHeaderException("Jar " + file.getName() + " do not heave valid header. You can skip this check by -Xignoreheaders"); + } + } + } finally { + s.close(); + } + } + } +} diff -r 45ebf2dfa902 -r e866698141e7 tests/reproducers/custom/GifarCreator/srcs/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/custom/GifarCreator/srcs/Makefile Wed Apr 17 14:22:01 2013 +0200 @@ -0,0 +1,17 @@ +DEPLOY_SUBDIR=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR) +GIF=$(DEPLOY_SUBDIR)/happyNonAnimated.gif +JAR=$(DEPLOY_SUBDIR)/GifarBase.jar +RESULT1=$(DEPLOY_SUBDIR)/Gifar.jar +RESULT2=$(DEPLOY_SUBDIR)/Gifar.gif + +#this is dependent on reproducers/signed/GifarBase + +prepare-reproducer: + cat $(GIF) > $(RESULT1) + cat $(JAR) >> $(RESULT1) + cp $(RESULT1) $(RESULT2) + +clean-reproducer: + rm -rf $(RESULT1) + rm -rf $(RESULT2) + diff -r 45ebf2dfa902 -r e866698141e7 tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/GifarBase/resources/gifarView_hacked.html Wed Apr 17 14:22:01 2013 +0200 @@ -0,0 +1,48 @@ + + +

    + +

    +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1-writer2.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,46 @@ + + +

    + +

    +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader1.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,43 @@ + + +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-reader2.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,43 @@ + + +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer1.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,43 @@ + + +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet-writer2.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,43 @@ + + +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer1.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,46 @@ + + +

    + +

    +

    + +

    + + diff -r e866698141e7 -r 369fb7729762 tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/AppletSharedClassLoader/resources/LaunchSharedClassLoaderApplet2-reader1-writer2.html Wed Apr 17 14:38:48 2013 +0200 @@ -0,0 +1,46 @@ + http://icedtea.classpath.org/bugzilla/attachment.cgi?id=860&action=edit Error log generated after the crash When I compile a certain project, the scala compiler always crashes with a SIGSEGV. Since the scala compiler is written in scala and hence runs on the JVM, it is impossible, that a bug in the Scala compiler causes a SIGSEGV, so I thought, it is probably a bug in the JVM. I hope the file attached gives enough information to help you find the bug. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130420/7ea8ff08/attachment.html From bugzilla-daemon at icedtea.classpath.org Sat Apr 20 10:14:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 20 Apr 2013 17:14:03 +0000 Subject: [Bug 1406] New: MInecraft Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1406 Bug ID: 1406 Summary: MInecraft Classification: Unclassified Product: IcedTea Version: unspecified Hardware: all OS: Windows Status: NEW Severity: normal Priority: P3 Component: Licensing Assignee: gnu.andrew at redhat.com Reporter: guihgo at hotmail.com CC: unassigned at icedtea.classpath.org Created attachment 861 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=861&action=edit minecraft -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130420/3082706b/attachment.html From gnu_andrew at member.fsf.org Sun Apr 21 17:36:01 2013 From: gnu_andrew at member.fsf.org (Andii Hughes) Date: Mon, 22 Apr 2013 01:36:01 +0100 Subject: [SECURITY] IcedTea 2.3.9 for OpenJDK 7 Released! Message-ID: <20130422003600.GA15848@carrie.middle-earth.co.uk> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. This release updates our OpenJDK 7 support to include the latest security updates: * S6657673, CVE-2013-1518: Issues with JAXP * S7200507: Refactor Introspector internals * S8000724, CVE-2013-2417: Improve networking serialization * S8001031, CVE-2013-2419: Better font processing * S8001040, CVE-2013-1537: Rework RMI model * S8001322: Refactor deserialization * S8001329, CVE-2013-1557: Augment RMI logging * S8003335: Better handling of Finalizer thread * S8003445: Adjust JAX-WS to focus on API * S8003543, CVE-2013-2415: Improve processing of MTOM attachments * S8004261: Improve input validation * S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames * S8004986, CVE-2013-2383: Better handling of glyph table * S8004987, CVE-2013-2384: Improve font layout * S8004994, CVE-2013-1569: Improve checking of glyph table * S8005432: Update access to JAX-WS * S8005943: (process) Improved Runtime.exec * S8006309: More reliable control panel operation * S8006435, CVE-2013-2424: Improvements in JMX * S8006790: Improve checking for windows * S8006795: Improve font warning messages * S8007406: Improve accessibility of AccessBridge * S8007617, CVE-2013-2420: Better validation of images * S8007667, CVE-2013-2430: Better image reading * S8007918, CVE-2013-2429: Better image writing * S8008140: Better method handle resolution * S8009049, CVE-2013-2436: Better method handle binding * S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap * S8009305, CVE-2013-0401: Improve AWT data transfer * S8009677, CVE-2013-2423: Better setting of setters * S8009699, CVE-2013-2421: Methodhandle lookup * S8009814, CVE-2013-1488: Better driver management * S8009857, CVE-2013-2422: Problem with plugin In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more estoric architectures. If you find an issue with one of these releases, please report it at http://icedtea.classpath.org/bugzilla under the appropriate component. Development discussion takes place on distro-pkg-dev at openjdk.java.net and patches are always welcome. Full details of the releases can be found below. What?s New? ?????? New in release 2.3.9 (2013-04-21): * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP - S7200507: Refactor Introspector internals - S8000724, CVE-2013-2417: Improve networking serialization - S8001031, CVE-2013-2419: Better font processing - S8001040, CVE-2013-1537: Rework RMI model - S8001322: Refactor deserialization - S8001329, CVE-2013-1557: Augment RMI logging - S8003335: Better handling of Finalizer thread - S8003445: Adjust JAX-WS to focus on API - S8003543, CVE-2013-2415: Improve processing of MTOM attachments - S8004261: Improve input validation - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames - S8004986, CVE-2013-2383: Better handling of glyph table - S8004987, CVE-2013-2384: Improve font layout - S8004994, CVE-2013-1569: Improve checking of glyph table - S8005432: Update access to JAX-WS - S8005943: (process) Improved Runtime.exec - S8006309: More reliable control panel operation - S8006435, CVE-2013-2424: Improvements in JMX - S8006790: Improve checking for windows - S8006795: Improve font warning messages - S8007406: Improve accessibility of AccessBridge - S8007617, CVE-2013-2420: Better validation of images - S8007667, CVE-2013-2430: Better image reading - S8007918, CVE-2013-2429: Better image writing - S8008140: Better method handle resolution - S8009049, CVE-2013-2436: Better method handle binding - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap - S8009305, CVE-2013-0401: Improve AWT data transfer - S8009677, CVE-2013-2423: Better setting of setters - S8009699, CVE-2013-2421: Methodhandle lookup - S8009814, CVE-2013-1488: Better driver management - S8009857, CVE-2013-2422: Problem with plugin * Backports - S7130662, RH928500: GTK file dialog crashes with a NPE * Bug fixes - PR1363: Fedora 19 / rawhide FTBFS SIGILL - PR1401: Fix Zero build on 2.3.8 - Fix offset problem in ICU LETableReference. - Change -Werror fix to preserve OpenJDK default. - PR1404: Failure to bootstrap with ecj 4.2 The tarball can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea-2.3.9.tar.gz SHA256 checksums: 7e1fdd4c53c9772337c971b6f6f8058dabd99d7f4c4fcc85c88d836c9005c6da icedtea-2.3.9.tar.gz Each tarball is accompanied by a digital signature (available at the above URL + '.sig'). This is produced using my public key. See details below. The following people helped with these releases: * Martin Buchholz (-Werror fix) * Andrew John Hughes (application of security fixes & backports, PR1401, PR1404) * Roman Kennke (offset fix) * Chris Phillips (PR1363 patch for ARM issue) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea-2.3.9.tar.gz Full build requirements and instructions are in INSTALL: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea-2.3.9/configure [--with-parallel-jobs --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! -- Andii :) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/fc582f81/attachment.bin From andrew at icedtea.classpath.org Sun Apr 21 17:41:05 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 22 Apr 2013 00:41:05 +0000 Subject: /hg/release/icedtea7-2.3: 4 new changesets Message-ID: changeset 95c1acdfeec4 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=95c1acdfeec4 author: Andrew John Hughes date: Sun Apr 21 17:24:52 2013 +0100 Prepare for 2.3.9 release. 2013-04-21 Andrew John Hughes * configure.ac: Bump to 2.3.9 proper. * NEWS: Set release date for 2.3.9. changeset b382dc61dbdd in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=b382dc61dbdd author: Andrew John Hughes date: Sun Apr 21 21:48:09 2013 +0100 Use 'IcedTea' across all versions, not 'IcedTea7' etc. 2013-04-21 Andrew John Hughes * Makefile.am: (ICEDTEA_NAME): Make same across all versions. changeset 8346ccdd67b5 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=8346ccdd67b5 author: Andrew John Hughes date: Mon Apr 22 01:40:08 2013 +0100 Added tag icedtea-2.3.9 for changeset b382dc61dbdd changeset 7ba261065db8 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=7ba261065db8 author: Andrew John Hughes date: Mon Apr 22 01:40:46 2013 +0100 Remove duplicate news item. 2013-04-21 Andrew John Hughes * NEWS: Remove duplicate item. diffstat: .hgtags | 1 + ChangeLog | 14 ++++++++++++++ Makefile.am | 2 +- NEWS | 3 +-- configure.ac | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diffs (70 lines): diff -r dbf0c9f00179 -r 7ba261065db8 .hgtags --- a/.hgtags Fri Apr 19 19:29:06 2013 +0100 +++ b/.hgtags Mon Apr 22 01:40:46 2013 +0100 @@ -45,3 +45,4 @@ 107138d757a75a0b01ff762257e1f754f832e245 icedtea-2.3.6 8e87a16a613cf9f2b6a9496c514fb098eb872f7f icedtea-2.3.7 eeda7cda31dc55c0faa4d2773cfc4c2f27bb6d7a icedtea-2.3.8 +b382dc61dbdde9e404a459b5b71608674e6e3c34 icedtea-2.3.9 diff -r dbf0c9f00179 -r 7ba261065db8 ChangeLog --- a/ChangeLog Fri Apr 19 19:29:06 2013 +0100 +++ b/ChangeLog Mon Apr 22 01:40:46 2013 +0100 @@ -1,3 +1,17 @@ +2013-04-21 Andrew John Hughes + + * NEWS: Remove duplicate item. + +2013-04-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_NAME): Make same across all versions. + +2013-04-21 Andrew John Hughes + + * configure.ac: Bump to 2.3.9 proper. + * NEWS: Set release date for 2.3.9. + 2013-04-18 Andrew John Hughes PR1404: Failure to bootstrap with ecj 4.2 diff -r dbf0c9f00179 -r 7ba261065db8 Makefile.am --- a/Makefile.am Fri Apr 19 19:29:06 2013 +0100 +++ b/Makefile.am Mon Apr 22 01:40:46 2013 +0100 @@ -431,7 +431,7 @@ ICEDTEA_SHARK_BUILD = true endif -ICEDTEA_NAME = IcedTea7 +ICEDTEA_NAME = IcedTea if HAS_ICEDTEA_REVISION ICEDTEA_REV = +${ICEDTEA_REVISION} endif diff -r dbf0c9f00179 -r 7ba261065db8 NEWS --- a/NEWS Fri Apr 19 19:29:06 2013 +0100 +++ b/NEWS Mon Apr 22 01:40:46 2013 +0100 @@ -10,7 +10,7 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 2.3.9 (2013-04-XX): +New in release 2.3.9 (2013-04-21): * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP @@ -53,7 +53,6 @@ - PR1401: Fix Zero build on 2.3.8 - Fix offset problem in ICU LETableReference. - Change -Werror fix to preserve OpenJDK default. - - PR1303: Correct #ifdef to #if - PR1404: Failure to bootstrap with ecj 4.2 New in release 2.3.8 (2013-03-11): diff -r dbf0c9f00179 -r 7ba261065db8 configure.ac --- a/configure.ac Fri Apr 19 19:29:06 2013 +0100 +++ b/configure.ac Mon Apr 22 01:40:46 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.3.9pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.3.9], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From ptisnovs at icedtea.classpath.org Mon Apr 22 01:14:12 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 22 Apr 2013 08:14:12 +0000 Subject: /hg/gfx-test: Added two helper methods used by BitBlt-based test... Message-ID: changeset ac608f047fd8 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=ac608f047fd8 author: Pavel Tisnovsky date: Mon Apr 22 10:17:28 2013 +0200 Added two helper methods used by BitBlt-based tests into CommonBitmapOperations and ProceduralTextureFactory. diffstat: ChangeLog | 6 + src/org/gfxtest/framework/CommonBitmapOperations.java | 55 +++++++++++++++++ src/org/gfxtest/framework/ProceduralTextureFactory.java | 32 +++++++++ 3 files changed, 93 insertions(+), 0 deletions(-) diffs (116 lines): diff -r 5501ae1df2f1 -r ac608f047fd8 ChangeLog --- a/ChangeLog Fri Apr 19 11:26:49 2013 +0200 +++ b/ChangeLog Mon Apr 22 10:17:28 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-22 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + * src/org/gfxtest/framework/ProceduralTextureFactory.java: + Added two helper methods used by BitBlt-based tests. + 2013-04-19 Pavel Tisnovsky * src/org/gfxtest/framework/ProceduralTextureFactory.java: diff -r 5501ae1df2f1 -r ac608f047fd8 src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Fri Apr 19 11:26:49 2013 +0200 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Mon Apr 22 10:17:28 2013 +0200 @@ -2049,4 +2049,59 @@ return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; } + /** + * Create new buffered image containing RGB patter #1 and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithRGBTexture1Image(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ProceduralTextureFactory.createRGBTexture1(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing RGB patter #1 and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithRGBTexture1Image(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ProceduralTextureFactory.createRGBTexture1(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return BitBltOperations.performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + } diff -r 5501ae1df2f1 -r ac608f047fd8 src/org/gfxtest/framework/ProceduralTextureFactory.java --- a/src/org/gfxtest/framework/ProceduralTextureFactory.java Fri Apr 19 11:26:49 2013 +0200 +++ b/src/org/gfxtest/framework/ProceduralTextureFactory.java Mon Apr 22 10:17:28 2013 +0200 @@ -1015,4 +1015,36 @@ return new TexturePaint(RGBTexture6Factory(image.getWidth(), image.getHeight()), anchor); } + /** + * Create new RGB pattern using given image type. + * + * @param width + * width of a texture + * @param height + * height of a texture + * @param imageType + * required image type + * @return buffered image containing texture + */ + public static BufferedImage createRGBTexture1(int width, int height, int imageType) + { + // create new texture instead + RGBTexture1 = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + int red = colorComponentFromXOrYCoordinate(width, x); + int green = colorComponentFromXOrYCoordinate(height, y); + int blue = 0; + int color = makeRGBColor(red, green, blue); + RGBTexture1.setRGB(x, y, color); + } + } + return RGBTexture1; + } + } From ptisnovs at icedtea.classpath.org Mon Apr 22 01:21:29 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 22 Apr 2013 08:21:29 +0000 Subject: /hg/rhino-tests: Updated four tests in ScriptEngineClassTest for... Message-ID: changeset 0cc424132a4d in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=0cc424132a4d author: Pavel Tisnovsky date: Mon Apr 22 10:24:46 2013 +0200 Updated four tests in ScriptEngineClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 +++ src/org/RhinoTests/ScriptEngineClassTest.java | 56 +++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 4 deletions(-) diffs (107 lines): diff -r 55e3f28c9808 -r 0cc424132a4d ChangeLog --- a/ChangeLog Fri Apr 19 10:47:17 2013 +0200 +++ b/ChangeLog Mon Apr 22 10:24:46 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-22 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineClassTest.java: + Updated four tests in ScriptEngineClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-19 Pavel Tisnovsky * src/org/RhinoTests/ScriptContextClassTest.java: diff -r 55e3f28c9808 -r 0cc424132a4d src/org/RhinoTests/ScriptEngineClassTest.java --- a/src/org/RhinoTests/ScriptEngineClassTest.java Fri Apr 19 10:47:17 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineClassTest.java Mon Apr 22 10:24:46 2013 +0200 @@ -288,10 +288,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.scriptEngineClass.getConstructors(); @@ -310,10 +321,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.scriptEngineClass.getDeclaredConstructors(); @@ -332,7 +354,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -362,7 +397,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From jvanek at redhat.com Mon Apr 22 02:17:58 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 22 Apr 2013 11:17:58 +0200 Subject: [rfc][icedtea-web] PluginAppletViewer unit tests with test extensions for mocking plugin input&output pipes In-Reply-To: <51718D90.4090308@redhat.com> References: <513E4ACC.8090304@redhat.com> <515AE120.7000802@redhat.com> <51718D90.4090308@redhat.com> Message-ID: <51750046.9000604@redhat.com> On 04/19/2013 08:31 PM, Adam Domurad wrote: > Hopefully more tasteful this time around :-) Ok. Walk through and I think it can go in. Two nits: 1)Maybe some test to new test-extension classes would be worthy:( 2) checking the stared Test utilities methods.. When seeing them separated ... well can be as it is, but (although I previously said it in reverse way) maybe they are rally woorthy to be in separate file in test extensions. But as you are confirming my previous suspicions then it is probably ok and do your best. J. > > On 04/02/2013 09:46 AM, Jiri Vanek wrote: >> On 03/11/2013 10:21 PM, Adam Domurad wrote: >>> This is an attempt to enable unit testing of hard-to-test parts of icedtea-web. >> >> I'm not big fan of mocking so please do not listen to me 100% >> But maybe instead of mocking, this patch can be considered as plugin pipes tests:) > > I see it like this: It tests completely the Java-side of responsibilities, only the C++ side is > mocked. In fact as far as Java side is concerned these tests are fairly complete. > >> >>> It introduces a new class 'PluginPipeMock' that allows the requests coming from the plugin to be >>> read one-by-one, and the ability to send mocked replies. >> >> Can't be also the replies be partially from IcedTeaPlugin.so? Cant you connect through JNI? >> //maybe it will not be useful at all... > > Technically this would just be pushing the mocking further (ie, we'd need a Javascript engine > accessible from C++ side to do anything meaningful, or completely mock one). While a worthy task, > this is out of the scope of this patch. > >> >> >>> This is possible thanks to that fact that PluginStreamHandler takes arbitrary and >>> InputStream&OutputStream. >>> >>> Attached are unit tests for PluginAppletViewer.eval, PluginAppletViewer.call, >>> PluginAppletViewer.toString and PluginAppletViewer.JavascriptFinalize. >>> While the javascript-related functionality is mocked, the responsibilities from the Java-side of >>> things are tested. >>> >>> It may be worth looking into using iostream's on the C++ side and mocking them similarly (for the >>> unfamiliar, they are also classes that can be inherited from, so a similar approach can be taken). >>> Even better would be to provide the C++ side with some NPAPI-enabled javascript engine to interface >>> with so we can fully test the javascript stuff with unit tests. >>> >>> ChangeLog: >>> 2013-XX-XX Adam Domurad >>> >>> * Makefile.am >>> (stamps/test-extensions-compile.stamp): Make plugin classes available >>> to test extensions >>> * tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java: >>> New, helper for doing asynchronous calls with a given timeout. Returns >>> an exit code. >>> * tests/test-extensions/sun/applet/PluginPipeMessages.java: New, helper >>> for verifying plugin messages and getting the reference number. >>> * tests/netx/unit/sun/applet/PluginAppletViewerTest.java: New, uses >>> PluginPipeMock to test the javascript requests to the plygin. >>> * tests/test-extensions/sun/applet/mock/PluginPipeMock.java: New, helper >>> for getting the plugin requests and mocking the replies. >> >> The whole concept is quite complicated.... >> From need of time-out as separate class across s mocking of input/output messages... >> Maybe some object which will generate the strings from setted values? >> I'm aware of PluginPipeMessages, but how generic it is? Can it be more simple? More "user guiding" ? > > Not as generic as I thought it was on further thought. Included in the main test. > >> >>> >>> test-liveconnect-messages.patch >> >> >> There are sometimes unused imports, please fix. >>> >>> >>> diff --git a/Makefile.am b/Makefile.am >>> --- a/Makefile.am >>> +++ b/Makefile.am >>> @@ -758,7 +758,7 @@ stamps/test-extensions-compile.stamp: st >>> ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK); >>> $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ >>> -d $(TEST_EXTENSIONS_DIR) \ >>> - -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ >>> + -classpath >>> $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar \ >>> @test-extensions-source-files.txt && \ >>> mkdir -p stamps && \ >>> touch $@ >> >> this can go in anyway. >> >>> diff --git a/tests/netx/unit/sun/applet/PluginAppletViewerTest.java >>> b/tests/netx/unit/sun/applet/PluginAppletViewerTest.java >>> new file mode 100644 >>> --- /dev/null >>> +++ b/tests/netx/unit/sun/applet/PluginAppletViewerTest.java >>> @@ -0,0 +1,155 @@ >>> +package sun.applet; >>> + >>> +import static org.junit.Assert.assertEquals; >>> +import static org.junit.Assert.assertTrue; >>> +import net.sourceforge.jnlp.AsyncCallWithTimeout; >>> +import net.sourceforge.jnlp.AsyncCallWithTimeout.ExitStatus; >>> + >>> +import org.junit.Test; >>> + >>> +import sun.applet.mock.PluginPipeMock; >>> + >>> +public class PluginAppletViewerTest { >>> + >>> + static private PluginPipeMock installPipeMock() throws Exception { >>> + AppletSecurityContextManager.addContext(0, >>> + new PluginAppletSecurityContext(0, false /* no security */)); >>> + >>> + PluginPipeMock pipeMock = new PluginPipeMock(); >>> + >>> + // TODO: Ensure the thread this creates is stopped >> >> quite nasty todo > > But in the end not so bad :-) > Found a trick to do it: Put initialization in a specific thread group & all threads will be > automatically part of this or child thread group. > We can then stop this thread group at the end. > Set setup portion of test. > >> >>> + PluginStreamHandler streamHandler = new PluginStreamHandler( >>> + pipeMock.getInputStream(), pipeMock.getOutputStream()); >>> + PluginAppletViewer.setStreamhandler(streamHandler); >>> + PluginAppletViewer >>> + .setPluginCallRequestFactory(new PluginCallRequestFactory()); >>> + >>> + streamHandler.startProcessing(); >>> + >>> + return pipeMock; >>> + } >>> + >>> + /* >>> + * Helpers for manipulating the object mapping using to refer to objects in >>> + * the plugin >>> + */ >>> + private static Object getStoredObject(int id) { >>> + return PluginObjectStore.getInstance().getObject(id); >>> + } >> >> never used, why? Looks quite good test to get the stored object. > > It was used in PipeMessages, but duplicated. It is used now (because PipeMessages is no more). > >> >>> + >>> + private static int storeObject(Object obj) { >>> + PluginObjectStore.getInstance().reference(obj); >>> + return PluginObjectStore.getInstance().getIdentifier(obj); >>> + } >>> + >>> + @Test >>> + public void testJavascriptCall() throws Exception { >>> + final PluginPipeMock pipeMock = installPipeMock(); >>> + >>> + /* JS call parameters */ >>> + final int jsObjectID = 0; >> >> Always 0, can't it be hidden? > > This object ID is an arbitrary choice and thus I named it for clarity. I would make it a static > variable but I'm afraid it will seem like a 'magic value'. > >> >>> + final String callName = "testfunction"; >>> + final Object[] arguments = { "testargument", 1 }; // Arbitrary objects >>> + >>> + /* JS call result */ >>> + final Object[] returnValue = { null }; >>> + >>> + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { >>> + public void run() { >>> + returnValue[0] = PluginAppletViewer.call(jsObjectID, callName, >>> + arguments); >>> + } >>> + }); >>> + >>> + String message = pipeMock.getNextRequest(); >>> + >>> + int reference = PluginPipeMessages.parseAndCheckJSCall(message, >>> + jsObjectID, callName, arguments); >>> + >>> + Object expectedReturn = new Object(); >>> + pipeMock.sendResponse("context 0 reference " + reference >>> + + " JavaScriptCall " + storeObject(expectedReturn)); >>> + >> >> So much calls :( > > I have tried somewhat to make them more managable, to the extent that it was possible. > >> >>> + /* Check if we returned correctly (and have the right value) */ >>> + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); >>> + assertEquals(expectedReturn, returnValue[0]); >>> + } >>> + >>> + @Test >>> + public void testJavascriptEval() throws Exception { >>> + final PluginPipeMock pipeMock = installPipeMock(); >>> + >>> + /* JS eval parameters */ >>> + final int jsObjectID = 0; >>> + final String callName = "testfunction"; >>> + >>> + /* JS eval result */ >>> + final Object[] returnValue = { null }; >>> + >>> + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { >>> + public void run() { >>> + returnValue[0] = PluginAppletViewer.eval(jsObjectID, callName); >>> + } >>> + }); >>> + >>> + String message = pipeMock.getNextRequest(); >>> + >>> + int reference = PluginPipeMessages.parseAndCheckJSEval(message, >>> + jsObjectID, callName); >>> + >>> + Object expectedReturn = new Object(); >>> + pipeMock.sendResponse("context 0 reference " + reference >>> + + " JavaScriptEval " + storeObject(expectedReturn)); >>> + >>> + /* Check if we returned correctly (and have the right value) */ >>> + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); >>> + assertEquals(expectedReturn, returnValue[0]); >>> + } >>> + >>> + @Test >>> + public void testJavascriptFinalize() throws Exception { >>> + final PluginPipeMock pipeMock = installPipeMock(); >>> + >>> + final int jsObjectID = 0; >>> + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { >>> + public void run() { >>> + PluginAppletViewer.JavaScriptFinalize(jsObjectID); >>> + } >>> + }); >>> + >>> + String message = pipeMock.getNextRequest(); >>> + >>> + int reference = PluginPipeMessages.parseAndCheckJSFinalize(message, >>> + jsObjectID); >>> + >>> + pipeMock.sendResponse("context 0 reference " + reference >>> + + " JavaScriptFinalize "); >>> + >>> + /* Check if we returned correctly (and have the right value) */ >>> + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); >>> + } >>> + >>> + @Test >>> + public void testJavascriptToString() throws Exception { >>> + final PluginPipeMock pipeMock = installPipeMock(); >>> + >>> + final int jsObjectID = 0; >>> + AsyncCallWithTimeout call = new AsyncCallWithTimeout(new Runnable() { >>> + public void run() { >>> + PluginAppletViewer.javascriptToString(jsObjectID); >>> + } >>> + }); >>> + >>> + String message = pipeMock.getNextRequest(); >>> + >>> + int reference = PluginPipeMessages.parseAndCheckJSToString(message, >>> + jsObjectID); >>> + >>> + String expectedReturn = "testreturn"; >>> + pipeMock.sendResponse("context 0 reference " + reference >>> + + " JavaScriptToString " + storeObject(expectedReturn)); >>> + >>> + /* Check if we returned correctly (and have the right value) */ >>> + assertEquals(ExitStatus.FINISHED_CORRECTLY, call.joinAndGetExitStatus()); >>> + } >>> +} >>> \ No newline at end of file >> >> Well the best on this patch, is that plugin applet viewr got some coverage by unittests :) >> And also it is reason why I do not want to let this idea die. > > When was this great patch in danger of dying ? :-)) > >> >>> diff --git a/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java >>> b/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java >>> new file mode 100644 >>> --- /dev/null >>> +++ b/tests/test-extensions/net/sourceforge/jnlp/AsyncCallWithTimeout.java >> >> I don't like this class to much :(( >> But I agree that this code will be quite repeated... We should try to find soemthing better. (not >> more generic in this case :) ) > > I came up with something more tasteful, I think. Actually, it ended up being more generic, but that > was a natural result of cleaning up the API. > >> >>> @@ -0,0 +1,75 @@ >>> +package net.sourceforge.jnlp; >>> + >>> +/** >>> + * Creates an async call with a certain timeout. It takes a runnable and allows >>> + * joining & querying the exit status. >>> + * >>> + * It starts immediately after creation. >>> + */ >>> +public class AsyncCallWithTimeout { >>> + public enum ExitStatus { >>> + FINISHED_CORRECTLY, THREW_EXCEPTION, TIMED_OUT >>> + } >> >> balh :) Enum for testing the result? I don't like it :( > > Good point, gone. > >> >> >>> + >>> + private Thread handler; >>> + private Runnable task; >>> + private long timeout; >>> + private ExitStatus exitStatus; >>> + >>> + public AsyncCallWithTimeout(Runnable task) { >>> + this(task, 1000); // Default timeout is 1 second >>> + } >>> + >>> + public AsyncCallWithTimeout(Runnable task, long timeout) { >>> + this.task = task; >>> + this.timeout = timeout; >>> + this.handler = new HandlerThread(); >>> + this.handler.start(); >>> + } >> >> Thread should not be statrted in constructor. Just thinking about delegating the method start. But >> it can make the things even more messy and hard to understand. > > Agreed. Helper static method is good compromise, see startWithTimeOut in update. > >>> + >>> + public ExitStatus joinAndGetExitStatus() throws InterruptedException { >>> + handler.join(); >>> + return exitStatus; >>> + } >>> + >>> + private class HandlerThread extends Thread { >>> + @Override >>> + public void run() { >>> + // We deduce that we threw an exception if we did not >>> + // time-out nor complete correctly. >>> + exitStatus = ExitStatus.THREW_EXCEPTION; >>> + >>> + Thread thread = new Thread() { >>> + @Override >>> + public void run() { >>> + try { >>> + task.run(); >>> + exitStatus = ExitStatus.FINISHED_CORRECTLY; >>> + } catch (Exception e) { >>> + exitStatus = ExitStatus.THREW_EXCEPTION; >>> + e.printStackTrace(); >> >> I would rather see this rethrown out. (Tofind way how to rethrow this is even better then store it) > > Very good point, and easily done. > >> >>> + } >>> + handler.interrupt(); // Finish early >>> + } >>> + }; >>> + >>> + thread.start(); >>> + >>> + try { >>> + Thread.sleep(timeout); >>> + } catch (InterruptedException e) { >>> + // Finish early >>> + return; >> >> Some special ExitStatus here? > > Exit statuses gone > >> >>> + } >>> + >>> + if (thread.isAlive()) { >>> + exitStatus = ExitStatus.TIMED_OUT; >> >> Maybe throw an exception? > > Good idea, done. > >> >>> + } >>> + >>> + // Make sure the thread is finished >>> + while (thread.isAlive()) { >>> + thread.interrupt(); >> >> argh.. but sure:( > > I don't think it is too bad. > >>> + } >>> + } >>> + } >>> +} > >>> [..snip..] >>> + * the reference number >>> + */ >>> + public static int parseAndCheckJSToString(String message, int contextObjectID) { >>> + int expectedLength = 6; >>> + return parseAndCheckJSMessage(message, expectedLength, "ToString", contextObjectID); >>> + } >> >> Those methods are strongly single-purpose so I would expect them in Tets where are used. Are they >> about to be reused? . But at least serves as examples of usage of this class. > > Originally I thought they might be reused, but I can't really think of any other classes that would > use them actually. Merged into test. > >> >>> +} >>> diff --git a/tests/test-extensions/sun/applet/mock/PluginPipeMock.java >>> b/tests/test-extensions/sun/applet/mock/PluginPipeMock.java >>> new file mode 100644 >>> --- /dev/null >>> +++ b/tests/test-extensions/sun/applet/mock/PluginPipeMock.java >>> @@ -0,0 +1,120 @@ >>> +package sun.applet.mock; >>> + >>> +import java.io.IOException; >>> +import java.io.InputStream; >>> +import java.io.OutputStream; >>> +import java.io.StringReader; >>> +import java.util.ArrayDeque; >>> +import java.util.Deque; >>> +import java.util.List; >>> + >>> +/** >>> + * Helper for getting an input & output stream for use with PluginStreamHandler. >>> + * Provides a convenient way of reading the Java requests and sending mocked plugin responses. >>> + * >>> + * The handling of these requests should be done on a different thread from the tested method, >>> + * as icedtea-web will block waiting for a reply after sending a request. >>> + */ >>> +public class PluginPipeMock { >>> + private PluginInputPipeMock inputStream = new PluginInputPipeMock(); >>> + private PluginOutputPipeMock outputStream = new PluginOutputPipeMock(); >>> + >>> + public PluginPipeMock() { >>> + } >>> + >>> + public InputStream getInputStream() { >>> + return inputStream; >>> + } >>> + >>> + public OutputStream getOutputStream() { >>> + return outputStream; >>> + } >>> + >>> + public String getNextRequest() { >>> + return outputStream.getNextRequest(); >>> + } >>> + >>> + public void sendResponse(String response) { >>> + inputStream.sendReponse(response); >>> + } >>> + >> >> >> Do we really need to override so ..complexly both basic streams? >> Cant be better - more readable - solution found? > > I tried. I'm not sure how much better it is, but I tried to make it more clear in its intent & usage > of multi-threaded queues. Suggestions welcome of course! > >>> + >>> + /* Blocks until we get a line of output. */ >>> + String getNextRequest() { >>> + while (true) { >>> + synchronized (this) { >>> + String line = lines.pollFirst(); >>> + if (line != null) { >>> + return line; >>> + } >>> + } >>> + } >>> + } >>> + } >>> +} >>> >> >> >> Don't take my criticism to hard, this is great stuff and Even if it will not be changed the >> benefit of having PluginAppletViewer unittested is *excelent*. But really whole solution need >> huge documentation or little bit better api. As I see above, I'm not sure if I will be able to >> write simple test with understanding of what I'm doing without deep digging. > > What sort of documentation would you like to see ? > You do need understand the specific messages ITW sends back&forth to test it, but once you do I > don't think it is *too* difficult. > >> >> Or maybe I have deadlocked myself... Looking forward for next round! >> //me not as much deep insde as should be >> >> J. > //me admittedly fond of this patch 8^) > > Happy hacking, > -Adam From jvanek at redhat.com Mon Apr 22 02:39:15 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 22 Apr 2013 11:39:15 +0200 Subject: [rfc][icedtea-web] get rid of commit id in splashscreen In-Reply-To: <51712C0C.2060100@redhat.com> References: <51712C0C.2060100@redhat.com> Message-ID: <51750543.6000309@redhat.com> ping On 04/19/2013 01:35 PM, Jiri Vanek wrote: > hI! > > Splash screen is using version+commit id as "version". It is not nice. This is striping the commit > id from most visible case. But kept for bug reporting and soon... Maybe improvement would be to strip it only when it is released version - + static String stripCommitFromVersion(String version) { + if (version.contains("pre+")) { + return version; + } tehn rest as is in original patch > > J. > > stripCommitFromVersion.patch > > > diff -r fbb6b3605538 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java > --- a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Thu Apr 04 11:21:04 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Fri Apr 19 13:24:17 2013 +0200 > @@ -371,6 +371,14 @@ > return tt; > } > > + static String stripCommitFromVersion(String version) { > + int i = version.indexOf("+"); > + if (i < 0) { > + return version; > + } > + return version.substring(0, version.indexOf("+")); > + } > + > private final class MovingTextRunner extends Observable implements Runnable { > > private static final int MAX_ANIMATION_VALUE = 10000; > @@ -499,11 +507,12 @@ > g2d.setColor(plainTextColor); > FontMetrics fm = g2d.getFontMetrics(); > if (version != null) { > - int y = master.getSplashWidth() - fm.stringWidth(version + " "); > + String niceVersion=stripCommitFromVersion(version); > + int y = master.getSplashWidth() - fm.stringWidth(niceVersion + " "); > if (y < 0) { > y = 0; > } > - g2d.drawString(version, y, fm.getHeight()); > + g2d.drawString(niceVersion, y, fm.getHeight()); > } > return fm; > } > diff -r fbb6b3605538 tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java > --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Thu Apr 04 11:21:04 2013 +0200 > +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Fri Apr 19 13:24:17 2013 +0200 > @@ -105,4 +105,14 @@ > > > } > + > + @Test > + public void stripCommitFromVersion() { > + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4")); > + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2")); > + Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre")); > + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+657tgkhyu4iy5")); > + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2+887tgjh07tftvhjj")); > + Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre+0977tyugg")); > + } > } > From jfabriko at redhat.com Mon Apr 22 03:29:09 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Mon, 22 Apr 2013 12:29:09 +0200 Subject: [rfc][icedtea-web] Rewrite of MethodOverloadResolver In-Reply-To: <517111AF.2070602@redhat.com> References: <50CB8F6E.8060207@redhat.com> <50EDCD84.1030104@redhat.com> <50F55DA9.2020608@redhat.com> <50F58054.3030905@redhat.com> <517111AF.2070602@redhat.com> Message-ID: <1366626549.1765.8.camel@jana-2-174.nrt.redhat.com> Hi Adam and Jiri, I am sorry if this patch was delayed by my forgetfulness. I ran the liveconnect interactive tests on icedtea-web with the patch and without the patch - there are three tests that improved in Firefox by applying the patch: JS->J type cast Boolean to java Object - "error" to "passed" J->JS get boolean - improvement from "error" to "passed" J->JS get 2d array - improvement from "error" to "passed" It is a good change and should be pushed, cheers, Jana On Fri, 2013-04-19 at 11:43 +0200, Jiri Vanek wrote: > On 01/15/2013 05:14 PM, Adam Domurad wrote: > > On 01/15/2013 08:46 AM, Jiri Vanek wrote: > >> On 01/09/2013 09:05 PM, Adam Domurad wrote: > >>> On 12/14/2012 03:43 PM, Adam Domurad wrote: > >>>> Thought I'd do a simple patch to turn the test code embedded in MethodOverloadResolver into a a > >>>> proper unit test ... unfortunately, my small look into this class lead me to find many subtle bugs > >>>> -- and coincidentally decide to do it properly. Lots of corner cases covered, and it could > >>>> probably use unit tests even still, but its a major improvement and I'm a bit tired of looking at > >>>> it so I'm posting it. > >>>> > >>>> Some broken things I uncovered included improper overloading order, method/argument situations > >>>> that would error-out if they ever occurred (but were valid), and the fact that the JSObject used > >>>> throughout the class was actually a dummy value used at the bottom of the class. The code was also > >>>> made a lot cleaner in the process, in the interest of 'doing it right' while fixing it. > >>>> ChangeLog: > >>>> 2012-12-14 Adam Domurad > >>>> > >>>> Rewrite of MethodOverloadResolver with detailed unittests. > >>>> * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: > >>>> Rewritten to reduce duplicated code, fix very subtle bugs in > >>>> never-tested codepaths, obey spec properly. Introduced new helper types > >>>> where Object[] arrays with special-meaning positions were passed > >>>> around. > >>>> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: > >>>> Updated to work with newly introduced types / refactored overload > >>>> resolver. > >>>> * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: In-depth > >>>> unit tests of hairy details of method overloading in JS<->Java. > >>>> > >>>> > >>> Ping? > >>> -Adam > >> > >> Although I really like this patch as it is making MethodOverloadResolver much more readable and better, there is no significant *visible* improvement (according to Jana's tests). Also I was unable to review it properly - as it was de facto replacement. > >> > >> Unless you+jana will find some improvement in (at least) liveconect test or similar, then I must revoke this patch. > >> > >> If no "proof" will be found by you and jana, then I would like to get this into head by small (reviewable) steps accompanied by unit/reproducer tests. > >> > >> Sorry for troubles > >> J. > > > > Just to be clear - I believe many fixed cases are visible in the unit tests. However these are difficult to determine because they were written against the new MethodOverloadResolver. Especially like I pointed out, JSObject was resolving to the completely wrong class. There were certain cases where exceptions would be thrown merely if a certain overload was present. If this is the issue, we can get more of these cases into the reproducers, but I do think there were a number of them. I'll work with Jana on this one. > > > > -Adam > This get lost athe end? From gnu.andrew at redhat.com Mon Apr 22 04:38:40 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 22 Apr 2013 07:38:40 -0400 (EDT) Subject: Use of -Werror in langtools/make and ${warnings.fatal} In-Reply-To: <432832142.1855192.1366202957075.JavaMail.root@redhat.com> References: <432832142.1855192.1366202957075.JavaMail.root@redhat.com> Message-ID: <35311676.453835.1366630720870.JavaMail.root@redhat.com> ----- Original Message ----- > > > ----- Original Message ----- > > ant can no longer be invoked directly (i.e. not via makefile) in > > langtools/make because ${warnings.fatal} is undefined. > > > > cd langtools/make > > ant -Djavac.warnings.fatal= -Dboot.java.home=$jdk6 -Dtarget.java.home=$jdk7 > > build > > ... > > [javac] Compiling 295 source files to > > /usr/local/google/home/martinrb/ws/icedtea7-forest/langtools/build/bootstrap/classes > > [javac] javac: invalid flag: ${warnings.fatal} > > > > Caused by this icedtea-only patch: > > > > # HG changeset patch > > # User andrew > > # Date 1345649970 -3600 > > # Node ID 26f5c80eb792e8536e15c82670dc38a140bb1ec3 > > # Parent b19919b8e86d7f17317d7cf6ca440ee4d3d4e14d > > PR1095: Allow -Werror to be turned off. > > > > diff --git a/make/Makefile b/make/Makefile > > --- a/make/Makefile > > +++ b/make/Makefile > > @@ -111,6 +111,12 @@ > > ANT_OPTIONS += -Ddebug.classfiles=true > > endif > > > > +ifeq ($(JAVAC_WARNINGS_FATAL), true) > > + ANT_OPTIONS += -Dwarnings.fatal=-Werror > > +else > > + ANT_OPTIONS += -Dwarnings.fatal= > > +endif > > + > > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > > # and the somewhat misnamed CLASS_VERSION (-target NN) > > ifdef TARGET_CLASS_VERSION > > diff --git a/make/build.properties b/make/build.properties > > --- a/make/build.properties > > +++ b/make/build.properties > > @@ -68,7 +68,7 @@ > > # set the following to -version to verify the versions of javac being used > > javac.version.opt = > > # in time, there should be no exceptions to -Xlint:all > > -javac.lint.opts = -Xlint:all,-deprecation -Werror > > +javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > > > > # options for the task for javac > > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > > > > > Here's a possible fix, that preserves the openjdk default of -Werror, > > renames warnings.fatal to javac.warnings.fatal, and allows escape via > > JAVAC_WARNINGS_FATAL=false > > > > > > diff --git a/make/Makefile b/make/Makefile > > --- a/make/Makefile > > +++ b/make/Makefile > > @@ -111,10 +111,8 @@ > > ANT_OPTIONS += -Ddebug.classfiles=true > > endif > > > > -ifeq ($(JAVAC_WARNINGS_FATAL), true) > > - ANT_OPTIONS += -Dwarnings.fatal=-Werror > > -else > > - ANT_OPTIONS += -Dwarnings.fatal= > > +ifeq ($(JAVAC_WARNINGS_FATAL), false) > > + ANT_OPTIONS += -Djavac.warnings.fatal= > > endif > > > > # Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) > > diff --git a/make/build.properties b/make/build.properties > > --- a/make/build.properties > > +++ b/make/build.properties > > @@ -68,7 +68,8 @@ > > # set the following to -version to verify the versions of javac being used > > javac.version.opt = > > # in time, there should be no exceptions to -Xlint:all > > -javac.lint.opts = -Xlint:all,-deprecation ${warnings.fatal} > > +javac.warnings.fatal = -Werror > > +javac.lint.opts = -Xlint:all,-deprecation ${javac.warnings.fatal} > > > > # options for the task for javac > > #javadoc.jls3.url=http://java.sun.com/docs/books/jls/ > > > > Finally done: > > http://icedtea.classpath.org/hg/icedtea7-forest/langtools/rev/24ac4090a6e4 > http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/langtools/rev/fd956199cb82 > http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/langtools/rev/1b9aeaa2344b > > 2.3.9 should be out later today. > http://blog.fuseyism.com/index.php/2013/04/22/security-icedtea-2-3-9-for-openjdk-7-released/ :-) > Thanks again, > -- > 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 gnu.andrew at redhat.com Mon Apr 22 04:03:37 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 22 Apr 2013 07:03:37 -0400 (EDT) Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <5171A9EB.9040509@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> Message-ID: <1318419985.426213.1366628617815.JavaMail.root@redhat.com> ----- Original Message ----- > Hi Andrew, > > On 04/19/2013 02:59 PM, Andrew Hughes wrote: > > > > ----- Original Message ----- > >> Hi, > >> > >> This patch improves our backport of the Java 7 S6657673 security fix. > >> This fixes a problem where > >> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to > >> package access restrictions on Xerces. > >> Okay to push? > >> > > No. If you're backporting patches, as has been said before, they should > > be in the openjdk directory named with the bug ID so they can be traced. > > This is hard for me to read now, never mind for long term maintenance. > > > >> Thanks, > >> Elliott > >> > > There were actually a couple of patches I backported, and they were just > partial backports. I didn't think it was suitable to classify it as a > proper OpenJDK patch. The commit policy says only direct backports > should be placed in the openjdk subdirectory. > > Thanks, > Elliott > Can you provide more details on: * The repository these changes came from and which changesets * What subset of the patches were used? At the very least, each backport should be in a patch corresponding to the changeset it came from, not munged together. 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 andrew at icedtea.classpath.org Mon Apr 22 05:45:41 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 22 Apr 2013 12:45:41 +0000 Subject: /hg/release/icedtea7-2.3: Start 2.3.10 release cycle. Message-ID: changeset fe12a3a45692 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=fe12a3a45692 author: Andrew John Hughes date: Mon Apr 22 13:45:31 2013 +0100 Start 2.3.10 release cycle. 2013-04-22 Andrew John Hughes * configure.ac: Bump to 2.3.10pre. * NEWS: Add section for 2.3.10. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r 7ba261065db8 -r fe12a3a45692 ChangeLog --- a/ChangeLog Mon Apr 22 01:40:46 2013 +0100 +++ b/ChangeLog Mon Apr 22 13:45:31 2013 +0100 @@ -1,3 +1,8 @@ +2013-04-22 Andrew John Hughes + + * configure.ac: Bump to 2.3.10pre. + * NEWS: Add section for 2.3.10. + 2013-04-21 Andrew John Hughes * NEWS: Remove duplicate item. diff -r 7ba261065db8 -r fe12a3a45692 NEWS --- a/NEWS Mon Apr 22 01:40:46 2013 +0100 +++ b/NEWS Mon Apr 22 13:45:31 2013 +0100 @@ -10,6 +10,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 2.3.10 (2013-06-XX): + New in release 2.3.9 (2013-04-21): * Security fixes diff -r 7ba261065db8 -r fe12a3a45692 configure.ac --- a/configure.ac Mon Apr 22 01:40:46 2013 +0100 +++ b/configure.ac Mon Apr 22 13:45:31 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.3.9], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.3.10pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From bugzilla-daemon at icedtea.classpath.org Mon Apr 22 06:13:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 22 Apr 2013 13:13:01 +0000 Subject: [Bug 1363] [IcedTea7] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1363 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/c0fd5fa6/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Apr 22 06:14:18 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 22 Apr 2013 13:14:18 +0000 Subject: [Bug 1380] [IcedTea6] Add AArch64 support to Zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1380 --- Comment #6 from Andrew John Hughes --- Kernel *HEADERS*, not kernel. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/1638b7f8/attachment.html From ebaron at redhat.com Mon Apr 22 08:55:53 2013 From: ebaron at redhat.com (Elliott Baron) Date: Mon, 22 Apr 2013 11:55:53 -0400 Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <1318419985.426213.1366628617815.JavaMail.root@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> Message-ID: <51755D89.3090802@redhat.com> On 04/22/2013 07:03 AM, Andrew Hughes wrote: > ----- Original Message ----- >> Hi Andrew, >> >> On 04/19/2013 02:59 PM, Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Hi, >>>> >>>> This patch improves our backport of the Java 7 S6657673 security fix. >>>> This fixes a problem where >>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to >>>> package access restrictions on Xerces. >>>> Okay to push? >>>> >>> No. If you're backporting patches, as has been said before, they should >>> be in the openjdk directory named with the bug ID so they can be traced. >>> This is hard for me to read now, never mind for long term maintenance. >>> >>>> Thanks, >>>> Elliott >>>> >> There were actually a couple of patches I backported, and they were just >> partial backports. I didn't think it was suitable to classify it as a >> proper OpenJDK patch. The commit policy says only direct backports >> should be placed in the openjdk subdirectory. >> >> Thanks, >> Elliott >> > Can you provide more details on: > > * The repository these changes came from and which changesets From the ChangeLog: > * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: > Backported {parser,transform}.FactoryFinder fixes > from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. > * What subset of the patches were used? The first changeset 4a61ac055189: Adding the parameter useBSClassLoader to getProviderClass and newInstance. Other portions of the patch that updated the usage of these two methods to include useBSClassLoader were also backported. The second changeset 38d4d23d167c: Is a fixed backport of S6657673 for these two FactoryFinder classes that actually sets useBSClassLoader. Elliott From gnu.andrew at redhat.com Mon Apr 22 08:59:34 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 22 Apr 2013 11:59:34 -0400 (EDT) Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <51755D89.3090802@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> Message-ID: <1427339409.622661.1366646374180.JavaMail.root@redhat.com> ----- Original Message ----- > On 04/22/2013 07:03 AM, Andrew Hughes wrote: > > ----- Original Message ----- > >> Hi Andrew, > >> > >> On 04/19/2013 02:59 PM, Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Hi, > >>>> > >>>> This patch improves our backport of the Java 7 S6657673 security fix. > >>>> This fixes a problem where > >>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to > >>>> package access restrictions on Xerces. > >>>> Okay to push? > >>>> > >>> No. If you're backporting patches, as has been said before, they should > >>> be in the openjdk directory named with the bug ID so they can be traced. > >>> This is hard for me to read now, never mind for long term maintenance. > >>> > >>>> Thanks, > >>>> Elliott > >>>> > >> There were actually a couple of patches I backported, and they were just > >> partial backports. I didn't think it was suitable to classify it as a > >> proper OpenJDK patch. The commit policy says only direct backports > >> should be placed in the openjdk subdirectory. > >> > >> Thanks, > >> Elliott > >> > > Can you provide more details on: > > > > * The repository these changes came from and which changesets > > From the ChangeLog: > > * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: > > Backported {parser,transform}.FactoryFinder fixes > > from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. > Yes, I've seen this. Which repository? > > > * What subset of the patches were used? > > The first changeset 4a61ac055189: Adding the parameter useBSClassLoader > to getProviderClass and newInstance. Other portions of the patch that > updated the usage of these two methods to include useBSClassLoader were > also backported. > The second changeset 38d4d23d167c: Is a fixed backport of S6657673 for > these two FactoryFinder classes that actually sets useBSClassLoader. > Ok can we at least have these as two separate patches? I need to know what's going on if we're ever going to upstream this. > Elliott > -- 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 ebaron at redhat.com Mon Apr 22 09:01:11 2013 From: ebaron at redhat.com (Elliott Baron) Date: Mon, 22 Apr 2013 12:01:11 -0400 Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <1427339409.622661.1366646374180.JavaMail.root@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> <1427339409.622661.1366646374180.JavaMail.root@redhat.com> Message-ID: <51755EC7.9040807@redhat.com> On 04/22/2013 11:59 AM, Andrew Hughes wrote: > > ----- Original Message ----- >> On 04/22/2013 07:03 AM, Andrew Hughes wrote: >>> ----- Original Message ----- >>>> Hi Andrew, >>>> >>>> On 04/19/2013 02:59 PM, Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> Hi, >>>>>> >>>>>> This patch improves our backport of the Java 7 S6657673 security fix. >>>>>> This fixes a problem where >>>>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to >>>>>> package access restrictions on Xerces. >>>>>> Okay to push? >>>>>> >>>>> No. If you're backporting patches, as has been said before, they should >>>>> be in the openjdk directory named with the bug ID so they can be traced. >>>>> This is hard for me to read now, never mind for long term maintenance. >>>>> >>>>>> Thanks, >>>>>> Elliott >>>>>> >>>> There were actually a couple of patches I backported, and they were just >>>> partial backports. I didn't think it was suitable to classify it as a >>>> proper OpenJDK patch. The commit policy says only direct backports >>>> should be placed in the openjdk subdirectory. >>>> >>>> Thanks, >>>> Elliott >>>> >>> Can you provide more details on: >>> >>> * The repository these changes came from and which changesets >> From the ChangeLog: >>> * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: >>> Backported {parser,transform}.FactoryFinder fixes >>> from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. > Yes, I've seen this. Which repository? http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jaxp > >>> * What subset of the patches were used? >> The first changeset 4a61ac055189: Adding the parameter useBSClassLoader >> to getProviderClass and newInstance. Other portions of the patch that >> updated the usage of these two methods to include useBSClassLoader were >> also backported. >> The second changeset 38d4d23d167c: Is a fixed backport of S6657673 for >> these two FactoryFinder classes that actually sets useBSClassLoader. >> > Ok can we at least have these as two separate patches? I need to know > what's going on if we're ever going to upstream this. Alright, I will split them up. Thanks, Elliott From gnu.andrew at redhat.com Mon Apr 22 09:08:05 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 22 Apr 2013 12:08:05 -0400 (EDT) Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <51755EC7.9040807@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> <1427339409.622661.1366646374180.JavaMail.root@redhat.com> <51755EC7.9040807@redhat.com> Message-ID: <498361389.629390.1366646885817.JavaMail.root@redhat.com> ----- Original Message ----- > On 04/22/2013 11:59 AM, Andrew Hughes wrote: > > > > ----- Original Message ----- > >> On 04/22/2013 07:03 AM, Andrew Hughes wrote: > >>> ----- Original Message ----- > >>>> Hi Andrew, > >>>> > >>>> On 04/19/2013 02:59 PM, Andrew Hughes wrote: > >>>>> ----- Original Message ----- > >>>>>> Hi, > >>>>>> > >>>>>> This patch improves our backport of the Java 7 S6657673 security fix. > >>>>>> This fixes a problem where > >>>>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to > >>>>>> package access restrictions on Xerces. > >>>>>> Okay to push? > >>>>>> > >>>>> No. If you're backporting patches, as has been said before, they > >>>>> should > >>>>> be in the openjdk directory named with the bug ID so they can be > >>>>> traced. > >>>>> This is hard for me to read now, never mind for long term maintenance. > >>>>> > >>>>>> Thanks, > >>>>>> Elliott > >>>>>> > >>>> There were actually a couple of patches I backported, and they were just > >>>> partial backports. I didn't think it was suitable to classify it as a > >>>> proper OpenJDK patch. The commit policy says only direct backports > >>>> should be placed in the openjdk subdirectory. > >>>> > >>>> Thanks, > >>>> Elliott > >>>> > >>> Can you provide more details on: > >>> > >>> * The repository these changes came from and which changesets > >> From the ChangeLog: > >>> * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: > >>> Backported {parser,transform}.FactoryFinder fixes > >>> from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. > > Yes, I've seen this. Which repository? > > http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jaxp > > > > >>> * What subset of the patches were used? > >> The first changeset 4a61ac055189: Adding the parameter useBSClassLoader > >> to getProviderClass and newInstance. Other portions of the patch that > >> updated the usage of these two methods to include useBSClassLoader were > >> also backported. > >> The second changeset 38d4d23d167c: Is a fixed backport of S6657673 for > >> these two FactoryFinder classes that actually sets useBSClassLoader. > >> > > Ok can we at least have these as two separate patches? I need to know > > what's going on if we're ever going to upstream this. > > Alright, I will split them up. > > Thanks, > Elliott > > It would make it much easier to review. 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 jvanek at redhat.com Mon Apr 22 10:06:13 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 22 Apr 2013 19:06:13 +0200 Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue classloaders In-Reply-To: <517032CE.8080306@redhat.com> References: <515DDFF1.60405@redhat.com> <515ED97A.8020406@redhat.com> <515EE731.6050000@redhat.com> <515EF61C.6090306@redhat.com> <517032CE.8080306@redhat.com> Message-ID: <51756E05.2050107@redhat.com> On 04/18/2013 07:52 PM, Adam Domurad wrote: > >> Argh! ReflectiveOperationException is jdk7 specific! > > Good catch. I forget sometimes changing a base-class is binary-compatible in Java. > > Fixed version attached. > > Happy hacking, > -Adam > ACKed ;) From andrew at icedtea.classpath.org Mon Apr 22 10:15:09 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 22 Apr 2013 17:15:09 +0000 Subject: /hg/icedtea6: PR1336: Bootstrap failure on Fedora 17/18 Message-ID: changeset ceab4a096b50 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ceab4a096b50 author: Andrew John Hughes date: Mon Apr 22 18:11:11 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-22 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, SSLEngine, TrustAnchor and KeyStoreBuilderParameters depending on if methods are missing. * NEWS: Updated. * configure.ac: Mention bugs in comments. Add tests for getDefaultSSLParameters/setSSLParameters, new TrustAnchor constructor, TrustAnchor.getCA() and KeyStoreBuilderParameters.getParameters(). diffstat: ChangeLog | 13 +++++++++++++ Makefile.am | 22 +++++++++++++++++++--- NEWS | 1 + configure.ac | 47 ++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 73 insertions(+), 10 deletions(-) diffs (147 lines): diff -r 50031cd2f57a -r ceab4a096b50 ChangeLog --- a/ChangeLog Wed Apr 17 12:01:42 2013 +0100 +++ b/ChangeLog Mon Apr 22 18:11:11 2013 +0100 @@ -1,3 +1,16 @@ +2013-04-22 Andrew John Hughes + + PR1336: Bootstrap failure on Fedora 17/18 + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, + SSLEngine, TrustAnchor and KeyStoreBuilderParameters + depending on if methods are missing. + * NEWS: Updated. + * configure.ac: Mention bugs in comments. + Add tests for getDefaultSSLParameters/setSSLParameters, + new TrustAnchor constructor, TrustAnchor.getCA() and + KeyStoreBuilderParameters.getParameters(). + 2013-04-17 Andrew John Hughes * Makefile.am: diff -r 50031cd2f57a -r ceab4a096b50 Makefile.am --- a/Makefile.am Wed Apr 17 12:01:42 2013 +0100 +++ b/Makefile.am Mon Apr 22 18:11:11 2013 +0100 @@ -127,10 +127,26 @@ $(SHARE)/javax/security/sasl/Sasl.java endif -# PR 56553 - SSLParameters support missing -if LACKS_SSLPARAMETERS +#PR56553 - SSLParameters support missing +if LACKS_JAVAX_NET_SSL_SSLCONTEXT_GETDEFAULTSSLPARAMETERS ICEDTEA_BOOTSTRAP_CLASSES += \ - $(SHARE)/javax/net/ssl/SSLParameters.java + $(SHARE)/javax/net/ssl/SSLContext.java +endif +if LACKS_JAVAX_NET_SSL_SSLENGINE_SETSSLPARAMETERS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/SSLEngine.java +endif + +#PR57030 - Add missing TrustAnchor methods +if LACKS_JAVA_SECURITY_CERT_TRUSTANCHOR_X500_CONS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/TrustAnchor.java +endif + +#PR57031 - Add missing getParameters() method in KeyStoreBuilderParameters +if LACKS_JAVAX_NET_SSL_KEYSTOREBUILDERPARAMETERS_GETPARAMETERS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/KeyStoreBuilderParameters.java endif # Flags diff -r 50031cd2f57a -r ceab4a096b50 NEWS --- a/NEWS Wed Apr 17 12:01:42 2013 +0100 +++ b/NEWS Mon Apr 22 18:11:11 2013 +0100 @@ -27,6 +27,7 @@ - PR1362: Fedora 19 / rawhide FTBFS SIGILL - PR1338: Remove dependence on libXp - PR1339: Simplify the rhino class rewriter to avoid use of concurrency + - PR1336: Bootstrap failure on Fedora 17/18 New in release 1.12.4 (2013-03-04): diff -r 50031cd2f57a -r ceab4a096b50 configure.ac --- a/configure.ac Wed Apr 17 12:01:42 2013 +0100 +++ b/configure.ac Mon Apr 22 18:11:11 2013 +0100 @@ -56,7 +56,7 @@ IT_DISABLE_LANGTOOLS_TESTS IT_DISABLE_JDK_TESTS -#PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure +dnl PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure IT_CHECK_FOR_METHOD([JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER], [javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener(PropertyChangeListener)], [javax.swing.plaf.basic.BasicDirectoryModel], @@ -64,7 +64,7 @@ [javax.swing.plaf.basic.BasicDirectoryModel model = new javax.swing.plaf.basic.BasicDirectoryModel(new javax.swing.JFileChooser()); model.addPropertyChangeListener(model)] ) -# Workaround issue with old CORBA classes in old OpenJDK builds +dnl Workaround issue with old CORBA classes in old OpenJDK builds IT_CHECK_FOR_CLASS([ORBUTILSYSTEMEXCEPTION],[com.sun.corba.se.impl.logging.ORBUtilSystemException]) IT_CHECK_FOR_METHOD([ORBUTILSYSTEMEXCEPTION_IOEXCEPTIONONCLOSE_THROWABLE], [com.sun.corba.se.impl.logging.ORBUtilSystemException.ioExceptionOnClose(Throwable)], @@ -73,11 +73,11 @@ [new com.sun.corba.se.impl.logging.ORBUtilSystemException(null).ioExceptionOnClose(new InternalError())] ) -# PR43389 - javax.management.StandardMBean +dnl PR43389 - javax.management.StandardMBean IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true]) IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG],[javax.management.StandardMBean],[Object.class,Class.class,Boolean.TYPE],[new Object(), Object.class, true]) -# PR54274 - sun.security.other requires missing X509CRLSelector methods +dnl PR54274 - sun.security.other requires missing X509CRLSelector methods IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER], [java.security.cert.X509CRLSelector.addIssuer(X500Principal)], [java.security.cert.X509CRLSelector], @@ -115,11 +115,44 @@ [new javax.security.auth.kerberos.KerberosTicket(null,null,null,null,0,null,null,null,null,null,null).getSessionKeyType()] ) -# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field +dnl PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field IT_CHECK_FOR_STATIC_FIELD([JAVAX_SECURITY_SASL_SASL_CREDENTIALS],[CREDENTIALS],[javax.security.sasl.Sasl]) -# PR 56553 - SSLParameters support missing -IT_CHECK_FOR_CLASS([SSLPARAMETERS],[javax.net.ssl.SSLParameters]) +dnl PR56553 - SSLParameters support missing +IT_CHECK_FOR_METHOD([JAVAX_NET_SSL_SSLCONTEXT_GETDEFAULTSSLPARAMETERS], + [javax.net.ssl.SSLContext.getDefaultSSLParameters], + [javax.net.ssl.SSLContext], + ["getDefaultSSLParameters"], + [try { javax.net.ssl.SSLContext.getDefault().getDefaultSSLParameters(); } catch (Exception e) {}] +) +IT_CHECK_FOR_METHOD([JAVAX_NET_SSL_SSLENGINE_SETSSLPARAMETERS], + [javax.net.ssl.SSLEngine.setSSLParameters], + [javax.net.ssl.SSLEngine], + ["setSSLParameters", javax.net.ssl.SSLParameters.class], + [try { javax.net.ssl.SSLContext.getDefault().createSSLEngine().setSSLParameters(new javax.net.ssl.SSLParameters()); } + catch (Exception e) {}] +) + +dnl PR57030 - Add missing TrustAnchor methods +IT_CHECK_FOR_CONSTRUCTOR([JAVA_SECURITY_CERT_TRUSTANCHOR_X500_CONS], + [java.security.cert.TrustAnchor], + [javax.security.auth.x500.X500Principal.class, java.security.PublicKey.class, byte@<:@@:>@.class], + [new javax.security.auth.x500.X500Principal("bob"),null,null] +) +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_TRUSTANCHOR_GETCA], + [java.security.cert.TrustAnchor.getCA], + [java.security.cert.TrustAnchor], + ["getCA"], + [new java.security.cert.TrustAnchor("", null, null).getCA()] +) + +dnl PR57031 - Add missing getParameters() method in KeyStoreBuilderParameters +IT_CHECK_FOR_METHOD([JAVAX_NET_SSL_KEYSTOREBUILDERPARAMETERS_GETPARAMETERS], + [javax.net.ssl.KeyStoreBuilderParameters.getParameters], + [javax.net.ssl.KeyStoreBuilderParameters], + ["getParameters"], + [new javax.net.ssl.KeyStoreBuilderParameters(new java.util.ArrayList()).getParameters()] +) # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) From bugzilla-daemon at icedtea.classpath.org Mon Apr 22 10:15:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 22 Apr 2013 17:15:19 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #7 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=ceab4a096b50 author: Andrew John Hughes date: Mon Apr 22 18:11:11 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-22 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, SSLEngine, TrustAnchor and KeyStoreBuilderParameters depending on if methods are missing. * NEWS: Updated. * configure.ac: Mention bugs in comments. Add tests for getDefaultSSLParameters/setSSLParameters, new TrustAnchor constructor, TrustAnchor.getCA() and KeyStoreBuilderParameters.getParameters(). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/a9a27823/attachment.html From ebaron at redhat.com Mon Apr 22 10:23:55 2013 From: ebaron at redhat.com (Elliott Baron) Date: Mon, 22 Apr 2013 13:23:55 -0400 Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <498361389.629390.1366646885817.JavaMail.root@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> <1427339409.622661.1366646374180.JavaMail.root@redhat.com> <51755EC7.9040807@redhat.com> <498361389.629390.1366646885817.JavaMail.root@redhat.com> Message-ID: <5175722B.4080004@redhat.com> Hi, On 04/22/2013 12:08 PM, Andrew Hughes wrote: > ----- Original Message ----- >> On 04/22/2013 11:59 AM, Andrew Hughes wrote: >>> ----- Original Message ----- >>>> On 04/22/2013 07:03 AM, Andrew Hughes wrote: >>>>> ----- Original Message ----- >>>>>> Hi Andrew, >>>>>> >>>>>> On 04/19/2013 02:59 PM, Andrew Hughes wrote: >>>>>>> ----- Original Message ----- >>>>>>>> Hi, >>>>>>>> >>>>>>>> This patch improves our backport of the Java 7 S6657673 security fix. >>>>>>>> This fixes a problem where >>>>>>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would fail due to >>>>>>>> package access restrictions on Xerces. >>>>>>>> Okay to push? >>>>>>>> >>>>>>> No. If you're backporting patches, as has been said before, they >>>>>>> should >>>>>>> be in the openjdk directory named with the bug ID so they can be >>>>>>> traced. >>>>>>> This is hard for me to read now, never mind for long term maintenance. >>>>>>> >>>>>>>> Thanks, >>>>>>>> Elliott >>>>>>>> >>>>>> There were actually a couple of patches I backported, and they were just >>>>>> partial backports. I didn't think it was suitable to classify it as a >>>>>> proper OpenJDK patch. The commit policy says only direct backports >>>>>> should be placed in the openjdk subdirectory. >>>>>> >>>>>> Thanks, >>>>>> Elliott >>>>>> >>>>> Can you provide more details on: >>>>> >>>>> * The repository these changes came from and which changesets >>>> From the ChangeLog: >>>>> * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: >>>>> Backported {parser,transform}.FactoryFinder fixes >>>>> from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. >>> Yes, I've seen this. Which repository? >> http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jaxp >> >>>>> * What subset of the patches were used? >>>> The first changeset 4a61ac055189: Adding the parameter useBSClassLoader >>>> to getProviderClass and newInstance. Other portions of the patch that >>>> updated the usage of these two methods to include useBSClassLoader were >>>> also backported. >>>> The second changeset 38d4d23d167c: Is a fixed backport of S6657673 for >>>> these two FactoryFinder classes that actually sets useBSClassLoader. >>>> >>> Ok can we at least have these as two separate patches? I need to know >>> what's going on if we're ever going to upstream this. >> Alright, I will split them up. >> >> Thanks, >> Elliott >> >> > It would make it much easier to review. > > Thanks, Here are the split patches. The first patch is 7133220, the second is 6557673. Thanks, Elliott -------------- next part -------------- A non-text attachment was scrubbed... Name: 7133220-factory-finder-parser-transform-useBSClassLoader.patch Type: text/x-patch Size: 12368 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/8566b7c6/7133220-factory-finder-parser-transform-useBSClassLoader.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: 6657673-factory-finder-parser-transform-internal-packages.patch Type: text/x-patch Size: 2598 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/8566b7c6/6657673-factory-finder-parser-transform-internal-packages.patch From bugzilla-daemon at icedtea.classpath.org Mon Apr 22 11:12:57 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 22 Apr 2013 18:12:57 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #8 from Stefan Ring --- Verified on F17. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/f3dcd8c9/attachment.html From adomurad at redhat.com Mon Apr 22 11:58:38 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 22 Apr 2013 14:58:38 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5170232B.2050805@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> Message-ID: <5175885E.6010709@redhat.com> Discussion fell off the list by accident, putting back. On 04/22/2013 01:49 PM, Jiri Vanek wrote: > On 04/18/2013 06:45 PM, Adam Domurad wrote: >> The test seems wrong to me, which needs to be clarified before we can >> properly address if this is a problem. I don't see any case where >> SecurityDesc could have a null file, and this is the code causing the >> difference: > > the test is doing what it is doing - testing SecurityDesc with null > file . See this mail thread: http://permalink.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/19751 These tests were added without any use-case It seems the correct solution to the original problem (investigated by checking out commit 507, right before it) would have been to just get rid of the uses of null here. I am strongly in favour of reverting 508 or reworking the test to not check for the null jnlp files. NullJnlpFileException should be removed. > To be honest I'm not sure whether it is possible "in real live" or > not... (Applets?... just first thought - anyway see the difference > between jnlp and applet evaluation of test). No, applets do not have a null JNLPFile. See eg line 186 of PluginBridge (which extends JNLPFile). > And was passing and is failing and due : > - boolean allSigned = true; > + boolean allSigned = (loaders.length > 1) /* has > extensions */; > > But you may be (probably are) correct that it could hide more hidden > issue. >> >> } else if (signing == true) { >> this.security = file.getSecurity(); >> } else { >> this.security = new SecurityDesc(file, >> SecurityDesc.SANDBOX_PERMISSIONS, >> codebase.getHost()); >> >> If it's signing, it carries on the null file, if not, it overwrites >> with its own SecurityDesc. Am I missing something ? What does a >> null-file signify ? Looking at the code-paths that create >> SecurityDesc's it seems like it cannot happen. > > to cite you for remembering" > > Without this change, applets that do not have an associated jar will > always be considered signed. > > Sounds quite serious! > > > Thus they will always run regardless of unsigned applet trust setting. > > What does the broken test indicate ? " > > Maybe the behaviour of test is now correct... But who can say .... >> >> There may still be an issue, however it would not have been >> introduced by my code. > bad luck, your code made it vissible. Surely not bad luck :-) Anyway, I don't think there is an issue anymore. It seems like a bad test purely. >> >> Thanks, > > > If you are right, and null file is not possible, then I'm for throw > launcherror from every place where it can be set. And adapt unittest > to it.... A null file is not possible in any location it is setting -- mostly stemming from JNLPFile methods themselves where it is obviously not null. It appeared purely from mocks. I agree though: SecurityDesc should throw a NPE / argument exception if JNLPFile is ever null to prevent this in the future. We should eradicate it from the unit tests. > > J. > Happy hacking, -Adam From bugzilla-daemon at icedtea.classpath.org Mon Apr 22 13:29:14 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 22 Apr 2013 20:29:14 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 Stefan Ring changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #9 from Stefan Ring --- (In reply to comment #8) > Verified on F17. ? and F18. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/9f8fbe9c/attachment.html From ebaron at redhat.com Mon Apr 22 13:54:15 2013 From: ebaron at redhat.com (Elliott Baron) Date: Mon, 22 Apr 2013 16:54:15 -0400 Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <5175722B.4080004@redhat.com> References: <51718A0E.7030904@redhat.com> <1803013718.3268272.1366397989544.JavaMail.root@redhat.com> <5171A9EB.9040509@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> <1427339409.622661.1366646374180.JavaMail.root@redhat.com> <51755EC7.9040807@redhat.com> <498361389.629390.1366646885817.JavaMail.root@redhat.com> <5175722B.4080004@redhat.com> Message-ID: <5175A377.1080301@redhat.com> On 04/22/2013 01:23 PM, Elliott Baron wrote: > Hi, > > On 04/22/2013 12:08 PM, Andrew Hughes wrote: >> ----- Original Message ----- >>> On 04/22/2013 11:59 AM, Andrew Hughes wrote: >>>> ----- Original Message ----- >>>>> On 04/22/2013 07:03 AM, Andrew Hughes wrote: >>>>>> ----- Original Message ----- >>>>>>> Hi Andrew, >>>>>>> >>>>>>> On 04/19/2013 02:59 PM, Andrew Hughes wrote: >>>>>>>> ----- Original Message ----- >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> This patch improves our backport of the Java 7 S6657673 >>>>>>>>> security fix. >>>>>>>>> This fixes a problem where >>>>>>>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would >>>>>>>>> fail due to >>>>>>>>> package access restrictions on Xerces. >>>>>>>>> Okay to push? >>>>>>>>> >>>>>>>> No. If you're backporting patches, as has been said before, they >>>>>>>> should >>>>>>>> be in the openjdk directory named with the bug ID so they can be >>>>>>>> traced. >>>>>>>> This is hard for me to read now, never mind for long term >>>>>>>> maintenance. >>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Elliott >>>>>>>>> >>>>>>> There were actually a couple of patches I backported, and they >>>>>>> were just >>>>>>> partial backports. I didn't think it was suitable to classify it >>>>>>> as a >>>>>>> proper OpenJDK patch. The commit policy says only direct backports >>>>>>> should be placed in the openjdk subdirectory. >>>>>>> >>>>>>> Thanks, >>>>>>> Elliott >>>>>>> >>>>>> Can you provide more details on: >>>>>> >>>>>> * The repository these changes came from and which changesets >>>>> From the ChangeLog: >>>>>> * >>>>>> patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: >>>>>> Backported {parser,transform}.FactoryFinder fixes >>>>>> from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. >>>> Yes, I've seen this. Which repository? >>> http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jaxp >>> >>>>>> * What subset of the patches were used? >>>>> The first changeset 4a61ac055189: Adding the parameter >>>>> useBSClassLoader >>>>> to getProviderClass and newInstance. Other portions of the patch that >>>>> updated the usage of these two methods to include useBSClassLoader >>>>> were >>>>> also backported. >>>>> The second changeset 38d4d23d167c: Is a fixed backport of S6657673 >>>>> for >>>>> these two FactoryFinder classes that actually sets useBSClassLoader. >>>>> >>>> Ok can we at least have these as two separate patches? I need to know >>>> what's going on if we're ever going to upstream this. >>> Alright, I will split them up. >>> >>> Thanks, >>> Elliott >>> >>> >> It would make it much easier to review. >> >> Thanks, > > Here are the split patches. The first patch is 7133220, the second is > 6557673. > > Thanks, > Elliott Here is the full changeset. Thanks, Elliott -------------- next part -------------- A non-text attachment was scrubbed... Name: split-jaxp-backport-factoryfinder.patch Type: text/x-patch Size: 30707 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/7ae1e711/split-jaxp-backport-factoryfinder.patch From adomurad at redhat.com Mon Apr 22 14:05:06 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 22 Apr 2013 17:05:06 -0400 Subject: [rfc][icedtea-web] Ensure JarFile handles do not leak, introduce closeSilently utility In-Reply-To: <515169D3.1090407@redhat.com> References: <511ABA6D.3080204@redhat.com> <511BC2C2.90208@redhat.com> <515169D3.1090407@redhat.com> Message-ID: <5175A602.9080304@redhat.com> On 03/26/2013 05:26 AM, Jiri Vanek wrote: > On 02/13/2013 05:43 PM, Adam Domurad wrote: >> On 02/12/2013 04:55 PM, Adam Domurad wrote: >>> This squelches some Eclipse warnings. >>> >>>> 2013-XX-XX Adam Domurad >>>> >>>> Ensure JarFile handles do not leak. >>>> * netx/net/sourceforge/jnlp/util/StreamUtils.java: >>>> New, introduces 'closeSilently'. Ignores nulls & exceptions when >>>> closing. >>>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>>> Ensure StreamUtils.closeSilently or close is called for each >>>> JarFile. >> >> OK that patch had a bug in it, and was probably too paranoid. This >> ones better. >> >> Turns out JNLPClassLoader already had a closeStreams utility function. >> >> 2013-XX-XX Adam Domurad >> >> Ensure JarFile handles do not leak. >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >> Ensure close is called for each JarFile. >> >> > > Idea is good and I'm ok with it after two things are fixed > > 1) can we have an reproducer/test for this? Reproducer is more or less impossible. Unit tests attached (first unit-tests for JNLPClassLoader!!). Note that they are heavily unix-specific. One note about reproducers: They may seem to mostly succeed, but as long as there is one failure this is difficult to say. Once the file leaks in JNLPClassLoader the rest use the same file descriptor, so there is no further leak. I have verified that each test is able to catch the resulting leak, if not for the caching. ChangeLog: 2013-XX-XX Adam Domurad * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: New, JNLPClassLoader unit tests for (checkForMain), (getMainClassName), (activateNativeJar), and (isInvalidJar). Checks for file descriptor leaks. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (isInvalidJar): Change to default visibility for testing purposes. (checkForMain): Same. (getMainClassName): Same. >> closeJarFiles2.patch >> >> >> diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> @@ -812,6 +812,8 @@ public class JNLPClassLoader extends URL >> break; >> } >> } >> + >> + jarFile.close(); >> } catch (IOException e) { >> /* >> * After this exception is caught, it is escaped. >> This will skip >> @@ -834,12 +836,15 @@ public class JNLPClassLoader extends URL >> File f = tracker.getCacheFile(location); >> >> if( f != null) { >> + JarFile mainJar = null; >> try { >> - JarFile mainJar = new JarFile(f); >> + mainJar = new JarFile(f); >> mainClass = mainJar.getManifest(). >> getMainAttributes().getValue("Main-Class"); >> } catch (IOException ioe) { >> mainClass = null; >> + } finally { >> + closeStream(mainJar); > > 2)This have not compiled in head. The method do not exists.... > If this is doing something similar to StreamUtils.closeSilently then > I'm ok with it. But have to compile...I not found it ;( > > Also StreamUtils.closeSilently(mainJar); This indeed is what needs to be done and really should compile fine. I will fix it (ie change this one line to this) before pushing. > have not compiled... :( >> } >> } >> >> @@ -1269,6 +1274,7 @@ public class JNLPClassLoader extends URL >> jarEntries.add(je.getName()); >> } >> >> + jarFile.close(); >> } >> >> addURL(jar.getLocation()); >> @@ -1292,6 +1298,8 @@ public class JNLPClassLoader extends URL >> JarIndex index = >> JarIndex.getJarIndex(jarFile, null); >> if (index != null) >> jarIndexes.add(index); >> + >> + jarFile.close(); >> } else { >> CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), >> jar.getLocation()); >> } >> @@ -1365,6 +1373,7 @@ public class JNLPClassLoader extends URL >> new FileOutputStream(outFile)); >> >> } >> + jarFile.close(); > > Just thinking about - why not to finally block too? To verbose? To rare? Too rare; not worth the resulting inelegance in my opinion. > /me do not insists, just thinking >> } catch (IOException ex) { >> if (JNLPRuntime.isDebug()) >> ex.printStackTrace(); > > Thanx for check! > J. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: jnlp-classloader-file-leak-tests.patch Type: text/x-patch Size: 12313 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130422/0e24a1f9/jnlp-classloader-file-leak-tests.patch From adomurad at redhat.com Mon Apr 22 14:05:28 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 22 Apr 2013 17:05:28 -0400 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <5165B73F.9000909@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com> <515F009D.2080108@redhat.com> <515F066A.7060005@redhat.com> <5165B73F.9000909@redhat.com> Message-ID: <5175A618.2030208@redhat.com> Ping. On 04/10/2013 03:02 PM, Adam Domurad wrote: > [ .. original message snipped ..] > > Sorry for the confusion. I spent a bit of time creating a reproducer > and investigating why we were different from the proprietary plugin to > begin with. > > I have finally found the real reason for the troubles & inconsistency > here, the basic fix is: > >> diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> b/plugin/i >> --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> @@ -439,8 +439,7 @@ public class PluginAppletViewer extends >> String height = msgParts[2]; >> >> int spaceLocation = message.indexOf(' ', "tag".length() + 1); >> - String documentBase = >> - UrlUtil.decode(message.substring("tag".length() + 1, >> spaceLocat >> + String documentBase = message.substring("tag".length() + 1, >> spaceLocati >> String paramString = message.substring(spaceLocation + 1); >> >> PluginDebug.debug("Handle = ", handle, "\n", > > > And we're 100% compatible with proprietary plugin, and aren't storing > invalid URLs. The only remaining fix-up was ... > >> diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> @@ -390,7 +390,7 @@ public class ResourceTracker { >> return resource.localFile; >> >> if (location.getProtocol().equalsIgnoreCase("file")) { >> - File file = new File(location.getFile()); >> + File file = new File(location.toURI().getPath()); >> if (file.exists()) >> return file; >> } >> @@ -401,6 +401,9 @@ public class ResourceTracker { >> ex.printStackTrace(); >> >> return null; // need an error exception to throw >> + } catch (URISyntaxException e) { >> + e.printStackTrace(); >> + return null; >> } >> } > > Which works around a bad mis-design of URL#getFile() which does not > decode the URL. This only applies to local files. URL#getFile() should > be avoided, I think. > > Fix ChangeLog: > 2013-XX-XX Adam Domurad > > Ensure document-base is properly encoded. > * netx/net/sourceforge/jnlp/cache/ResourceTracker.java > (getCacheFile): Use URL#toUri().getPath() instead of URL#getFile(). > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > (handleInitializationMessage): Don't decode document-base. > > Reproducer ChangeLog: > 2013-XX-XX Adam Domurad > > Reproducer for URL parameters (eg ?a=b) in document-base. > * > tests/reproducers/simple/URLParametersInDocumentBase/resources/URLParametersInDocumentBase.html: > Page that loads applet. > * > tests/reproducers/simple/URLParametersInDocumentBase/srcs/URLParametersInDocumentBase.java: > Applet that prints code-base & document-base. > * > tests/reproducers/simple/URLParametersInDocumentBase/testcases/URLParametersInDocumentBaseTests.java: > Test-driver. > > The UrlUtils patch is not strictly necessary any more, but I'd still > like it in (it is unaffected by the changes). It can be just in HEAD > though. > > Please note that I strongly want the fix in 1.3 since without it one > cannot use Oracle LMS. > > Thanks, > -Adam From gnu.andrew at redhat.com Mon Apr 22 14:11:38 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 22 Apr 2013 17:11:38 -0400 (EDT) Subject: [PATCH][IcedTea6] Fix Backport from S6657673 In-Reply-To: <5175A377.1080301@redhat.com> References: <51718A0E.7030904@redhat.com> <1318419985.426213.1366628617815.JavaMail.root@redhat.com> <51755D89.3090802@redhat.com> <1427339409.622661.1366646374180.JavaMail.root@redhat.com> <51755EC7.9040807@redhat.com> <498361389.629390.1366646885817.JavaMail.root@redhat.com> <5175722B.4080004@redhat.com> <5175A377.1080301@redhat.com> Message-ID: <1739354173.802810.1366665098967.JavaMail.root@redhat.com> ----- Original Message ----- > On 04/22/2013 01:23 PM, Elliott Baron wrote: > > Hi, > > > > On 04/22/2013 12:08 PM, Andrew Hughes wrote: > >> ----- Original Message ----- > >>> On 04/22/2013 11:59 AM, Andrew Hughes wrote: > >>>> ----- Original Message ----- > >>>>> On 04/22/2013 07:03 AM, Andrew Hughes wrote: > >>>>>> ----- Original Message ----- > >>>>>>> Hi Andrew, > >>>>>>> > >>>>>>> On 04/19/2013 02:59 PM, Andrew Hughes wrote: > >>>>>>>> ----- Original Message ----- > >>>>>>>>> Hi, > >>>>>>>>> > >>>>>>>>> This patch improves our backport of the Java 7 S6657673 > >>>>>>>>> security fix. > >>>>>>>>> This fixes a problem where > >>>>>>>>> javax.xml.parsers.DocumentBuilderFactory.newInstance would > >>>>>>>>> fail due to > >>>>>>>>> package access restrictions on Xerces. > >>>>>>>>> Okay to push? > >>>>>>>>> > >>>>>>>> No. If you're backporting patches, as has been said before, they > >>>>>>>> should > >>>>>>>> be in the openjdk directory named with the bug ID so they can be > >>>>>>>> traced. > >>>>>>>> This is hard for me to read now, never mind for long term > >>>>>>>> maintenance. > >>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Elliott > >>>>>>>>> > >>>>>>> There were actually a couple of patches I backported, and they > >>>>>>> were just > >>>>>>> partial backports. I didn't think it was suitable to classify it > >>>>>>> as a > >>>>>>> proper OpenJDK patch. The commit policy says only direct backports > >>>>>>> should be placed in the openjdk subdirectory. > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Elliott > >>>>>>> > >>>>>> Can you provide more details on: > >>>>>> > >>>>>> * The repository these changes came from and which changesets > >>>>> From the ChangeLog: > >>>>>> * > >>>>>> patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: > >>>>>> Backported {parser,transform}.FactoryFinder fixes > >>>>>> from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. > >>>> Yes, I've seen this. Which repository? > >>> http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jaxp > >>> > >>>>>> * What subset of the patches were used? > >>>>> The first changeset 4a61ac055189: Adding the parameter > >>>>> useBSClassLoader > >>>>> to getProviderClass and newInstance. Other portions of the patch that > >>>>> updated the usage of these two methods to include useBSClassLoader > >>>>> were > >>>>> also backported. > >>>>> The second changeset 38d4d23d167c: Is a fixed backport of S6657673 > >>>>> for > >>>>> these two FactoryFinder classes that actually sets useBSClassLoader. > >>>>> > >>>> Ok can we at least have these as two separate patches? I need to know > >>>> what's going on if we're ever going to upstream this. > >>> Alright, I will split them up. > >>> > >>> Thanks, > >>> Elliott > >>> > >>> > >> It would make it much easier to review. > >> > >> Thanks, > > > > Here are the split patches. The first patch is 7133220, the second is > > 6557673. > > > > Thanks, > > Elliott > > Here is the full changeset. > > Thanks, > Elliott > It really still needs a NEWS update, but just commit it as is and I'll add it. I'd rather not waste more time tonight and I need to add Roman's patch 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 ebaron at icedtea.classpath.org Mon Apr 22 14:14:11 2013 From: ebaron at icedtea.classpath.org (ebaron at icedtea.classpath.org) Date: Mon, 22 Apr 2013 21:14:11 +0000 Subject: /hg/release/icedtea6-1.11: Split 6657673-jaxp-backport-factoryfi... Message-ID: changeset a08f636892a8 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=a08f636892a8 author: Elliott Baron date: Mon Apr 22 17:13:26 2013 -0400 Split 6657673-jaxp-backport-factoryfinder patch into two. 2013-04-22 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Removed one patch, split it into two. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Removed. Split into patches below. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: First part of removed patch. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Second part of removed patch. diffstat: ChangeLog | 11 + Makefile.am | 3 +- patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch | 54 + patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch | 298 +++++++++ patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch | 303 ---------- 5 files changed, 365 insertions(+), 304 deletions(-) diffs (truncated from 698 to 500 lines): diff -r 5254d96fe90f -r a08f636892a8 ChangeLog --- a/ChangeLog Fri Apr 19 14:38:19 2013 -0400 +++ b/ChangeLog Mon Apr 22 17:13:26 2013 -0400 @@ -1,3 +1,14 @@ +2013-04-22 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Removed one patch, split it into two. + * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: + Removed. Split into patches below. + * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: + First part of removed patch. + * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: + Second part of removed patch. + 2013-04-19 Elliott Baron * Makefile.am: diff -r 5254d96fe90f -r a08f636892a8 Makefile.am --- a/Makefile.am Fri Apr 19 14:38:19 2013 -0400 +++ b/Makefile.am Mon Apr 22 17:13:26 2013 -0400 @@ -279,7 +279,8 @@ patches/openjdk/8004302-soap_test_failure.patch \ patches/security/20130416/6657673.patch \ patches/security/20130416/6657673-fixup.patch \ - patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch \ + patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch \ + patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch \ patches/openjdk/6669869-queries_per_appcontext.patch \ patches/openjdk/5102804-memory_leak.patch \ patches/openjdk/6963811-deadlock_fix.patch \ diff -r 5254d96fe90f -r a08f636892a8 patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch Mon Apr 22 17:13:26 2013 -0400 @@ -0,0 +1,54 @@ +diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java +--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-22 12:42:32.138748378 -0400 ++++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-22 12:41:36.033419998 -0400 +@@ -44,7 +44,7 @@ + * @author Santiago.PericasGeertsen at sun.com + */ + class FactoryFinder { +- ++ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal"; + /** + * Internal debug flag. + */ +@@ -140,6 +140,14 @@ + static Object newInstance(String className, ClassLoader cl, boolean doFallback) + throws ConfigurationError + { ++ // make sure we have access to restricted packages ++ if (System.getSecurityManager() != null) { ++ if (className != null && className.startsWith(DEFAULT_PACKAGE)) { ++ cl = null; ++ useBSClsLoader = true; ++ } ++ } ++ + try { + Class providerClass = getProviderClass(className, cl, doFallback); + Object instance = providerClass.newInstance(); +Only in openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers: FactoryFinder.java.orig +diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java +--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java 2013-04-22 12:42:32.230748906 -0400 ++++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java 2013-04-22 12:41:41.268451218 -0400 +@@ -44,6 +44,7 @@ + * @author Santiago.PericasGeertsen at sun.com + */ + class FactoryFinder { ++ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xalan.internal."; + + /** + * Internal debug flag. +@@ -140,6 +141,14 @@ + static Object newInstance(String className, ClassLoader cl, boolean doFallback) + throws ConfigurationError + { ++ // make sure we have access to restricted packages ++ if (System.getSecurityManager() != null) { ++ if (className != null && className.startsWith(DEFAULT_PACKAGE)) { ++ cl = null; ++ useBSClsLoader = true; ++ } ++ } ++ + try { + Class providerClass = getProviderClass(className, cl, doFallback); + Object instance = providerClass.newInstance(); diff -r 5254d96fe90f -r a08f636892a8 patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch Mon Apr 22 17:13:26 2013 -0400 @@ -0,0 +1,298 @@ +diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java +--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-22 12:37:39.305820912 -0400 ++++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-22 12:28:52.947388255 -0400 +@@ -25,15 +25,12 @@ + + package javax.xml.parsers; + +-import java.io.File; +-import java.io.FileInputStream; +- +-import java.util.Properties; + import java.io.BufferedReader; ++import java.io.File; + import java.io.IOException; + import java.io.InputStream; + import java.io.InputStreamReader; +-import java.net.URL; ++import java.util.Properties; + + /** + *

    Implements pluggable Datatypes.

    +@@ -42,6 +39,7 @@ + * sync. It is package private for secure class loading.

    + * + * @author Santiago.PericasGeertsen at sun.com ++ * @author Huizhe.Wang at oracle.com + */ + class FactoryFinder { + +@@ -95,18 +93,24 @@ + * If the class loader supplied is null, first try using the + * context class loader followed by the current (i.e. bootstrap) class + * loader. ++ * ++ * Use bootstrap classLoader if cl = null and useBSClsLoader is true + */ + static private Class getProviderClass(String className, ClassLoader cl, +- boolean doFallback) throws ClassNotFoundException ++ boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException + { + try { + if (cl == null) { +- cl = ss.getContextClassLoader(); +- if (cl == null) { +- throw new ClassNotFoundException(); +- } +- else { +- return cl.loadClass(className); ++ if (useBSClsLoader) { ++ return Class.forName(className, true, FactoryFinder.class.getClassLoader()); ++ } else { ++ cl = ss.getContextClassLoader(); ++ if (cl == null) { ++ throw new ClassNotFoundException(); ++ } ++ else { ++ return cl.loadClass(className); ++ } + } + } + else { +@@ -131,8 +135,8 @@ + * @param className Name of the concrete class corresponding to the + * service provider + * +- * @param cl ClassLoader to use to load the class, null means to use +- * the bootstrap ClassLoader ++ * @param cl ClassLoader used to load the factory class. If null ++ * current Thread's context classLoader is used to load the factory class. + * + * @param doFallback True if the current ClassLoader should be tried as + * a fallback if the class is not found using cl +@@ -140,8 +144,30 @@ + static Object newInstance(String className, ClassLoader cl, boolean doFallback) + throws ConfigurationError + { ++ return newInstance(className, cl, doFallback, false); ++ } ++ ++ /** ++ * Create an instance of a class. Delegates to method ++ * getProviderClass() in order to load the class. ++ * ++ * @param className Name of the concrete class corresponding to the ++ * service provider ++ * ++ * @param cl ClassLoader used to load the factory class. If null ++ * current Thread's context classLoader is used to load the factory class. ++ * ++ * @param doFallback True if the current ClassLoader should be tried as ++ * a fallback if the class is not found using cl ++ * ++ * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter ++ * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader. ++ */ ++ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) ++ throws ConfigurationError ++ { + try { +- Class providerClass = getProviderClass(className, cl, doFallback); ++ Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); + Object instance = providerClass.newInstance(); + if (debug) { // Extra check to avoid computing cl strings + dPrint("created new instance of " + providerClass + +@@ -244,6 +270,7 @@ + + // First try the Context ClassLoader + ClassLoader cl = ss.getContextClassLoader(); ++ boolean useBSClsLoader = false; + if (cl != null) { + is = ss.getResourceAsStream(cl, serviceId); + +@@ -251,11 +278,13 @@ + if (is == null) { + cl = FactoryFinder.class.getClassLoader(); + is = ss.getResourceAsStream(cl, serviceId); ++ useBSClsLoader = true; + } + } else { + // No Context ClassLoader, try the current ClassLoader + cl = FactoryFinder.class.getClassLoader(); + is = ss.getResourceAsStream(cl, serviceId); ++ useBSClsLoader = true; + } + + if (is == null) { +@@ -293,7 +322,7 @@ + // ClassLoader because we want to avoid the case where the + // resource file was found using one ClassLoader and the + // provider class was instantiated using a different one. +- return newInstance(factoryClassName, cl, false); ++ return newInstance(factoryClassName, cl, false, useBSClsLoader); + } + + // No provider found +diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java +--- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java 2013-04-22 12:37:39.312820966 -0400 ++++ openjdk.new/jaxp/drop_included/jaxp_src/src/javax/xml/transform/FactoryFinder.java 2013-04-22 12:35:08.715478293 -0400 +@@ -25,15 +25,12 @@ + + package javax.xml.transform; + +-import java.io.File; +-import java.io.FileInputStream; +- +-import java.util.Properties; + import java.io.BufferedReader; ++import java.io.File; + import java.io.IOException; + import java.io.InputStream; + import java.io.InputStreamReader; +-import java.net.URL; ++import java.util.Properties; + + /** + *

    Implements pluggable Datatypes.

    +@@ -42,6 +39,7 @@ + * sync. It is package private for secure class loading.

    + * + * @author Santiago.PericasGeertsen at sun.com ++ * @author Huizhe.Wang at oracle.com + */ + class FactoryFinder { + +@@ -95,18 +93,24 @@ + * If the class loader supplied is null, first try using the + * context class loader followed by the current (i.e. bootstrap) class + * loader. ++ * ++ * Use bootstrap classLoader if cl = null and useBSClsLoader is true + */ + static private Class getProviderClass(String className, ClassLoader cl, +- boolean doFallback) throws ClassNotFoundException ++ boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException + { + try { + if (cl == null) { +- cl = ss.getContextClassLoader(); +- if (cl == null) { +- throw new ClassNotFoundException(); +- } +- else { +- return cl.loadClass(className); ++ if (useBSClsLoader) { ++ return Class.forName(className, true, FactoryFinder.class.getClassLoader()); ++ } else { ++ cl = ss.getContextClassLoader(); ++ if (cl == null) { ++ throw new ClassNotFoundException(); ++ } ++ else { ++ return cl.loadClass(className); ++ } + } + } + else { +@@ -131,8 +135,8 @@ + * @param className Name of the concrete class corresponding to the + * service provider + * +- * @param cl ClassLoader to use to load the class, null means to use +- * the bootstrap ClassLoader ++ * @param cl ClassLoader used to load the factory class. If null ++ * current Thread's context classLoader is used to load the factory class. + * + * @param doFallback True if the current ClassLoader should be tried as + * a fallback if the class is not found using cl +@@ -140,8 +144,30 @@ + static Object newInstance(String className, ClassLoader cl, boolean doFallback) + throws ConfigurationError + { ++ return newInstance(className, cl, doFallback, false); ++ } ++ ++ /** ++ * Create an instance of a class. Delegates to method ++ * getProviderClass() in order to load the class. ++ * ++ * @param className Name of the concrete class corresponding to the ++ * service provider ++ * ++ * @param cl ClassLoader used to load the factory class. If null ++ * current Thread's context classLoader is used to load the factory class. ++ * ++ * @param doFallback True if the current ClassLoader should be tried as ++ * a fallback if the class is not found using cl ++ * ++ * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter ++ * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader. ++ */ ++ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) ++ throws ConfigurationError ++ { + try { +- Class providerClass = getProviderClass(className, cl, doFallback); ++ Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader); + Object instance = providerClass.newInstance(); + if (debug) { // Extra check to avoid computing cl strings + dPrint("created new instance of " + providerClass + +@@ -182,7 +208,7 @@ + String systemProp = ss.getSystemProperty(factoryId); + if (systemProp != null) { + dPrint("found system property, value=" + systemProp); +- return newInstance(systemProp, null, true); ++ return newInstance(systemProp, null, true, false); + } + } + catch (SecurityException se) { +@@ -210,7 +236,7 @@ + + if (factoryClassName != null) { + dPrint("found in $java.home/jaxp.properties, value=" + factoryClassName); +- return newInstance(factoryClassName, null, true); ++ return newInstance(factoryClassName, null, true, false); + } + } + catch (Exception ex) { +@@ -228,7 +254,7 @@ + } + + dPrint("loaded from fallback value: " + fallbackClassName); +- return newInstance(fallbackClassName, null, true); ++ return newInstance(fallbackClassName, null, true, false); + } + + /* +@@ -244,6 +270,7 @@ + + // First try the Context ClassLoader + ClassLoader cl = ss.getContextClassLoader(); ++ boolean useBSClsLoader = false; + if (cl != null) { + is = ss.getResourceAsStream(cl, serviceId); + +@@ -251,11 +278,13 @@ + if (is == null) { + cl = FactoryFinder.class.getClassLoader(); + is = ss.getResourceAsStream(cl, serviceId); +- } ++ useBSClsLoader = true; ++ } + } else { + // No Context ClassLoader, try the current ClassLoader + cl = FactoryFinder.class.getClassLoader(); + is = ss.getResourceAsStream(cl, serviceId); ++ useBSClsLoader = true; + } + + if (is == null) { +@@ -293,7 +322,7 @@ + // ClassLoader because we want to avoid the case where the + // resource file was found using one ClassLoader and the + // provider class was instantiated using a different one. +- return newInstance(factoryClassName, cl, false); ++ return newInstance(factoryClassName, cl, false, useBSClsLoader); + } + + // No provider found diff -r 5254d96fe90f -r a08f636892a8 patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch --- a/patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch Fri Apr 19 14:38:19 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ -diff -ur openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java openjdk.new/jaxp/openjdk/jaxp/drop_included_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java ---- openjdk/jaxp/drop_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-19 12:18:45.225000000 -0400 -+++ openjdk.new/jaxp/openjdk/jaxp/drop_included_included/jaxp_src/src/javax/xml/parsers/FactoryFinder.java 2013-04-19 11:53:01.791879226 -0400 -@@ -25,15 +25,12 @@ - - package javax.xml.parsers; - --import java.io.File; --import java.io.FileInputStream; -- --import java.util.Properties; - import java.io.BufferedReader; -+import java.io.File; - import java.io.IOException; - import java.io.InputStream; - import java.io.InputStreamReader; --import java.net.URL; -+import java.util.Properties; - - /** - *

    Implements pluggable Datatypes.

    -@@ -42,9 +39,10 @@ - * sync. It is package private for secure class loading.

    - * - * @author Santiago.PericasGeertsen at sun.com -+ * @author Huizhe.Wang at oracle.com - */ - class FactoryFinder { -- -+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal"; - /** - * Internal debug flag. - */ -@@ -95,18 +93,24 @@ - * If the class loader supplied is null, first try using the - * context class loader followed by the current (i.e. bootstrap) class - * loader. -+ * -+ * Use bootstrap classLoader if cl = null and useBSClsLoader is true - */ - static private Class getProviderClass(String className, ClassLoader cl, -- boolean doFallback) throws ClassNotFoundException -+ boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException - { - try { - if (cl == null) { -- cl = ss.getContextClassLoader(); -- if (cl == null) { -- throw new ClassNotFoundException(); -- } -- else { -- return cl.loadClass(className); -+ if (useBSClsLoader) { -+ return Class.forName(className, true, FactoryFinder.class.getClassLoader()); -+ } else { -+ cl = ss.getContextClassLoader(); -+ if (cl == null) { -+ throw new ClassNotFoundException(); -+ } -+ else { -+ return cl.loadClass(className); -+ } - } - } - else { -@@ -131,8 +135,8 @@ - * @param className Name of the concrete class corresponding to the - * service provider - * -- * @param cl ClassLoader to use to load the class, null means to use -- * the bootstrap ClassLoader -+ * @param cl ClassLoader used to load the factory class. If null -+ * current Thread's context classLoader is used to load the factory class. - * - * @param doFallback True if the current ClassLoader should be tried as - * a fallback if the class is not found using cl -@@ -140,8 +144,38 @@ - static Object newInstance(String className, ClassLoader cl, boolean doFallback) - throws ConfigurationError - { -+ return newInstance(className, cl, doFallback, false); -+ } -+ -+ /** -+ * Create an instance of a class. Delegates to method -+ * getProviderClass() in order to load the class. -+ * -+ * @param className Name of the concrete class corresponding to the -+ * service provider -+ * -+ * @param cl ClassLoader used to load the factory class. If null -+ * current Thread's context classLoader is used to load the factory class. -+ * -+ * @param doFallback True if the current ClassLoader should be tried as -+ * a fallback if the class is not found using cl -+ * -+ * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter -+ * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader. -+ */ -+ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader) -+ throws ConfigurationError -+ { -+ // make sure we have access to restricted packages -+ if (System.getSecurityManager() != null) { -+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) { From jvanek at redhat.com Mon Apr 22 23:10:05 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 08:10:05 +0200 Subject: [rfc][icedtea-web] Strip parameters from document-base In-Reply-To: <5175A618.2030208@redhat.com> References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com> <515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com> <515F009D.2080108@redhat.com> <515F066A.7060005@redhat.com> <5165B73F.9000909@redhat.com> <5175A618.2030208@redhat.com> Message-ID: <517625BD.1070607@redhat.com> On 04/22/2013 11:05 PM, Adam Domurad wrote: > Ping. > > On 04/10/2013 03:02 PM, Adam Domurad wrote: >> [ .. original message snipped ..] >> >> Sorry for the confusion. I spent a bit of time creating a reproducer and investigating why we were different from the proprietary plugin to begin with. >> >> I have finally found the real reason for the troubles & inconsistency here, the basic fix is: >> >>> diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java b/plugin/i >>> --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >>> +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >>> @@ -439,8 +439,7 @@ public class PluginAppletViewer extends >>> String height = msgParts[2]; >>> >>> int spaceLocation = message.indexOf(' ', "tag".length() + 1); >>> - String documentBase = >>> - UrlUtil.decode(message.substring("tag".length() + 1, spaceLocat >>> + String documentBase = message.substring("tag".length() + 1, spaceLocati >>> String paramString = message.substring(spaceLocation + 1); >>> >>> PluginDebug.debug("Handle = ", handle, "\n", >> >> >> And we're 100% compatible with proprietary plugin, and aren't storing invalid URLs. The only remaining fix-up was ... >> >>> diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> @@ -390,7 +390,7 @@ public class ResourceTracker { >>> return resource.localFile; >>> >>> if (location.getProtocol().equalsIgnoreCase("file")) { >>> - File file = new File(location.getFile()); >>> + File file = new File(location.toURI().getPath()); >>> if (file.exists()) >>> return file; >>> } >>> @@ -401,6 +401,9 @@ public class ResourceTracker { >>> ex.printStackTrace(); >>> >>> return null; // need an error exception to throw >>> + } catch (URISyntaxException e) { >>> + e.printStackTrace(); >>> + return null; >>> } >>> } >> >> Which works around a bad mis-design of URL#getFile() which does not decode the URL. This only applies to local files. URL#getFile() should be avoided, I think. >> >> Fix ChangeLog: >> 2013-XX-XX Adam Domurad >> >> Ensure document-base is properly encoded. >> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> (getCacheFile): Use URL#toUri().getPath() instead of URL#getFile(). >> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> (handleInitializationMessage): Don't decode document-base. >> >> Reproducer ChangeLog: >> 2013-XX-XX Adam Domurad >> >> Reproducer for URL parameters (eg ?a=b) in document-base. >> * tests/reproducers/simple/URLParametersInDocumentBase/resources/URLParametersInDocumentBase.html: >> Page that loads applet. >> * tests/reproducers/simple/URLParametersInDocumentBase/srcs/URLParametersInDocumentBase.java: >> Applet that prints code-base & document-base. >> * tests/reproducers/simple/URLParametersInDocumentBase/testcases/URLParametersInDocumentBaseTests.java: >> Test-driver. >> >> The UrlUtils patch is not strictly necessary any more, but I'd still like it in (it is unaffected by the changes). It can be just in HEAD though. >> >> Please note that I strongly want the fix in 1.3 since without it one cannot use Oracle LMS. >> >> Thanks, >> -Adam > Acked. I have already acked ago, but it have to got lsot. Thank you for ping! From jvanek at redhat.com Mon Apr 22 23:15:03 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 08:15:03 +0200 Subject: [rfc][icedtea-web] Ensure JarFile handles do not leak, introduce closeSilently utility In-Reply-To: <5175A602.9080304@redhat.com> References: <511ABA6D.3080204@redhat.com> <511BC2C2.90208@redhat.com> <515169D3.1090407@redhat.com> <5175A602.9080304@redhat.com> Message-ID: <517626E7.8020003@redhat.com> On 04/22/2013 11:05 PM, Adam Domurad wrote: > On 03/26/2013 05:26 AM, Jiri Vanek wrote: >> On 02/13/2013 05:43 PM, Adam Domurad wrote: >>> On 02/12/2013 04:55 PM, Adam Domurad wrote: >>>> This squelches some Eclipse warnings. >>>> >>>>> 2013-XX-XX Adam Domurad >>>>> >>>>> Ensure JarFile handles do not leak. >>>>> * netx/net/sourceforge/jnlp/util/StreamUtils.java: >>>>> New, introduces 'closeSilently'. Ignores nulls & exceptions when >>>>> closing. >>>>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>>>> Ensure StreamUtils.closeSilently or close is called for each >>>>> JarFile. >>> >>> OK that patch had a bug in it, and was probably too paranoid. This ones better. >>> >>> Turns out JNLPClassLoader already had a closeStreams utility function. >>> >>> 2013-XX-XX Adam Domurad >>> >>> Ensure JarFile handles do not leak. >>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>> Ensure close is called for each JarFile. >>> >>> >> >> Idea is good and I'm ok with it after two things are fixed >> >> 1) can we have an reproducer/test for this? > > Reproducer is more or less impossible. Unit tests attached (first unit-tests for JNLPClassLoader!!). > Note that they are heavily unix-specific. > > One note about reproducers: They may seem to mostly succeed, but as long as there is one failure this is difficult to say. Once the file leaks in JNLPClassLoader the rest use the same file descriptor, so there is no further leak. I have verified that each test is able to catch the resulting leak, if not for the caching. > > ChangeLog: > 2013-XX-XX Adam Domurad > > * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: > New, JNLPClassLoader unit tests for (checkForMain), (getMainClassName), > (activateNativeJar), and (isInvalidJar). Checks for file descriptor > leaks. > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > (isInvalidJar): Change to default visibility for testing purposes. > (checkForMain): Same. > (getMainClassName): Same. > >>> closeJarFiles2.patch >>> >>> >>> diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>> @@ -812,6 +812,8 @@ public class JNLPClassLoader extends URL >>> break; >>> } >>> } >>> + >>> + jarFile.close(); >>> } catch (IOException e) { >>> /* >>> * After this exception is caught, it is escaped. This will skip >>> @@ -834,12 +836,15 @@ public class JNLPClassLoader extends URL >>> File f = tracker.getCacheFile(location); >>> >>> if( f != null) { >>> + JarFile mainJar = null; >>> try { >>> - JarFile mainJar = new JarFile(f); >>> + mainJar = new JarFile(f); >>> mainClass = mainJar.getManifest(). >>> getMainAttributes().getValue("Main-Class"); >>> } catch (IOException ioe) { >>> mainClass = null; >>> + } finally { >>> + closeStream(mainJar); >> >> 2)This have not compiled in head. The method do not exists.... >> If this is doing something similar to StreamUtils.closeSilently then I'm ok with it. But have to compile...I not found it ;( >> >> Also StreamUtils.closeSilently(mainJar); > > This indeed is what needs to be done and really should compile fine. > I will fix it (ie change this one line to this) before pushing. > >> have not compiled... :( >>> } >>> } >>> >>> @@ -1269,6 +1274,7 @@ public class JNLPClassLoader extends URL >>> jarEntries.add(je.getName()); >>> } >>> >>> + jarFile.close(); >>> } >>> >>> addURL(jar.getLocation()); >>> @@ -1292,6 +1298,8 @@ public class JNLPClassLoader extends URL >>> JarIndex index = JarIndex.getJarIndex(jarFile, null); >>> if (index != null) >>> jarIndexes.add(index); >>> + >>> + jarFile.close(); >>> } else { >>> CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); >>> } >>> @@ -1365,6 +1373,7 @@ public class JNLPClassLoader extends URL >>> new FileOutputStream(outFile)); >>> >>> } >>> + jarFile.close(); >> >> Just thinking about - why not to finally block too? To verbose? To rare? > > Too rare; not worth the resulting inelegance in my opinion. > >> /me do not insists, just thinking >>> } catch (IOException ex) { >>> if (JNLPRuntime.isDebug()) >>> ex.printStackTrace(); >> >> Thanx for check! >> J. > > Happy hacking, > -Adam I must say I have a lot to learn from this testcase! Thank you for both patch and test. Acked. From jvanek at redhat.com Mon Apr 22 23:28:34 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 08:28:34 +0200 Subject: [rfc][icedtea-web] Ensure JarFile handles do not leak, introduce closeSilently utility In-Reply-To: <517626E7.8020003@redhat.com> References: <511ABA6D.3080204@redhat.com> <511BC2C2.90208@redhat.com> <515169D3.1090407@redhat.com> <5175A602.9080304@redhat.com> <517626E7.8020003@redhat.com> Message-ID: <51762A12.6080704@redhat.com> On 04/23/2013 08:15 AM, Jiri Vanek wrote: > On 04/22/2013 11:05 PM, Adam Domurad wrote: >> On 03/26/2013 05:26 AM, Jiri Vanek wrote: >>> On 02/13/2013 05:43 PM, Adam Domurad wrote: >>>> On 02/12/2013 04:55 PM, Adam Domurad wrote: >>>>> This squelches some Eclipse warnings. >>>>> >>>>>> 2013-XX-XX Adam Domurad >>>>>> >>>>>> Ensure JarFile handles do not leak. >>>>>> * netx/net/sourceforge/jnlp/util/StreamUtils.java: >>>>>> New, introduces 'closeSilently'. Ignores nulls & exceptions when >>>>>> closing. >>>>>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>>>>> Ensure StreamUtils.closeSilently or close is called for each >>>>>> JarFile. >>>> >>>> OK that patch had a bug in it, and was probably too paranoid. This ones better. >>>> >>>> Turns out JNLPClassLoader already had a closeStreams utility function. >>>> >>>> 2013-XX-XX Adam Domurad >>>> >>>> Ensure JarFile handles do not leak. >>>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>>> Ensure close is called for each JarFile. >>>> >>>> >>> >>> Idea is good and I'm ok with it after two things are fixed >>> >>> 1) can we have an reproducer/test for this? >> >> Reproducer is more or less impossible. Unit tests attached (first unit-tests for JNLPClassLoader!!). >> Note that they are heavily unix-specific. >> >> One note about reproducers: They may seem to mostly succeed, but as long as there is one failure this is difficult to say. Once the file leaks in JNLPClassLoader the rest use the same file descriptor, so there is no further leak. I have verified that each test is able to catch the resulting leak, if not for the caching. >> >> ChangeLog: >> 2013-XX-XX Adam Domurad >> >> * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: >> New, JNLPClassLoader unit tests for (checkForMain), (getMainClassName), >> (activateNativeJar), and (isInvalidJar). Checks for file descriptor >> leaks. >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> (isInvalidJar): Change to default visibility for testing purposes. >> (checkForMain): Same. >> (getMainClassName): Same. >> >>>> closeJarFiles2.patch >>>> >>>> >>>> diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>>> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>>> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >>>> @@ -812,6 +812,8 @@ public class JNLPClassLoader extends URL >>>> break; >>>> } >>>> } >>>> + >>>> + jarFile.close(); >>>> } catch (IOException e) { >>>> /* >>>> * After this exception is caught, it is escaped. This will skip >>>> @@ -834,12 +836,15 @@ public class JNLPClassLoader extends URL >>>> File f = tracker.getCacheFile(location); >>>> >>>> if( f != null) { >>>> + JarFile mainJar = null; >>>> try { >>>> - JarFile mainJar = new JarFile(f); >>>> + mainJar = new JarFile(f); >>>> mainClass = mainJar.getManifest(). >>>> getMainAttributes().getValue("Main-Class"); >>>> } catch (IOException ioe) { >>>> mainClass = null; >>>> + } finally { >>>> + closeStream(mainJar); >>> >>> 2)This have not compiled in head. The method do not exists.... >>> If this is doing something similar to StreamUtils.closeSilently then I'm ok with it. But have to compile...I not found it ;( >>> >>> Also StreamUtils.closeSilently(mainJar); >> >> This indeed is what needs to be done and really should compile fine. >> I will fix it (ie change this one line to this) before pushing. >> >>> have not compiled... :( >>>> } >>>> } >>>> >>>> @@ -1269,6 +1274,7 @@ public class JNLPClassLoader extends URL >>>> jarEntries.add(je.getName()); >>>> } >>>> >>>> + jarFile.close(); >>>> } >>>> >>>> addURL(jar.getLocation()); >>>> @@ -1292,6 +1298,8 @@ public class JNLPClassLoader extends URL >>>> JarIndex index = JarIndex.getJarIndex(jarFile, null); >>>> if (index != null) >>>> jarIndexes.add(index); >>>> + >>>> + jarFile.close(); >>>> } else { >>>> CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); >>>> } >>>> @@ -1365,6 +1373,7 @@ public class JNLPClassLoader extends URL >>>> new FileOutputStream(outFile)); >>>> >>>> } >>>> + jarFile.close(); >>> >>> Just thinking about - why not to finally block too? To verbose? To rare? >> >> Too rare; not worth the resulting inelegance in my opinion. >> >>> /me do not insists, just thinking >>>> } catch (IOException ex) { >>>> if (JNLPRuntime.isDebug()) >>>> ex.printStackTrace(); >>> >>> Thanx for check! >>> J. >> >> Happy hacking, >> -Adam > > I must say I have a lot to learn from this testcase! > Thank you for both patch and test. > Acked. ah one nit: no System.*.println, please - use logging which is already in ITW. Imho for cleanExec you can log (without reprint) all the output stream. Can be usefull... From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 00:52:45 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 07:52:45 +0000 Subject: [Bug 1299] WebStart doesn't read socket proxy settings from firefox correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1299 --- Comment #1 from Jozef Hovan --- Still not fixed? -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/5e4421eb/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 01:13:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 08:13:59 +0000 Subject: [Bug 1409] New: IcedTea 2.3.9 fails to build Zero due to -Werror Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1409 Bug ID: 1409 Summary: IcedTea 2.3.9 fails to build Zero due to -Werror Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: sera at gentoo.org CC: unassigned at icedtea.classpath.org IcedTea 2.3.9 fails to build Zero due to -Werror, see build.log. Only Zero is affected which is using an alternative Hotspot build. Note, --disable-Werror is specified at configure time. Thanks -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/61a9587b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 01:31:14 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 08:31:14 +0000 Subject: [Bug 1410] New: Icedtea 2.3.9 fails to build using icedtea 1.12.4 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1410 Bug ID: 1410 Summary: Icedtea 2.3.9 fails to build using icedtea 1.12.4 Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: sera at gentoo.org CC: unassigned at icedtea.classpath.org Created attachment 863 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=863&action=edit build.log Trying to build icedtea 2.3.9 fails when using 1.12.4 with: zip I/O error: No such file or directory zip error: Could not create output file (/var/tmp/paludis/dev-java-icedtea-7.2.3.9/work/icedtea-2.3.9/bootstrap/boot/jre/lib/rt.jar) make: *** [stamps/rt.stamp] Error 1 See attached build.log. Thanks. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/1f528a1a/attachment.html From jvanek at redhat.com Tue Apr 23 04:02:10 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 13:02:10 +0200 Subject: [rfc][icedtea-web] Rewrite of MethodOverloadResolver In-Reply-To: <517111AF.2070602@redhat.com> References: <50CB8F6E.8060207@redhat.com> <50EDCD84.1030104@redhat.com> <50F55DA9.2020608@redhat.com> <50F58054.3030905@redhat.com> <517111AF.2070602@redhat.com> Message-ID: <51766A32.9020002@redhat.com> On 04/19/2013 11:43 AM, Jiri Vanek wrote: > On 01/15/2013 05:14 PM, Adam Domurad wrote: >> On 01/15/2013 08:46 AM, Jiri Vanek wrote: >>> On 01/09/2013 09:05 PM, Adam Domurad wrote: >>>> On 12/14/2012 03:43 PM, Adam Domurad wrote: >>>>> Thought I'd do a simple patch to turn the test code embedded in MethodOverloadResolver into a a >>>>> proper unit test ... unfortunately, my small look into this class lead me to find many subtle bugs >>>>> -- and coincidentally decide to do it properly. Lots of corner cases covered, and it could >>>>> probably use unit tests even still, but its a major improvement and I'm a bit tired of looking at >>>>> it so I'm posting it. >>>>> >>>>> Some broken things I uncovered included improper overloading order, method/argument situations >>>>> that would error-out if they ever occurred (but were valid), and the fact that the JSObject used >>>>> throughout the class was actually a dummy value used at the bottom of the class. The code was also >>>>> made a lot cleaner in the process, in the interest of 'doing it right' while fixing it. >>>>> ChangeLog: >>>>> 2012-12-14 Adam Domurad >>>>> >>>>> Rewrite of MethodOverloadResolver with detailed unittests. >>>>> * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: >>>>> Rewritten to reduce duplicated code, fix very subtle bugs in >>>>> never-tested codepaths, obey spec properly. Introduced new helper types >>>>> where Object[] arrays with special-meaning positions were passed >>>>> around. >>>>> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >>>>> Updated to work with newly introduced types / refactored overload >>>>> resolver. >>>>> * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: In-depth >>>>> unit tests of hairy details of method overloading in JS<->Java. >>>>> >>>>> >>>> Ping? >>>> -Adam >>> >>> Although I really like this patch as it is making MethodOverloadResolver much more readable and better, there is no significant *visible* improvement (according to Jana's tests). Also I was unable to review it properly - as it was de facto replacement. >>> >>> Unless you+jana will find some improvement in (at least) liveconect test or similar, then I must revoke this patch. >>> >>> If no "proof" will be found by you and jana, then I would like to get this into head by small (reviewable) steps accompanied by unit/reproducer tests. >>> >>> Sorry for troubles >>> J. >> >> Just to be clear - I believe many fixed cases are visible in the unit tests. However these are difficult to determine because they were written against the new MethodOverloadResolver. Especially like I pointed out, JSObject was resolving to the completely wrong class. There were certain cases where exceptions would be thrown merely if a certain overload was present. If this is the issue, we can get more of these cases into the reproducers, but I do think there were a number of them. I'll work with Jana on this one. >> >> -Adam > This get lost athe end? I have Speaked with jana - Not sure if then there was some private conversation, but AFAIK, this is ok acked :) From jvanek at redhat.com Tue Apr 23 04:03:16 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 13:03:16 +0200 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <517030E8.2000709@redhat.com> References: <50F5898A.40108@redhat.com> <515EF947.8090104@redhat.com> <515F1315.7080805@redhat.com> <5162C379.3030202@redhat.com> <517030E8.2000709@redhat.com> Message-ID: <51766A74.3070100@redhat.com> On 04/18/2013 07:44 PM, Adam Domurad wrote: > On 04/08/2013 09:17 AM, Jiri Vanek wrote: >> On 04/05/2013 08:08 PM, Adam Domurad wrote: >>> On 04/05/2013 12:18 PM, Jiri Vanek wrote: >>>> On 01/15/2013 05:53 PM, Adam Domurad wrote: >>>>> This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D furniture dragging. >>>>> >>>>> I'll preface by saying, I'm not particularly fond of the changes in this patch, but they have to >>>>> be done to fix JNLP applications that load resources on the Swing thread, like eg SweetHome3D. >>>>> >>>>> The patch adds a flag to JNLPClassLoader that specifies whether it has been initialized. The >>>>> default for getInstance remains the same, it grabs an initialized JNLPClassLoader. However an >>>>> alternate getInstance was added to be able to grab JNLPClassLoader that hasn't been fully >>>>> initialized. >>>>> >>>>> The problem with initialization: >>>>> - To create AppContext we need JNLPClassLoader object constructed >>>>> - To construct JNLPClassLoader we must initialize it >>>>> - Initializing JNLPClassLoader implies downloading all resources, and updating Swing components >>>>> >>>>> However, we cannot update swing components before we create our AppContext, or the result will be >>>>> a mess (eg unclickable popups). >>>>> In essence, it's a bootstrapping problem. So the patch makes it possible to get a constructed >>>>> JNLPClassLoader, which is initialized in a separate step. >>>>> >>>>> What else was tried ? >>>>> The only other option is to set the context classloader to some other classloader. A proxy >>>>> classloader can be created that initially points to the system classloader, but can be set to >>>>> JNLPClassLoader after it is created. Determined too much of a hack, and getParent cannot be >>>>> properly proxied. >>>>> >>>>> Basically with this patch, the life-time of the context classloaders for each thread is: >>>>> 1. By default system classloader is context classloader. >>>>> 2. Create new AppContext, capture JNLPClassLoader that isn't yet valid. Ensure we keep using >>>>> system classloader as context classloader for all threads. >>>>> 3. Initialize JNLPClassLoader. Before start of applet, ensure all threads context classloaders >>>>> are set to (now initialized) JNLPClassLoader. >>>>> >>>>> Recommendations welcome -- it was a lot of deliberation before I decided to take this route. If >>>>> someone has a simpler/cleaner solution than by all means suggest it! >>>>> >>>>> Reproducer changelog: >>>>> 2013-XX-XX Adam Domurad >>>>> >>>>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: >>>>> Test AppContext context classloader from HTML applet >>>>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: >>>>> Test AppContext context classloader from JNLP application >>>>> * >>>>> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: >>>>> >>>>> Test AppContext context classloader from JNLP applet >>>>> * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: >>>>> Print out context classloader for thread & AppContext, for >>>>> current thread & Swing thread. >>>>> * >>>>> tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: >>>>> >>>>> Test runner for AppContextHasJNLPClassLoader >>>>> >>>>> REPRODUCER NOTES: >>>>> This exposes an additional bug in JNLP applets. start/init incorrectly runs on the Swing thread, >>>>> and invokeAndWait hangs forever. I'm not sure how this wasn't caught, but the JNLP applet >>>>> reproducer is broken pending a separate bug fix. >>>>> >>>>> Fixes changelog: >>>>> 2013-XX-XX Adam Domurad >>>>> >>>>> Fix PR1251: AppContext has wrong context classloader >>>>> * netx/net/sourceforge/jnlp/Launcher.java: >>>>> Remove unused context flag. Make new AppContext capture not-yet- >>>>> initialized JNLPClassLoader. >>>>> * netx/net/sourceforge/jnlp/NetxPanel.java: >>>>> Move PluginBridge initialization into constructor. >>>>> Make new AppContext capture not-yet-initialized JNLPClassLoader. >>>>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >>>>> Add initialization flag. Move part of constructor into initialize >>>>> method. Modify getInstance to allow temporarily bypassing >>>>> initialization. >>>>> * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java >>>>> (createAppContext): New, creates an AppContext that captures the given >>>>> (not necessarily yet valid) >>>>> >>>>> -Adam >>>> >>>> >>>> The reproducer have to go in with your new patch. >>>> It should go both to 1.4 and to head (with proper known to fail). >>>> But needs fixing - missing @TestInBrowser annotation is quite crucial :) >>>> >>>> Without patch, all three failed (but thebrowser test because of unset browser) >>>> >>>> with patch (after fixing of annotation) >>>> Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext >>>> FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest) stdout should contains >>>> 'main-thread: thread context classloader == JNLPClassLoader', but did not >>>> - This test is known to fail >>> >>> Fixed >>> >>>> Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext - google-chrome >>>> >>>> >>>> Should the jnlp fial? ( i guess yes as it is mark as known), but have faile dto early: >>> >>> See http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 for why it is known-to-fail >>> >>>> >>>> /* >>>> Connecting /home/jvanek/icedtea-web-image/bin/javaws >>>> http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp >>>> >>>> Fri Apr 05 18:10:40 CEST 2013 >>>> >>>> net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680) >>>> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589) >>>> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550) >>>> AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86) >>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) >>>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162) >>>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137) >>>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106) >>>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58) >>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >>>> org.junit.runners.ParentRunner.run(ParentRunner.java:236) >>>> org.junit.runners.Suite.runChild(Suite.java:128) >>>> org.junit.runners.Suite.runChild(Suite.java:24) >>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >>>> org.junit.runners.ParentRunner.run(ParentRunner.java:236) >>>> org.junit.runner.JUnitCore.run(JUnitCore.java:157) >>>> org.junit.runner.JUnitCore.run(JUnitCore.java:136) >>>> org.junit.runner.JUnitCore.run(JUnitCore.java:117) >>>> CommandLine.runMain(CommandLine.java:49) >>>> CommandLine.runMainAndExit(CommandLine.java:28) >>>> CommandLine.main(CommandLine.java:24) >>>> >>>> and now the important one: */ >>>> >>>> Attempted to download http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp, but >>>> failed to connect! >>>> netx: Read Error: Could not read or parse the JNLP file. >>>> (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp) >>>> >>>> reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader* >>>> -rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10 AppContextHasJNLPClassLoaderForJNLPApplet.jnlp >>>> -rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10 AppContextHasJNLPClassLoader.html >>>> -rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08 AppContextHasJNLPClassLoader.jar >>>> -rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10 AppConte >> >> xtHasJNLPClassLoader.jnlp >>>> >>>> Wrong name perhaps? >>> >>> Fixed >>> >>>> >>>> J. >>>> >>>> >>>> Anyway why was the review of initial patch[1] abandoned? >>>> [1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader - in january 2013 >>> >>> I spent a while on it struggling with the correct design before I started working on other things. I >>> still intend to get back to it, but the initial patch & approach I worked on was rejected. I still >>> need to come up with a good way to approach this; it isn't trivial. >>> >> >> Ach, one more improvemnt - sorry for late notice. Can you add closing listeners for browser tests for case of success? > > It already has one, unless I misunderstand you. (It has an auto-closer, anyway.) > >> With it it can go to 1.4 with your sweet home patch. But for head should be all methods as knonwToFial. You can add link to @Bug to the 1.4 hack push to keep line between head and 1.4. >> >> Please send to one more round both for 1.4 and head when time will come. >> >> J > > I'll add @KnownToFail before I push. > Ok then. hank you. > Happy hacking, > -Adam From jvanek at redhat.com Tue Apr 23 04:54:06 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 13:54:06 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5175885E.6010709@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> Message-ID: <5176765E.8040702@redhat.com> On 04/22/2013 08:58 PM, Adam Domurad wrote: > Discussion fell off the list by accident, putting back. > > On 04/22/2013 01:49 PM, Jiri Vanek wrote: >> On 04/18/2013 06:45 PM, Adam Domurad wrote: >>> The test seems wrong to me, which needs to be clarified before we can >>> properly address if this is a problem. I don't see any case where >>> SecurityDesc could have a null file, and this is the code causing the >>> difference: >> >> the test is doing what it is doing - testing SecurityDesc with null >> file . > > See this mail thread: > http://permalink.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/19751 > > These tests were added without any use-case > > It seems the correct solution to the original problem (investigated by checking out commit 507, right before it) would have been to just get rid of the uses of null here. > > I am strongly in favour of reverting 508 or reworking the test to not check for the null jnlp files. NullJnlpFileException should be removed. > >> To be honest I'm not sure whether it is possible "in real live" or >> not... (Applets?... just first thought - anyway see the difference >> between jnlp and applet evaluation of test). > > No, applets do not have a null JNLPFile. See eg line 186 of PluginBridge (which extends JNLPFile). > >> And was passing and is failing and due : >> - boolean allSigned = true; >> + boolean allSigned = (loaders.length > 1) /* has >> extensions */; >> >> But you may be (probably are) correct that it could hide more hidden >> issue. >>> >>> } else if (signing == true) { >>> this.security = file.getSecurity(); >>> } else { >>> this.security = new SecurityDesc(file, >>> SecurityDesc.SANDBOX_PERMISSIONS, >>> codebase.getHost()); >>> >>> If it's signing, it carries on the null file, if not, it overwrites >>> with its own SecurityDesc. Am I missing something ? What does a >>> null-file signify ? Looking at the code-paths that create >>> SecurityDesc's it seems like it cannot happen. >> >> to cite you for remembering" >> > Without this change, applets that do not have an associated jar will >> always be considered signed. >> >> Sounds quite serious! >> >> > Thus they will always run regardless of unsigned applet trust setting. >> > What does the broken test indicate ? " >> >> Maybe the behaviour of test is now correct... But who can say .... >>> >>> There may still be an issue, however it would not have been >>> introduced by my code. >> bad luck, your code made it vissible. > > Surely not bad luck :-) > Anyway, I don't think there is an issue anymore. It seems like a bad test purely. > >>> >>> Thanks, >> >> >> If you are right, and null file is not possible, then I'm for throw >> launcherror from every place where it can be set. And adapt unittest >> to it.... > > A null file is not possible in any location it is setting -- mostly stemming from JNLPFile methods themselves where it is obviously not null. It appeared purely from mocks. > > I agree though: SecurityDesc should throw a NPE / argument exception if JNLPFile is ever null to prevent this in the future. We should eradicate it from the unit tests. > >> >> J. >> > > Happy hacking, > -Adam oook so something like this? -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedRegression.patch Type: text/x-patch Size: 4925 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/705bae6f/fixedRegression.patch From adomurad at redhat.com Tue Apr 23 06:29:48 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 09:29:48 -0400 Subject: [icedtea-web] RFC: Fix PR1299 In-Reply-To: <51143429.2040005@redhat.com> References: <511427C9.4020206@redhat.com> <51143429.2040005@redhat.com> Message-ID: <51768CCC.5000601@redhat.com> On 02/07/2013 06:09 PM, Adam Domurad wrote: > On 02/07/2013 05:16 PM, Omair Majid wrote: >> Hi, >> >> I would like to push this tiny fix for 1299. >> >> ChangeLog: >> >> 2013-02-07 Omair Majid >> >> PR1299 >> * NEWS: Update with fix >> * netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java >> (initFromBrowserConfig): Fix typo in socks proxy setting key. >> >> Thoughts? >> >> Thanks, >> Omair > > Was looking at this today actually :-), yes please do go on. AFAICS > this is indeed the correct property. > > Happy hacking, > -Adam Ping? It would be good to get this in before 1.4 branches. As far as I'm concerned it is push-ready. Thanks. -Adam From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 06:30:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 13:30:49 +0000 Subject: [Bug 1299] WebStart doesn't read socket proxy settings from firefox correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1299 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |adomurad at redhat.com --- Comment #2 from Adam Domurad --- Sorry! The fix was formally proposed[1] by Omair & accepted, however he became very busy shortly after. I have reminded him, thanks! [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-February/021800.html -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/7a71e8f3/attachment.html From jvanek at redhat.com Tue Apr 23 06:43:23 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 15:43:23 +0200 Subject: [rfc][icedtea-web] Minor NetxPanel clean-up In-Reply-To: <516DB894.6010607@redhat.com> References: <516DB894.6010607@redhat.com> Message-ID: <51768FFB.3080204@redhat.com> Well I was s unable to verify that this change is correct, so I have tried to find why it should be wrong. And I have found no evil done, so I'm for to push it. Jsut one funny thing to expalin maybe (although it is quite obvious from code): > (exitOnFailure): Remove always-false field. > - private boolean exitOnFailure = true; > - public NetxPanel(URL documentURL, PluginParameters params, > - boolean exitOnFailure) { > - this(documentURL, params); > - this.exitOnFailure = exitOnFailure; > - NetxPanel panel = new NetxPanel(doc, params, false); You probably do not know why i was initially added? Thanx for clean up J. On 04/16/2013 10:46 PM, Adam Domurad wrote: > This causes exceptions to be printed to console more clearly in two ways: > > 1. It does not swallow launch exceptions in NetxPanel#runLoader, and the launch exception is printed instead of a spurious NPE. > 2. It sets the applet status to an error status in the exception path, preventing from further applet loading code, which would thrown an exception. > > There is also some minor cleanup of a dead code path and a (quite) obsolete comment. > > 2013-XX-XX Adam Domurad > > * netx/net/sourceforge/jnlp/NetxPanel.java > (exitOnFailure): Remove always-false field. > (NetxPanel): Remove overloaded constructor > (runLoader): Do not swallow LaunchException's. Remove dead > exitOnFailure code-path. Set applet status to APPLET_ERROR on > exception. > * plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java > (createPanel): Update call to NetxPanel constructor. > > > Happy hacking, > -Adam > > > netx-panel-minor-cleanup.patch > > > diff --git a/netx/net/sourceforge/jnlp/NetxPanel.java b/netx/net/sourceforge/jnlp/NetxPanel.java > --- a/netx/net/sourceforge/jnlp/NetxPanel.java > +++ b/netx/net/sourceforge/jnlp/NetxPanel.java > @@ -46,7 +46,6 @@ import sun.awt.SunToolkit; > public class NetxPanel extends AppletViewerPanel implements SplashController { > private final PluginParameters parameters; > private PluginBridge bridge = null; > - private boolean exitOnFailure = true; > private AppletInstance appInst = null; > private SplashController splashController; > private boolean appletAlive; > @@ -79,13 +78,6 @@ public class NetxPanel extends AppletVie > uKeyToTG.put(uniqueKey, tg); > } > } > - } > - > - // overloaded constructor, called when initialized via plugin > - public NetxPanel(URL documentURL, PluginParameters params, > - boolean exitOnFailure) { > - this(documentURL, params); > - this.exitOnFailure = exitOnFailure; > this.appletAlive = true; > } > > @@ -117,28 +109,12 @@ public class NetxPanel extends AppletVie > dispatchAppletEvent(APPLET_LOADING, null); > status = APPLET_LOAD; > > - Launcher l = new Launcher(exitOnFailure); > + Launcher l = new Launcher(false); > > - try { > - appInst = (AppletInstance) l.launch(bridge, this); > - } catch (LaunchException e) { > - // Assume user has indicated he does not trust the > - // applet. > - if (exitOnFailure) > - System.exit(1); > - } > + // May throw LaunchException: > + appInst = (AppletInstance) l.launch(bridge, this); > applet = appInst.getApplet(); > > - //On the other hand, if you create an applet this way, it'll work > - //fine. Note that you might to open visibility in sun.applet.AppletPanel > - //for this to work (the loader field, and getClassLoader). > - //loader = getClassLoader(getCodeBase(), getClassLoaderCacheKey()); > - //applet = createApplet(loader); > - > - // This shows that when using NetX's JNLPClassLoader, keyboard input > - // won't make it to the applet, whereas using sun.applet.AppletClassLoader > - // works just fine. > - > if (applet != null) { > // Stick it in the frame > applet.setStub(this); > @@ -149,12 +125,13 @@ public class NetxPanel extends AppletVie > } > } catch (Exception e) { > this.appletAlive = false; > + status = APPLET_ERROR; > e.printStackTrace(); > replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); > } finally { > // PR1157: This needs to occur even in the case of an exception > // so that the applet's event listeners are signaled. > - // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer it can properly stop waiting > + // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer can properly stop waiting > // in PluginAppletViewer.waitForAppletInit > dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); > } > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java b/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java > @@ -85,7 +85,7 @@ class PluginAppletPanelFactory { > final PluginParameters params) { > final NetxPanel panel = AccessController.doPrivileged(new PrivilegedAction() { > public NetxPanel run() { > - NetxPanel panel = new NetxPanel(doc, params, false); > + NetxPanel panel = new NetxPanel(doc, params); > NetxPanel.debug("Using NetX panel"); > PluginDebug.debug(params.toString()); > return panel; From jvanek at redhat.com Tue Apr 23 06:52:47 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Apr 2013 15:52:47 +0200 Subject: [icedtea-web] RFC: Fix PR1299 In-Reply-To: <51768CCC.5000601@redhat.com> References: <511427C9.4020206@redhat.com> <51143429.2040005@redhat.com> <51768CCC.5000601@redhat.com> Message-ID: <5176922F.6040808@redhat.com> On 04/23/2013 03:29 PM, Adam Domurad wrote: > On 02/07/2013 06:09 PM, Adam Domurad wrote: >> On 02/07/2013 05:16 PM, Omair Majid wrote: >>> Hi, >>> >>> I would like to push this tiny fix for 1299. >>> >>> ChangeLog: >>> >>> 2013-02-07 Omair Majid >>> >>> PR1299 >>> * NEWS: Update with fix >>> * netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java >>> (initFromBrowserConfig): Fix typo in socks proxy setting key. >>> >>> Thoughts? >>> >>> Thanks, >>> Omair >> >> Was looking at this today actually :-), yes please do go on. AFAICS this is indeed the correct property. >> >> Happy hacking, >> -Adam > > Ping? > It would be good to get this in before 1.4 branches. As far as I'm concerned it is push-ready. > > Thanks. > -Adam yes, hallowed by Omair. Thank you. From adomurad at redhat.com Tue Apr 23 06:52:43 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 09:52:43 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5176765E.8040702@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> Message-ID: <5176922B.10100@redhat.com> [..snip..] > oook so something like this? > Thanks for taking up the task :-) > diff -r 0f85f68370a4 netx/net/sourceforge/jnlp/SecurityDesc.java > --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Fri Apr 19 > 16:41:33 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Tue Apr 23 > 13:51:46 2013 +0200 > @@ -149,6 +149,9 @@ > * @param downloadHost the download host (can always connect to) > */ > public SecurityDesc(JNLPFile file, Object type, String > downloadHost) { > + if (file == null) { > + throw new NullJnlpFileException(); If you keep NullJnlpFileException, at the very least please get rid of the NetBeans stub documentation & @author annotation from the NullJnlpFileException class. But, I don't like this exception. I see it as too special-case for something that is *purely* a programmer error. I am in favour of NullPointerException plainly, IllegalArgumentException or something that describes the intent rather than the specific mistake, eg "IllegalSecurityDescArgumentException" , > + } > this.file = file; > this.type = type; > this.downloadHost = downloadHost; > diff -r 0f85f68370a4 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java > --- a/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Fri Apr > 19 16:41:33 2013 +0200 > +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Tue Apr > 23 13:51:46 2013 +0200 > @@ -40,6 +40,7 @@ > import java.io.ByteArrayInputStream; > import java.io.InputStream; > import java.util.List; > +import net.sourceforge.jnlp.runtime.CodeBaseClassLoaderTest; > > import org.junit.After; > import org.junit.Assert; > @@ -61,7 +62,7 @@ > } > InputStream jnlpStream = > cl.getResourceAsStream("net/sourceforge/jnlp/basic.jnlp"); > root = Parser.getRootNode(jnlpStream); > - parser = new Parser(null, null, root, false, false); > + parser = new Parser(new > CodeBaseClassLoaderTest.DummyJNLPFile(true), null, root, false, false); [open for discussion] Hm. I think DummyJNLPFile is a useful enough pattern that it could be a test extension. Thoughts ? Maybe if we had MockedEmptyJNLPFile & MockedOneJarJNLPFile ? Or, maybe better is -> DummyJNLPFile and DummyJNLPFileWithJar ? > } > > @Test > diff -r 0f85f68370a4 > tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > --- > a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > Fri Apr 19 16:41:33 2013 +0200 > +++ > b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > Tue Apr 23 13:51:46 2013 +0200 > @@ -70,7 +70,7 @@ > } > } > > - private class DummyJNLPFile extends JNLPFile { > + public static class DummyJNLPFile extends JNLPFile { > > final boolean haveSecurity; Please get rid of this 'haveSecurity' flag. To me it indicates full-privileges/sandbox. We need to cover up the mistaken belief :-)) > > @@ -252,68 +252,33 @@ > @Test > public void testNullFileSecurityDescApplication() throws Exception { I am in favour of *exactly one* test that has any mention of null-files. It should be a unit test for SecurityDesc. Please remove all trace of it otherwise, so not to confuse future maintainers. > setWSA(); > - testNullFileSecurityDesc(); > + Exception ex = null; > + try { > + testNullFileSecurityDesc(); > + } catch (Exception exx) { > + ex = exx; > + } > + Assert.assertTrue("was expected exception", ex != null); > + Assert.assertTrue("was expected " + > NullJnlpFileException.class.getName(), ex instanceof > NullJnlpFileException); > } > > @Test > @Remote > public void testNullFileSecurityDescApplet() throws Exception { > setApplet(); > - testNullFileSecurityDesc(); See above. > + Exception ex = null; > + try { > + testNullFileSecurityDesc(); > + } catch (Exception exx) { > + ex = exx; > + } > + Assert.assertTrue("was expected exception", ex != null); > + Assert.assertTrue("was expected " + > NullJnlpFileException.class.getName(), ex instanceof > NullJnlpFileException); > } > > public void testNullFileSecurityDesc() throws Exception { > JNLPFile dummyJnlpFile = new DummyJNLPFile(false); Step in the right direction, but see above. > + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null); > > - JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null); > - CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{JAR_URL, CODEBASE_URL}, parent); > - > - Exception ex = null; > - try { > - classLoader.findClass("foo"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof ClassNotFoundException); > - > - > - //search dor resources is not relvant to null jnlp file for > applets > - ex = null; > - URL res = null; > - try { > - //not cached > - res = > classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - if (JNLPRuntime.isWebstartApplication()) { > - Assert.assertNull(res); > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof NullJnlpFileException); > - } else { > - Assert.assertNull(ex); > - Assert.assertNotNull(res); > - } > - > - ex = null; > - res = null; > - try { > - //now cached > - res = > classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - if (JNLPRuntime.isWebstartApplication()) { > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof NullJnlpFileException); > - Assert.assertNull(res); > - } else { > - Assert.assertNull(ex); > - Assert.assertNotNull(res); > - } > } > } So in summary: - I think we need a single test in SecurityDesc for the null parameter exception. A comment there explaining that tests ran into problems with a null JNLPFile in SecurityDesc would be good. - If you agree, maybe move out DummyJNLPFile to test extension, otherwise what you did is OK (but some mocking helpers would be nice) - I strongly dislike NullJnlpFileException - I strongly dislike DummyJNLPFile#haveSecurity - I strongly dislike testNullFileSecurityDesc & testNullFileSecurityDescApplet & testNullFileSecurityDescApplication. See a pattern ? I think it's less confusing for future eyes. It certainly lead me to believe that this was somehow a valid case (and even you forgot original reason for the tests :-). Sorry if I come across as demanding & Feel free to disagree of course :-) Happy hacking, -Adam From adomurad at icedtea.classpath.org Tue Apr 23 07:17:54 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 14:17:54 +0000 Subject: /hg/icedtea-web: Fix PR1299: WebStart doesn't read socket proxy ... Message-ID: changeset 50295be3e2da in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=50295be3e2da author: Adam Domurad date: Tue Apr 23 10:18:52 2013 -0400 Fix PR1299: WebStart doesn't read socket proxy settings from firefox correctly diffstat: ChangeLog | 7 +++++++ NEWS | 1 + netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diffs (37 lines): diff -r 0f85f68370a4 -r 50295be3e2da ChangeLog --- a/ChangeLog Fri Apr 19 16:41:33 2013 +0200 +++ b/ChangeLog Tue Apr 23 10:18:52 2013 -0400 @@ -1,3 +1,10 @@ +2013-04-23 Omair Majid + + PR1299 + * NEWS: Update with fix + * netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java + (initFromBrowserConfig): Fix typo in socks proxy setting key. + 2013-04-19 Jiri Vanek testing server allowed from makefile diff -r 0f85f68370a4 -r 50295be3e2da NEWS --- a/NEWS Fri Apr 19 16:41:33 2013 +0200 +++ b/NEWS Tue Apr 23 10:18:52 2013 -0400 @@ -43,6 +43,7 @@ - PR822: Applets fail to load if jars have different signers - PR1186: System.getProperty("deployment.user.security.trusted.cacerts") is null - PR909: The Java applet at http://de.gosupermodel.com/games/wardrobegame.jsp fails + - PR1299: WebStart doesn't read socket proxy settings from firefox correctly New in release 1.3 (2012-XX-XX): * NetX diff -r 0f85f68370a4 -r 50295be3e2da netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java --- a/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java Fri Apr 19 16:41:33 2013 +0200 +++ b/netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java Tue Apr 23 10:18:52 2013 -0400 @@ -146,7 +146,7 @@ browserHttpsProxyPort = stringToPort(prefs.get("network.proxy.ssl_port")); browserFtpProxyHost = prefs.get("network.proxy.ftp"); browserFtpProxyPort = stringToPort(prefs.get("network.proxy.ftp_port")); - browserSocks4ProxyHost = prefs.get("networking.proxy.socks"); + browserSocks4ProxyHost = prefs.get("network.proxy.socks"); browserSocks4ProxyPort = stringToPort(prefs.get("network.proxy.socks_port")); } From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 07:18:09 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 14:18:09 +0000 Subject: [Bug 1299] WebStart doesn't read socket proxy settings from firefox correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1299 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=50295be3e2da author: Adam Domurad date: Tue Apr 23 10:18:52 2013 -0400 Fix PR1299: WebStart doesn't read socket proxy settings from firefox correctly -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/14f107d8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 07:21:53 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 14:21:53 +0000 Subject: [Bug 1299] WebStart doesn't read socket proxy settings from firefox correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1299 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Adam Domurad --- Closing as fixed, thanks again. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/3f9488a5/attachment.html From adomurad at redhat.com Tue Apr 23 07:25:08 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 10:25:08 -0400 Subject: [icedtea-web] RFC: Fix PR1299 In-Reply-To: <5176922F.6040808@redhat.com> References: <511427C9.4020206@redhat.com> <51143429.2040005@redhat.com> <51768CCC.5000601@redhat.com> <5176922F.6040808@redhat.com> Message-ID: <517699C4.5050906@redhat.com> On 04/23/2013 09:52 AM, Jiri Vanek wrote: > On 04/23/2013 03:29 PM, Adam Domurad wrote: >> On 02/07/2013 06:09 PM, Adam Domurad wrote: >>> On 02/07/2013 05:16 PM, Omair Majid wrote: >>>> Hi, >>>> >>>> I would like to push this tiny fix for 1299. >>>> >>>> ChangeLog: >>>> >>>> 2013-02-07 Omair Majid >>>> >>>> PR1299 >>>> * NEWS: Update with fix >>>> * netx/net/sourceforge/jnlp/browser/BrowserAwareProxySelector.java >>>> (initFromBrowserConfig): Fix typo in socks proxy setting key. >>>> >>>> Thoughts? >>>> >>>> Thanks, >>>> Omair >>> >>> Was looking at this today actually :-), yes please do go on. AFAICS >>> this is indeed the correct property. >>> >>> Happy hacking, >>> -Adam >> >> Ping? >> It would be good to get this in before 1.4 branches. As far as I'm >> concerned it is push-ready. >> >> Thanks. >> -Adam > yes, hallowed by Omair. > Thank you. Pushed [1] -- I tried to commit on Omair's behalf, but evidently didn't do so correctly. Sorry :-( [1] http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=50295be3e2da Happy hacking, -Adam From adomurad at redhat.com Tue Apr 23 07:03:19 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 10:03:19 -0400 Subject: [rfc][icedtea-web] Minor NetxPanel clean-up In-Reply-To: <51768FFB.3080204@redhat.com> References: <516DB894.6010607@redhat.com> <51768FFB.3080204@redhat.com> Message-ID: <517694A7.4000000@redhat.com> On 04/23/2013 09:43 AM, Jiri Vanek wrote: > Well I was s unable to verify that this change is correct, so I have > tried to find why it should be wrong. > And I have found no evil done, so I'm for to push it. > > Jsut one funny thing to expalin maybe (although it is quite obvious > from code): > > > (exitOnFailure): Remove always-false field. > > > - private boolean exitOnFailure = true; > > > - public NetxPanel(URL documentURL, PluginParameters params, > > - boolean exitOnFailure) { > > - this(documentURL, params); > > - this.exitOnFailure = exitOnFailure; > > > - NetxPanel panel = new NetxPanel(doc, params, false); > > > You probably do not know why i was initially added? No luck here, it was added in commit 0. The history is out there probably (from OpenJDK6 tree ?), but I'm not entirely sure how to easily get at it :-) So as far as I can see it only makes sense if there is one Java instance per applet. I can only guess that while originally writing this class, it was unclear which route would be taken (single JVM vs multiple JVM), so it was made an option. (We are of course strongly committed to the single-JVM model now, and for the best, it allows applets to start quite quickly). Hope that is somewhat of an answer :-) Will push, thanks. -Adam > > Thanx for clean up > > J. > From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 07:44:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 14:44:59 +0000 Subject: [Bug 1409] IcedTea 2.3.9 fails to build Zero due to -Werror In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1409 --- Comment #1 from Ralph Sennhauser --- Created attachment 864 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=864&action=edit build.log Somewhere along the line the attachment got lost. Sorry for the noise. ;) -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/f232a9af/attachment.html From andrew at icedtea.classpath.org Tue Apr 23 07:58:51 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 23 Apr 2013 14:58:51 +0000 Subject: /hg/release/icedtea6-1.11: Fix offset problem in ICU LETableRefe... Message-ID: changeset 2a08fdbf2a11 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=2a08fdbf2a11 author: Andrew John Hughes date: Tue Apr 23 10:50:52 2013 +0100 Fix offset problem in ICU LETableReference. 2013-04-22 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * NEWS: List patch and list backports in previous change correctly. * patches/fix-font-layout-tck.patch: New patch backported from 2.3.9. diffstat: ChangeLog | 9 +++++++++ Makefile.am | 3 ++- NEWS | 5 ++++- patches/fix-font-layout-tck.patch | 12 ++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diffs (63 lines): diff -r a08f636892a8 -r 2a08fdbf2a11 ChangeLog --- a/ChangeLog Mon Apr 22 17:13:26 2013 -0400 +++ b/ChangeLog Tue Apr 23 10:50:52 2013 +0100 @@ -1,3 +1,12 @@ +2013-04-22 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * NEWS: List patch and list backports + in previous change correctly. + * patches/fix-font-layout-tck.patch: + New patch backported from 2.3.9. + 2013-04-22 Elliott Baron * Makefile.am: diff -r a08f636892a8 -r 2a08fdbf2a11 Makefile.am --- a/Makefile.am Mon Apr 22 17:13:26 2013 -0400 +++ b/Makefile.am Tue Apr 23 10:50:52 2013 +0100 @@ -539,7 +539,8 @@ patches/openjdk/7197906-handle_32_bit_shifts.patch \ patches/aarch64.patch \ patches/jaxws-tempfiles-ioutils-6.patch \ - patches/object-factory-cl-internal.patch + patches/object-factory-cl-internal.patch \ + patches/fix-font-layout-tck.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r a08f636892a8 -r 2a08fdbf2a11 NEWS --- a/NEWS Mon Apr 22 17:13:26 2013 -0400 +++ b/NEWS Tue Apr 23 10:50:52 2013 +0100 @@ -15,10 +15,13 @@ * Security fixes - RH952389: Temporary files created with insecure permissions +* Backports + - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) + - S6657673: Issues with JAXP (include fragment dependent on S7133220) * Bug fixes - PR1402: Support glibc < 2.17 with AArch64 patch - Give xalan/xerces access to their own internal packages. - - Fix backport from S6657673. + - Fix offset problem in ICU LETableReference. New in release 1.11.10 (2013-04-17): diff -r a08f636892a8 -r 2a08fdbf2a11 patches/fix-font-layout-tck.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/fix-font-layout-tck.patch Tue Apr 23 10:50:52 2013 +0100 @@ -0,0 +1,12 @@ +diff --git a/src/share/native/sun/font/layout/LETableReference.h b/src/share/native/sun/font/layout/LETableReference.h +--- openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h ++++ openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h +@@ -433,7 +433,7 @@ + */ + LEReferenceTo(const LETableReference &parent, LEErrorCode &success, const void* atPtr) + : LETableReference(parent, parent.ptrToOffset(atPtr, success), LE_UINTPTR_MAX, success) { +- verifyLength(parent.ptrToOffset(atPtr,success), LETableVarSizer::getSize(), success); ++ verifyLength(0, LETableVarSizer::getSize(), success); + if(LE_FAILURE(success)) clear(); + } + /** From adomurad at icedtea.classpath.org Tue Apr 23 08:20:49 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 15:20:49 +0000 Subject: /hg/icedtea-web: Rewrite of MethodOverloadResolver Message-ID: changeset 66b641f365b5 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=66b641f365b5 author: Adam Domurad date: Tue Apr 23 11:10:24 2013 -0400 Rewrite of MethodOverloadResolver diffstat: ChangeLog | 14 + plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java | 941 +++------ plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 80 +- tests/netx/unit/sun/applet/MethodOverloadResolverTest.java | 383 ++++ 4 files changed, 793 insertions(+), 625 deletions(-) diffs (truncated from 1615 to 500 lines): diff -r 50295be3e2da -r 66b641f365b5 ChangeLog --- a/ChangeLog Tue Apr 23 10:18:52 2013 -0400 +++ b/ChangeLog Tue Apr 23 11:10:24 2013 -0400 @@ -1,3 +1,17 @@ +2013-04-23 Adam Domurad + + Rewrite of MethodOverloadResolver with detailed unittests. + * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: + Rewritten to reduce duplicated code, fix very subtle bugs in + never-tested codepaths, obey spec properly. Introduced new helper types + where Object[] arrays with special-meaning positions were passed + around. + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + Updated to work with newly introduced types / refactored overload + resolver. + * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: In-depth + unit tests of hairy details of method overloading in JS<->Java. + 2013-04-23 Omair Majid PR1299 diff -r 50295be3e2da -r 66b641f365b5 plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java --- a/plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java Tue Apr 23 10:18:52 2013 -0400 +++ b/plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java Tue Apr 23 11:10:24 2013 -0400 @@ -41,449 +41,403 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import netscape.javascript.JSObject; /* * This class resolved overloaded methods in Java objects using a cost - * based-approach as described here: + * based-approach described here: * - * http://java.sun.com/javase/6/webnotes/6u10/plugin2/liveconnect/#OVERLOADED_METHODS + * http://jdk6.java.net/plugin2/liveconnect/#OVERLOADED_METHODS */ public class MethodOverloadResolver { + static final int NUMERIC_SAME_COST = 1; + static final int NULL_TO_OBJECT_COST = 2; + static final int CLASS_SAME_COST = 3; + static final int NUMERIC_CAST_COST = 4; + static final int NUMERIC_BOOLEAN_COST = 5; - private static boolean debugging = false; + static final int STRING_NUMERIC_CAST_COST = 5; - public static void main(String[] args) { - testMethodResolver(); + static final int CLASS_SUPERCLASS_COST = 6; + + static final int CLASS_STRING_COST = 7; + static final int JSOBJECT_TO_ARRAY_COST = CLASS_STRING_COST; + static final int ARRAY_CAST_COST = 8; + + /* A method signature with its casted parameters + * We pretend a Constructor is a normal 'method' for ease of code reuse */ + static class ResolvedMethod { + + private java.lang.reflect.AccessibleObject method; + private Object[] castedParameters; + private int cost; + + public ResolvedMethod(int cost, java.lang.reflect.AccessibleObject method, Object[] castedParameters) { + this.cost = cost; + this.method = method; + this.castedParameters = castedParameters; + } + + java.lang.reflect.AccessibleObject getAccessibleObject() { + return method; + } + + public Method getMethod() { + return (Method)method; + } + + public Constructor getConstructor() { + return (Constructor)method; + } + + public Object[] getCastedParameters() { + return castedParameters; + } + + public int getCost() { + return cost; + } } - public static void testMethodResolver() { - debugging = true; + /* A cast with an associated 'cost', used for picking method overloads */ + static class WeightedCast { - ArrayList list = new ArrayList(20); - FooClass fc = new FooClass(); + private int cost; + private Object castedObject; - // Numeric to java primitive - // foo_i has Integer and int params - String s1 = "foo_string_int(S,I)"; - String s1a = "foo_string_int(S,S)"; - Object[] o1 = { fc.getClass(), "foo_string_int", "blah", 42 }; - list.add(o1); - Object[] o1a = { fc.getClass(), "foo_string_int", "blah", "42.42" }; - list.add(o1a); - - // Null to non-primitive type - // foo_i is overloaded with Integer and int - String s2 = "foo_string_int(N)"; - Object[] o2 = { fc.getClass(), "foo_string_int", "blah", null }; - list.add(o2); - - // foo_jsobj is overloaded with JSObject and String params - String s3 = "foo_jsobj(LLowCostSignatureComputer/JSObject;)"; - Object[] o3 = { fc.getClass(), "foo_jsobj", new JSObject() }; - list.add(o3); - - // foo_classtype is overloaded with Number and Integer - String s4 = "foo_classtype(Ljava/lang/Integer;)"; - Object[] o4 = { fc.getClass(), "foo_classtype", 42 }; - list.add(o4); - - // foo_multiprim is overloaded with int, long and float types - String s5 = "foo_multiprim(I)"; - String s6 = "foo_multiprim(F)"; - String s6a = "foo_multiprim(D)"; - - Object[] o5 = { fc.getClass(), "foo_multiprim", new Integer(42) }; - Object[] o6 = { fc.getClass(), "foo_multiprim", new Float(42.42) }; - Object[] o6a = { fc.getClass(), "foo_multiprim", new Double(42.42) }; - list.add(o5); - list.add(o6); - list.add(o6a); - - // foo_float has float, String and JSObject type - String s7 = "foo_float(I)"; - Object[] o7 = { fc.getClass(), "foo_float", new Integer(42) }; - list.add(o7); - - // foo_multiprim(float) is what this should convert - String s8 = "foo_float(S)"; - Object[] o8 = { fc.getClass(), "foo_float", "42" }; - list.add(o8); - - // foo_class is overloaded with BarClass 2 and 3 - String s9 = "foo_class(LLowCostSignatureComputer/BarClass3;)"; - Object[] o9 = { fc.getClass(), "foo_class", new BarClass3() }; - list.add(o9); - - // foo_strandbyteonly takes string and byte - String s10 = "foo_strandbyteonly(I)"; - Object[] o10 = { fc.getClass(), "foo_strandbyteonly", 42 }; - list.add(o10); - - // JSOBject to string - String s11 = "foo_strandbyteonly(LLowCostSignatureComputer/JSObject;)"; - Object[] o11 = { fc.getClass(), "foo_strandbyteonly", new JSObject() }; - list.add(o11); - - // jsobject to string and int to float - String s12 = "foo_str_and_float(S,I)"; - Object[] o12 = { fc.getClass(), "foo_str_and_float", new JSObject(), new Integer(42) }; - list.add(o12); - - // call for which no match will be found - String s13 = "foo_int_only(JSObject)"; - Object[] o13 = { fc.getClass(), "foo_int_only", new JSObject() }; - list.add(o13); - - // method with no args - String s14 = "foo_noargs()"; - Object[] o14 = { fc.getClass(), "foo_noargs" }; - list.add(o14); - - // method which takes a primitive bool, given a Boolean - String s15 = "foo_boolonly()"; - Object[] o15 = { fc.getClass(), "foo_boolonly", new Boolean(true) }; - list.add(o15); - - for (Object[] o : list) { - Object[] methodAndArgs = getMatchingMethod(o); - if (debugging) - if (methodAndArgs != null) - System.out.println("Best match: " + methodAndArgs[0] + "\n"); - else - System.out.println("No match found.\n"); - + public WeightedCast(int cost, Object castedObject) { + this.cost = cost; + this.castedObject = castedObject; } + public Object getCastedObject() { + return castedObject; + } + + public int getCost() { + return cost; + } + } + + + public static ResolvedMethod getBestMatchMethod(Class c, String methodName, Object[] args) { + Method[] matchingMethods = getMatchingMethods(c, methodName, args.length); + + if (PluginDebug.DEBUG) { /* avoid toString if not needed */ + PluginDebug.debug("getMatchingMethod called with: " + + Arrays.toString(args)); + } + + return getBestOverloadMatch(c, args, matchingMethods); + } + + public static ResolvedMethod getBestMatchConstructor(Class c, Object[] args) { + Constructor[] matchingConstructors = getMatchingConstructors(c, args.length); + + if (PluginDebug.DEBUG) { /* avoid toString if not needed */ + PluginDebug.debug("getMatchingConstructor called with: " + + Arrays.toString(args)); + } + + return getBestOverloadMatch(c, args, matchingConstructors); } /* - * Cost based overload resolution algorithm based on cost rules specified here: - * - * http://java.sun.com/javase/6/webnotes/6u10/plugin2/liveconnect/#OVERLOADED_METHODS + * Get best-matching method based on a cost based overload resolution + * algorithm is used, described here: + * + * http://jdk6.java.net/plugin2/liveconnect/#OVERLOADED_METHODS + * + * Note that we consider Constructor's to be 'methods' for convenience. We + * use the common parent class of Method/Constructor, 'AccessibleObject' + * + * NB: Although the spec specifies that ambiguous method calls (ie, same + * cost) should throw errors, we simply pick the first overload for + * simplicity. Method overrides should not be doing wildly different things + * anyway. */ - - public static Object[] getMatchingMethod(Object[] callList) { - Object[] ret = null; - Class c = (Class) callList[0]; - String methodName = (String) callList[1]; - - Method[] matchingMethods = getMatchingMethods(c, methodName, callList.length - 2); - - if (debugging) - System.out.println("getMatchingMethod called with: " + printList(callList)); + static ResolvedMethod getBestOverloadMatch(Class c, Object[] args, + java.lang.reflect.AccessibleObject[] candidates) { int lowestCost = Integer.MAX_VALUE; + java.lang.reflect.AccessibleObject cheapestMethod = null; + Object[] cheapestArgs = null; + boolean ambiguous = false; - for (Method matchingMethod : matchingMethods) { + methodLoop: + for (java.lang.reflect.AccessibleObject candidate : candidates) { + int methodCost = 0; - int methodCost = 0; - Class[] paramTypes = matchingMethod.getParameterTypes(); - Object[] methodAndArgs = new Object[paramTypes.length + 1]; - methodAndArgs[0] = matchingMethod; + Class[] paramTypes = getParameterTypesFor(candidate); + Object[] castedArgs = new Object[paramTypes.length]; // Figure out which of the matched methods best represents what we // want for (int i = 0; i < paramTypes.length; i++) { Class paramTypeClass = paramTypes[i]; - Object suppliedParam = callList[i + 2]; + Object suppliedParam = args[i]; Class suppliedParamClass = suppliedParam != null ? suppliedParam - .getClass() - : null; + .getClass() : null; - Object[] costAndCastedObj = getCostAndCastedObject( + WeightedCast weightedCast = getCostAndCastedObject( suppliedParam, paramTypeClass); - methodCost += (Integer) costAndCastedObj[0]; - if ((Integer) costAndCastedObj[0] < 0) - break; + if (weightedCast == null) { + continue methodLoop; // Cannot call this constructor! + } - Object castedObj = paramTypeClass.isPrimitive() ? costAndCastedObj[1] - : paramTypeClass.cast(costAndCastedObj[1]); - methodAndArgs[i + 1] = castedObj; + methodCost += weightedCast.getCost(); - Class castedObjClass = castedObj == null ? null : castedObj - .getClass(); - Boolean castedObjIsPrim = castedObj == null ? null : castedObj - .getClass().isPrimitive(); + Object castedObj = paramTypeClass.isPrimitive() ? + weightedCast.getCastedObject() + : paramTypeClass.cast(weightedCast.getCastedObject()); - if (debugging) - System.out.println("Param " + i + " of method " - + matchingMethod + " has cost " - + (Integer) costAndCastedObj[0] + castedArgs[i] = castedObj; + + Class castedObjClass = castedObj == null ? null : castedObj.getClass(); + boolean castedObjIsPrim = castedObj == null ? false : castedObj.getClass().isPrimitive(); + + if (PluginDebug.DEBUG) { /* avoid toString if not needed */ + PluginDebug.debug("Param " + i + " of method " + candidate + + " has cost " + weightedCast.getCost() + " original param type " + suppliedParamClass + " casted to " + castedObjClass + " isPrimitive=" + castedObjIsPrim + " value " + castedObj); + } } - if ((methodCost > 0 && methodCost < lowestCost) || - paramTypes.length == 0) { - ret = methodAndArgs; - lowestCost = methodCost; + if (methodCost <= lowestCost) { + if (methodCost < lowestCost + || argumentsAreSubclassesOf(castedArgs, cheapestArgs)) { + lowestCost = methodCost; + cheapestArgs = castedArgs; + cheapestMethod = candidate; + ambiguous = false; + } else { + ambiguous = true; + } } } - return ret; + // The spec says we should error out if the method call is ambiguous + // Instead we will report it in debug output + if (ambiguous) { + PluginDebug.debug("*** Warning: Ambiguous overload of ", c.getClass(), "#", cheapestMethod, "!"); + } + + return new ResolvedMethod(lowestCost, cheapestMethod, cheapestArgs); } - public static Object[] getMatchingConstructor(Object[] callList) { - Object[] ret = null; - Class c = (Class) callList[0]; + public static WeightedCast getCostAndCastedObject(Object suppliedParam, + Class paramTypeClass) { + Class suppliedParamClass = suppliedParam != null ? suppliedParam + .getClass() : null; - Constructor[] matchingConstructors = getMatchingConstructors(c, callList.length - 1); + boolean suppliedParamIsArray = suppliedParamClass != null + && suppliedParamClass.isArray(); - if (debugging) - System.out.println("getMatchingConstructor called with: " + printList(callList)); - - int lowestCost = Integer.MAX_VALUE; - - for (Constructor matchingConstructor : matchingConstructors) { - - int constructorCost = 0; - Class[] paramTypes = matchingConstructor.getParameterTypes(); - Object[] constructorAndArgs = new Object[paramTypes.length + 1]; - constructorAndArgs[0] = matchingConstructor; - - // Figure out which of the matched methods best represents what we - // want - for (int i = 0; i < paramTypes.length; i++) { - Class paramTypeClass = paramTypes[i]; - Object suppliedParam = callList[i + 1]; - Class suppliedParamClass = suppliedParam != null ? suppliedParam - .getClass() - : null; - - Object[] costAndCastedObj = getCostAndCastedObject( - suppliedParam, paramTypeClass); - constructorCost += (Integer) costAndCastedObj[0]; - - if ((Integer) costAndCastedObj[0] < 0) - break; - - Object castedObj = paramTypeClass.isPrimitive() ? costAndCastedObj[1] - : paramTypeClass.cast(costAndCastedObj[1]); - constructorAndArgs[i + 1] = castedObj; - - Class castedObjClass = castedObj == null ? null : castedObj - .getClass(); - Boolean castedObjIsPrim = castedObj == null ? null : castedObj - .getClass().isPrimitive(); - - if (debugging) - System.out.println("Param " + i + " of constructor " - + matchingConstructor + " has cost " - + (Integer) costAndCastedObj[0] - + " original param type " + suppliedParamClass - + " casted to " + castedObjClass + " isPrimitive=" - + castedObjIsPrim + " value " + castedObj); + if (suppliedParamIsArray) { + if (paramTypeClass.isArray()) { + return getArrayToArrayCastWeightedCost(suppliedParam, + paramTypeClass); } - if ((constructorCost > 0 && constructorCost < lowestCost) || - paramTypes.length == 0) { - ret = constructorAndArgs; - lowestCost = constructorCost; + // Target type must be an array, Object or String + // If it an object, we return "as is" [Everything can be narrowed to an + // object, cost=CLASS_SUPERCLASS_COST] + // If it is a string, we need to convert according to the JS engine + // rules + if (paramTypeClass != String.class + && paramTypeClass != Object.class) { + return null; } - } - - return ret; - } - - public static Object[] getCostAndCastedObject(Object suppliedParam, Class paramTypeClass) { - - Object[] ret = new Object[2]; - Integer cost = new Integer(0); - Object castedObj; - - Class suppliedParamClass = suppliedParam != null ? suppliedParam.getClass() : null; - - // Either both are an array, or neither are - boolean suppliedParamIsArray = suppliedParamClass != null && suppliedParamClass.isArray(); - if (paramTypeClass.isArray() != suppliedParamIsArray && - !paramTypeClass.equals(Object.class) && - !paramTypeClass.equals(String.class)) { - ret[0] = Integer.MIN_VALUE; // Not allowed - ret[1] = suppliedParam; - return ret; - } - - // If param type is an array, supplied obj must be an array, Object or String (guaranteed by checks above) - // If it is an array, we need to copy/cast as we scan the array - // If it an object, we return "as is" [Everything can be narrowed to an object, cost=6] - // If it is a string, we need to convert according to the JS engine rules - - if (paramTypeClass.isArray()) { - - Object newArray = Array.newInstance(paramTypeClass.getComponentType(), Array.getLength(suppliedParam)); - for (int i = 0; i < Array.getLength(suppliedParam); i++) { - Object original = Array.get(suppliedParam, i); - - // When dealing with arrays, we represent empty slots with - // null. We need to convert this to 0 before recursive - // calling, since normal transformation does not allow - // null -> primitive - - if (original == null && paramTypeClass.getComponentType().isPrimitive()) - original = 0; - - Object[] costAndCastedObject = getCostAndCastedObject(original, paramTypeClass.getComponentType()); - - if ((Integer) costAndCastedObject[0] < 0) { - ret[0] = Integer.MIN_VALUE; // Not allowed - ret[1] = suppliedParam; - return ret; - } - - Array.set(newArray, i, costAndCastedObject[1]); + if (paramTypeClass.equals(String.class)) { + return new WeightedCast(ARRAY_CAST_COST, + arrayToJavascriptStyleString(suppliedParam)); } - - ret[0] = 9; - ret[1] = newArray; - return ret; - } - - if (suppliedParamIsArray && paramTypeClass.equals(String.class)) { - - ret[0] = 9; - ret[1] = getArrayAsString(suppliedParam); From adomurad at redhat.com Tue Apr 23 08:20:42 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 11:20:42 -0400 Subject: [rfc][icedtea-web] Fix potential NPE by removing line PluginAppletViewer.java:1499 Message-ID: <5176A6CA.3070105@redhat.com> During shutdown I got: Exception in thread "Thread-14" java.lang.NullPointerException at sun.applet.PluginAppletViewer$7.run(PluginAppletViewer.java:1499) at java.lang.Thread.run(Thread.java:722) For the line here in appletClose(): ClassLoader cl = p.applet.getClass().getClassLoader(); // Since we want to deal with JNLPClassLoader, extract it if this // is a codebase loader if (cl instanceof JNLPClassLoader.CodeBaseClassLoader) cl = ((JNLPClassLoader.CodeBaseClassLoader) cl).getParentJNLPClassLoader(); ThreadGroup tg = ((JNLPClassLoader) cl).getApplication().getThreadGroup(); ^^^^^^^^^^^^^^^^^^^^ This ThreadGroup grab isn't needed at all (unused), and getApplication can't be guaranteed to be set-up at this point, I'm in favour of axing it. -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: axe-npe-line.patch Type: text/x-patch Size: 685 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/41a94bce/axe-npe-line.patch From adomurad at redhat.com Tue Apr 23 08:57:30 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 23 Apr 2013 11:57:30 -0400 Subject: [rfc][icedtea-web] PluginAppletViewer unit tests with test extensions for mocking plugin input&output pipes In-Reply-To: <51750046.9000604@redhat.com> References: <513E4ACC.8090304@redhat.com> <515AE120.7000802@redhat.com> <51718D90.4090308@redhat.com> <51750046.9000604@redhat.com> Message-ID: <5176AF6A.60901@redhat.com> On 04/22/2013 05:17 AM, Jiri Vanek wrote: > On 04/19/2013 08:31 PM, Adam Domurad wrote: >> Hopefully more tasteful this time around :-) > > > Ok. Walk through and I think it can go in. Two nits: > > 1)Maybe some test to new test-extension classes would be worthy:( I wouldn't want to anger the gods of quality assurance, attached is my meagre offering: 2013-04-XX Adam Domurad * tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java: Unit tests for AsyncCall test extension. > 2) checking the stared Test utilities methods.. When seeing > them separated ... well can be as it is, but (although I previously > said it in reverse way) maybe they are rally woorthy to be in separate > file in test extensions. But as you are confirming my previous > suspicions then it is probably ok and do your best. > > J. > I believe if they are needed they can be separated afterwards. OK to push everything + this new test ? Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: async-call-test.patch Type: text/x-patch Size: 2816 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/7f860855/async-call-test.patch From adomurad at icedtea.classpath.org Tue Apr 23 09:29:49 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 16:29:49 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 1bdcb1e255b5 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=1bdcb1e255b5 author: Adam Domurad date: Tue Apr 23 12:29:13 2013 -0400 JNLPClassLoader unit tests for file leaks changeset d5d3f8a62906 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d5d3f8a62906 author: Adam Domurad date: Tue Apr 23 12:30:34 2013 -0400 Ensure JarFile handles do not leak. diffstat: ChangeLog | 17 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 17 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java | 263 ++++++++++ 3 files changed, 293 insertions(+), 4 deletions(-) diffs (371 lines): diff -r 66b641f365b5 -r d5d3f8a62906 ChangeLog --- a/ChangeLog Tue Apr 23 11:10:24 2013 -0400 +++ b/ChangeLog Tue Apr 23 12:30:34 2013 -0400 @@ -1,3 +1,20 @@ +2013-04-23 Adam Domurad + + Ensure JarFile handles do not leak. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + Ensure close is called for each JarFile. + +2013-04-23 Adam Domurad + + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: + New, JNLPClassLoader unit tests for (checkForMain), (getMainClassName), + (activateNativeJar), and (isInvalidJar). Checks for file descriptor + leaks. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (isInvalidJar): Change to default visibility for testing purposes. + (checkForMain): Same. + (getMainClassName): Same. + 2013-04-23 Adam Domurad Rewrite of MethodOverloadResolver with detailed unittests. diff -r 66b641f365b5 -r d5d3f8a62906 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Apr 23 11:10:24 2013 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Apr 23 12:30:34 2013 -0400 @@ -556,7 +556,7 @@ * @param jar the jar to check * @return true if file exists AND is an invalid jar, false otherwise */ - private boolean isInvalidJar(JARDesc jar){ + boolean isInvalidJar(JARDesc jar){ File cacheFile = tracker.getCacheFile(jar.getLocation()); if (cacheFile == null) return false;//File cannot be retrieved, do not claim it is an invalid jar @@ -792,7 +792,7 @@ * @param jars Jars that are checked to see if they contain the main class * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match */ - private void checkForMain(List jars) throws LaunchException { + void checkForMain(List jars) throws LaunchException { // Check launch info if (mainClass == null) { @@ -862,6 +862,8 @@ break; } } + + jarFile.close(); } catch (IOException e) { /* * After this exception is caught, it is escaped. This will skip @@ -878,18 +880,21 @@ * @param location The JAR location * @return the main class name, null if there isn't one of if there was an error */ - private String getMainClassName(URL location) { + String getMainClassName(URL location) { String mainClass = null; File f = tracker.getCacheFile(location); if( f != null) { + JarFile mainJar = null; try { - JarFile mainJar = new JarFile(f); + mainJar = new JarFile(f); mainClass = mainJar.getManifest(). getMainAttributes().getValue("Main-Class"); } catch (IOException ioe) { mainClass = null; + } finally { + StreamUtils.closeSilently(mainJar); } } @@ -1305,6 +1310,7 @@ jarEntries.add(je.getName()); } + jarFile.close(); } addURL(jar.getLocation()); @@ -1328,6 +1334,8 @@ JarIndex index = JarIndex.getJarIndex(jarFile, null); if (index != null) jarIndexes.add(index); + + jarFile.close(); } else { CachedJarFileCallback.getInstance().addMapping(jar.getLocation(), jar.getLocation()); } @@ -1401,6 +1409,7 @@ new FileOutputStream(outFile)); } + jarFile.close(); } catch (IOException ex) { if (JNLPRuntime.isDebug()) ex.printStackTrace(); diff -r 66b641f365b5 -r d5d3f8a62906 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Tue Apr 23 12:30:34 2013 -0400 @@ -0,0 +1,263 @@ +/*Copyright (C) 2013 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.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; + +import java.io.File; +import java.lang.management.ManagementFactory; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +import javax.management.MBeanServer; +import javax.management.ObjectName; + +import net.sourceforge.jnlp.InformationDesc; +import net.sourceforge.jnlp.JARDesc; +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.SecurityDesc; +import net.sourceforge.jnlp.ServerAccess; +import net.sourceforge.jnlp.Version; +import net.sourceforge.jnlp.cache.UpdatePolicy; +import net.sourceforge.jnlp.util.StreamUtils; + +import org.junit.Test; + +public class JNLPClassLoaderTest { + + /* Get the open file-descriptor count for the process. + * Note that this is specific to Unix-like operating systems. + * As well, it relies on */ + static public long getOpenFileDescriptorCount() { + MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); + try { + return (Long) beanServer.getAttribute( + new ObjectName("java.lang:type=OperatingSystem"), + "OpenFileDescriptorCount" + ); + } catch (Exception e) { + // Effectively disables leak tests + ServerAccess.logErrorReprint("Warning: Cannot get file descriptors for this platform!"); + return 0; + } + } + + /* Check the amount of file descriptors before and after a Runnable */ + static private void assertNoFileLeak(Runnable runnable) { + long filesOpenBefore = getOpenFileDescriptorCount(); + runnable.run(); + long filesLeaked = getOpenFileDescriptorCount() - filesOpenBefore; + assertEquals(0, filesLeaked); + } + + static private String cleanExec(File directory, String... command) throws Exception { + Process p = Runtime.getRuntime().exec(command, new String[]{}, directory); + + String stdOut = StreamUtils.readStreamAsString(p.getInputStream()); + String stdErr = StreamUtils.readStreamAsString(p.getErrorStream()); + + ServerAccess.logNoReprint("Running " + Arrays.toString(command)); + ServerAccess.logNoReprint("Standard output was: \n" + stdOut); + ServerAccess.logNoReprint("Standard error was: \n" + stdErr); + + p.getInputStream().close(); + p.getErrorStream().close(); + p.getOutputStream().close(); + + return stdOut; + + } + + /* Creates a jar in a temporary directory, with the given name & manifest contents. */ + static private File createTempJar(String jarName, String manifestContents) throws Exception { + File dir = new File(cleanExec(null /* current working dir */, "mktemp", "-d")); + cleanExec(dir, "/bin/bash", "-c", "echo '" + manifestContents + "' > Manifest.txt"); + cleanExec(dir, "jar", "-cfm", jarName, "Manifest.txt"); + return new File(dir.getAbsolutePath() + "/" + jarName); + } + + /* Creates a jar in a temporary directory, with the given name & an empty manifest. */ + static private File createTempJar(String jarName) throws Exception { + return createTempJar(jarName, ""); + } + + /* Create a JARDesc for the given URL location */ + static private JARDesc makeJarDesc(URL jarLocation) { + return new JARDesc(jarLocation, new Version("1"), null, false,false, false,false); + } + + /* A mocked dummy JNLP file with a single JAR. */ + private class MockedOneJarJNLPFile extends JNLPFile { + URL codeBase, jarLocation; + JARDesc jarDesc; + + MockedOneJarJNLPFile(File jarFile) throws MalformedURLException { + codeBase = jarFile.getParentFile().toURI().toURL(); + jarLocation = jarFile.toURI().toURL(); + jarDesc = makeJarDesc(jarLocation); + info = new ArrayList(); + } + + @Override + public ResourcesDesc getResources() { + ResourcesDesc resources = new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + resources.addResource(jarDesc); + return resources; + } + @Override + public ResourcesDesc[] getResourcesDescs(final Locale locale, final String os, final String arch) { + return new ResourcesDesc[] { getResources() }; + } + + @Override + public URL getCodeBase() { + return codeBase; + } + + @Override + public SecurityDesc getSecurity() { + return new SecurityDesc(this, SecurityDesc.SANDBOX_PERMISSIONS, null); + } + }; + + /* Note: Only does file leak testing for now. */ + @Test + public void constructorFileLeakTest() throws Exception { + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar")); + + assertNoFileLeak( new Runnable () { + @Override + public void run() { + try { + new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + } catch (LaunchException e) { + fail(e.toString()); + } + } + }); + } + + /* Note: We should create a JNLPClassLoader with an invalid jar to test isInvalidJar with. + * However, it is tricky without it erroring-out. */ + @Test + public void isInvalidJarTest() throws Exception { + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar")); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak( new Runnable () { + @Override + public void run() { + assertFalse(classLoader.isInvalidJar(jnlpFile.jarDesc)); + } + }); + + } + + /* Note: Only does file leak testing for now, but more testing could be added. */ + @Test + public void activateNativeFileLeakTest() throws Exception { + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar")); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak( new Runnable () { + @Override + public void run() { + classLoader.activateNative(jnlpFile.jarDesc); + } + }); + } + + @Test + public void getMainClassNameTest() throws Exception { + /* Test with main-class */{ + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar", "Main-Class: DummyClass\n")); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak(new Runnable() { + @Override + public void run() { + assertEquals("DummyClass", classLoader.getMainClassName(jnlpFile.jarLocation)); + } + }); + } + /* Test with-out main-class */{ + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar", "")); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak(new Runnable() { + @Override + public void run() { + assertEquals(null, classLoader.getMainClassName(jnlpFile.jarLocation)); + } + }); + } + } + + static private List toList(T ... parts) { + List list = new ArrayList(); + for (T part : parts) { + list.add(part); + } + return list; + } + + /* Note: Although it does a basic check, this mainly checks for file-descriptor leak */ + @Test + public void checkForMainFileLeakTest() throws Exception { + final MockedOneJarJNLPFile jnlpFile = new MockedOneJarJNLPFile(createTempJar("test.jar", "")); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + assertNoFileLeak(new Runnable() { + @Override + public void run() { + try { + classLoader.checkForMain(toList(jnlpFile.jarDesc)); + } catch (LaunchException e) { + fail(e.toString()); + } + } + }); + assertFalse(classLoader.hasMainJar()); + } +} \ No newline at end of file From adomurad at icedtea.classpath.org Tue Apr 23 09:55:15 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 16:55:15 +0000 Subject: /hg/icedtea-web: Reproducer for incorrect AppContext context-cla... Message-ID: changeset db364934ee33 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=db364934ee33 author: Adam Domurad date: Tue Apr 23 12:56:13 2013 -0400 Reproducer for incorrect AppContext context-classloader diffstat: ChangeLog | 14 + tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html | 44 ++++ tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp | 57 +++++ tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp | 61 ++++++ tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java | 88 +++++++++ tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java | 97 ++++++++++ 6 files changed, 361 insertions(+), 0 deletions(-) diffs (388 lines): diff -r d5d3f8a62906 -r db364934ee33 ChangeLog --- a/ChangeLog Tue Apr 23 12:30:34 2013 -0400 +++ b/ChangeLog Tue Apr 23 12:56:13 2013 -0400 @@ -1,3 +1,17 @@ +2013-04-23 Adam Domurad + + * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: + Test AppContext context classloader from HTML applet + * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: + Test AppContext context classloader from JNLP application + * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: + Test AppContext context classloader from JNLP applet + * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: + Print out context classloader for thread & AppContext, for + current thread & Swing thread. + * tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: + Test runner for AppContextHasJNLPClassLoader + 2013-04-23 Adam Domurad Ensure JarFile handles do not leak. diff -r d5d3f8a62906 -r db364934ee33 tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html Tue Apr 23 12:56:13 2013 -0400 @@ -0,0 +1,44 @@ + + +

    + + +

    + + diff -r d5d3f8a62906 -r db364934ee33 tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp Tue Apr 23 12:56:13 2013 -0400 @@ -0,0 +1,57 @@ + + + + + Test AppContext Classloader + IcedTea + + Test that AppContext's context classloader is a JNLPClassLoader + + + + + + + + + + diff -r d5d3f8a62906 -r db364934ee33 tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp Tue Apr 23 12:56:13 2013 -0400 @@ -0,0 +1,61 @@ + + + + + Test AppContext Classloader + IcedTea + + Test that AppContext's context classloader is a JNLPClassLoader + + + + + + + + + + diff -r d5d3f8a62906 -r db364934ee33 tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java Tue Apr 23 12:56:13 2013 -0400 @@ -0,0 +1,88 @@ +/* + Copyright (C) 2013 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 java.applet.Applet; + +import sun.awt.AppContext; + +import java.awt.EventQueue; + +/* Hybrid applet/application */ +public class AppContextHasJNLPClassLoader extends Applet { + + /* + * Output the current context classloader, and the current AppContext's + * stored context classloader. + * + * The context classloader should never be the system classloader for a + * webstart application or applet in any thread. + */ + static void printClassloaders(String location) { + ClassLoader appContextClassLoader = AppContext.getAppContext().getContextClassLoader(); + ClassLoader threadContextClassLoader = Thread.currentThread().getContextClassLoader(); + + System.out.println(location + ": app context classloader == " + + appContextClassLoader.getClass().getSimpleName()); + System.out.println(location + ": thread context classloader == " + + threadContextClassLoader.getClass().getSimpleName()); + } + + /* Applet start point */ + @Override + public void start() { + try { + main(null); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /* Application start point */ + public static void main(String[] args) throws Exception { + printClassloaders("main-thread"); + + EventQueue.invokeAndWait(new Runnable() { + public void run() { + printClassloaders("swing-thread"); + } + }); + + // NB: The following is for JNLP applets only + try { System.exit(0); } catch (Exception e) {e.printStackTrace(); } + } + +} diff -r d5d3f8a62906 -r db364934ee33 tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java Tue Apr 23 12:56:13 2013 -0400 @@ -0,0 +1,97 @@ +/* +Copyright (C) 2013 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.annotations.KnownToFail; +import net.sourceforge.jnlp.annotations.TestInBrowsers; + +import net.sourceforge.jnlp.annotations.Bug; + +import org.junit.Assert; + +import net.sourceforge.jnlp.ServerAccess.AutoClose; + +import net.sourceforge.jnlp.browsertesting.BrowserTest; +import net.sourceforge.jnlp.browsertesting.Browsers; + +import net.sourceforge.jnlp.ProcessResult; + +import org.junit.Test; + +public class AppContextHasJNLPClassLoaderTest extends BrowserTest { + + private static final String MAIN_APP_CONTEXT_CLASSLOADER = "main-thread: app context classloader == JNLPClassLoader"; + private static final String MAIN_THREAD_CONTEXT_CLASSLOADER = "main-thread: thread context classloader == JNLPClassLoader"; + + private static final String SWING_APP_CONTEXT_CLASSLOADER = "swing-thread: app context classloader == JNLPClassLoader"; + private static final String SWING_THREAD_CONTEXT_CLASSLOADER = "swing-thread: thread context classloader == JNLPClassLoader"; + + private void assertHasJNLPClassLoaderAsContextClassloader(ProcessResult pr) { + // This shouldn't fail even with PR1251 + // If the main thread does not have the right context classloader, something is quite wrong + Assert.assertTrue("stdout should contains '" + MAIN_THREAD_CONTEXT_CLASSLOADER + "', but did not", pr.stdout.contains(MAIN_THREAD_CONTEXT_CLASSLOADER)); + + // PR1251 + Assert.assertTrue("stdout should contains '" + MAIN_APP_CONTEXT_CLASSLOADER + "', but did not", pr.stdout.contains(MAIN_APP_CONTEXT_CLASSLOADER)); + Assert.assertTrue("stdout should contains '" + SWING_APP_CONTEXT_CLASSLOADER + "', but did not", pr.stdout.contains(SWING_APP_CONTEXT_CLASSLOADER)); + Assert.assertTrue("stdout should contains '" + SWING_THREAD_CONTEXT_CLASSLOADER + "', but did not", pr.stdout.contains(SWING_THREAD_CONTEXT_CLASSLOADER)); + } + + @Test + @KnownToFail + @Bug(id="PR1251") + public void testJNLPApplicationAppContext() throws Exception { + ProcessResult pr = server.executeJavawsHeadless("/AppContextHasJNLPClassLoader.jnlp"); + assertHasJNLPClassLoaderAsContextClassloader(pr); + } + + @Test + @KnownToFail // EventQueue.invokeAndWait is broken in JNLP applets, see PR1253 + @Bug(id={"PR1251","PR1253"}) + public void testJNLPAppletAppContext() throws Exception { + ProcessResult pr = server.executeJavaws("/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp"); + assertHasJNLPClassLoaderAsContextClassloader(pr); + } + + @Test + @TestInBrowsers(testIn={Browsers.one}) + @KnownToFail + @Bug(id="PR1251") + public void testAppletAppContext() throws Exception { + ProcessResult pr = server.executeBrowser("/AppContextHasJNLPClassLoader.html", AutoClose.CLOSE_ON_CORRECT_END); + assertHasJNLPClassLoaderAsContextClassloader(pr); + } +} From adomurad at icedtea.classpath.org Tue Apr 23 10:26:19 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 17:26:19 +0000 Subject: /hg/icedtea-web: Clean-up of dead & outdated parts of NetxPanel Message-ID: changeset 032710c7ed32 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=032710c7ed32 author: Adam Domurad date: Tue Apr 23 13:27:20 2013 -0400 Clean-up of dead & outdated parts of NetxPanel diffstat: ChangeLog | 11 +++ netx/net/sourceforge/jnlp/NetxPanel.java | 33 +-------- plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java | 2 +- 3 files changed, 17 insertions(+), 29 deletions(-) diffs (102 lines): diff -r db364934ee33 -r 032710c7ed32 ChangeLog --- a/ChangeLog Tue Apr 23 12:56:13 2013 -0400 +++ b/ChangeLog Tue Apr 23 13:27:20 2013 -0400 @@ -1,3 +1,14 @@ +2013-04-23 Adam Domurad + + * netx/net/sourceforge/jnlp/NetxPanel.java + (exitOnFailure): Remove always-false field. + (NetxPanel): Remove overloaded constructor + (runLoader): Do not swallow LaunchException's. Remove dead + exitOnFailure code-path. Set applet status to APPLET_ERROR on + exception. + * plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java + (createPanel): Update call to NetxPanel constructor. + 2013-04-23 Adam Domurad * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: diff -r db364934ee33 -r 032710c7ed32 netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Tue Apr 23 12:56:13 2013 -0400 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Tue Apr 23 13:27:20 2013 -0400 @@ -46,7 +46,6 @@ public class NetxPanel extends AppletViewerPanel implements SplashController { private final PluginParameters parameters; private PluginBridge bridge = null; - private boolean exitOnFailure = true; private AppletInstance appInst = null; private SplashController splashController; private boolean appletAlive; @@ -79,13 +78,6 @@ uKeyToTG.put(uniqueKey, tg); } } - } - - // overloaded constructor, called when initialized via plugin - public NetxPanel(URL documentURL, PluginParameters params, - boolean exitOnFailure) { - this(documentURL, params); - this.exitOnFailure = exitOnFailure; this.appletAlive = true; } @@ -117,28 +109,12 @@ dispatchAppletEvent(APPLET_LOADING, null); status = APPLET_LOAD; - Launcher l = new Launcher(exitOnFailure); + Launcher l = new Launcher(false); - try { - appInst = (AppletInstance) l.launch(bridge, this); - } catch (LaunchException e) { - // Assume user has indicated he does not trust the - // applet. - if (exitOnFailure) - System.exit(1); - } + // May throw LaunchException: + appInst = (AppletInstance) l.launch(bridge, this); applet = appInst.getApplet(); - //On the other hand, if you create an applet this way, it'll work - //fine. Note that you might to open visibility in sun.applet.AppletPanel - //for this to work (the loader field, and getClassLoader). - //loader = getClassLoader(getCodeBase(), getClassLoaderCacheKey()); - //applet = createApplet(loader); - - // This shows that when using NetX's JNLPClassLoader, keyboard input - // won't make it to the applet, whereas using sun.applet.AppletClassLoader - // works just fine. - if (applet != null) { // Stick it in the frame applet.setStub(this); @@ -149,12 +125,13 @@ } } catch (Exception e) { this.appletAlive = false; + status = APPLET_ERROR; e.printStackTrace(); replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); } finally { // PR1157: This needs to occur even in the case of an exception // so that the applet's event listeners are signaled. - // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer it can properly stop waiting + // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer can properly stop waiting // in PluginAppletViewer.waitForAppletInit dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); } diff -r db364934ee33 -r 032710c7ed32 plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java Tue Apr 23 12:56:13 2013 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java Tue Apr 23 13:27:20 2013 -0400 @@ -85,7 +85,7 @@ final PluginParameters params) { final NetxPanel panel = AccessController.doPrivileged(new PrivilegedAction() { public NetxPanel run() { - NetxPanel panel = new NetxPanel(doc, params, false); + NetxPanel panel = new NetxPanel(doc, params); NetxPanel.debug("Using NetX panel"); PluginDebug.debug(params.toString()); return panel; From adomurad at icedtea.classpath.org Tue Apr 23 10:39:12 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 17:39:12 +0000 Subject: /hg/icedtea-web: Reproducer for URL parameters in document-base. Message-ID: changeset b16893fb126a in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b16893fb126a author: Adam Domurad date: Tue Apr 23 13:39:45 2013 -0400 Reproducer for URL parameters in document-base. diffstat: ChangeLog | 10 + tests/reproducers/simple/DocumentBaseEncoding/resources/Document Base Encoding.html | 43 +++++ tests/reproducers/simple/DocumentBaseEncoding/srcs/DocumentBaseEncoding.java | 47 +++++ tests/reproducers/simple/DocumentBaseEncoding/testcases/DocumentBaseEncodingTests.java | 84 ++++++++++ 4 files changed, 184 insertions(+), 0 deletions(-) diffs (203 lines): diff -r 032710c7ed32 -r b16893fb126a ChangeLog --- a/ChangeLog Tue Apr 23 13:27:20 2013 -0400 +++ b/ChangeLog Tue Apr 23 13:39:45 2013 -0400 @@ -1,3 +1,13 @@ +2013-04-23 Adam Domurad + + Reproducer for URL parameters (eg ?a=b) in document-base. + * tests/reproducers/simple/URLParametersInDocumentBase/resources/URLParametersInDocumentBase.html: + Page that loads applet. + * tests/reproducers/simple/URLParametersInDocumentBase/srcs/URLParametersInDocumentBase.java: + Applet that prints code-base & document-base. + * tests/reproducers/simple/URLParametersInDocumentBase/testcases/URLParametersInDocumentBaseTests.java: + Test-driver. + 2013-04-23 Adam Domurad * netx/net/sourceforge/jnlp/NetxPanel.java diff -r 032710c7ed32 -r b16893fb126a tests/reproducers/simple/DocumentBaseEncoding/resources/Document Base Encoding.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/DocumentBaseEncoding/resources/Document Base Encoding.html Tue Apr 23 13:39:45 2013 -0400 @@ -0,0 +1,43 @@ + + + + diff -r 032710c7ed32 -r b16893fb126a tests/reproducers/simple/DocumentBaseEncoding/srcs/DocumentBaseEncoding.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/DocumentBaseEncoding/srcs/DocumentBaseEncoding.java Tue Apr 23 13:39:45 2013 -0400 @@ -0,0 +1,47 @@ +/* +Copyright (C) 2013 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 java.applet.Applet; + +public class DocumentBaseEncoding extends Applet { + @Override + public void init() { + System.out.println("DocumentBase: " + getDocumentBase()); + System.out.println("CodeBase: " + getCodeBase()); + System.out.println("*** APPLET FINISHED ***"); + } +} diff -r 032710c7ed32 -r b16893fb126a tests/reproducers/simple/DocumentBaseEncoding/testcases/DocumentBaseEncodingTests.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/DocumentBaseEncoding/testcases/DocumentBaseEncodingTests.java Tue Apr 23 13:39:45 2013 -0400 @@ -0,0 +1,84 @@ +/* +Copyright (C) 2013 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.ProcessResult; +import net.sourceforge.jnlp.ServerAccess.AutoClose; +import net.sourceforge.jnlp.annotations.TestInBrowsers; +import net.sourceforge.jnlp.browsertesting.BrowserTest; +import net.sourceforge.jnlp.browsertesting.Browsers; + +import org.junit.Assert; +import org.junit.Test; + +public class DocumentBaseEncodingTests extends BrowserTest { + + static final private String urlPattern = "http://localhost:\\d+"; + + private String escapePattern(String plainText) { + return "\\Q" + plainText + "\\E"; + } + + // Surround a pattern with two plain text matches and wildcards to match any occurence + private String surroundPattern(String plainText1, String pattern, String plainText2) { + return "(?s).*" + escapePattern(plainText1) + pattern + escapePattern(plainText2) + "\\W.*"; + } + + private void testEncoding(String urlParam, String encodedUrlParam) throws Exception { + ProcessResult pr = server.executeBrowser("Document Base Encoding.html" + urlParam, AutoClose.CLOSE_ON_CORRECT_END); + final String codeBasePattern = surroundPattern("CodeBase: ", urlPattern, "/"); + final String documentBasePattern = surroundPattern("DocumentBase: ", urlPattern, "/Document%20Base%20Encoding.html" + encodedUrlParam); + + Assert.assertTrue("DocumentBaseEncoding stdout should match '" + codeBasePattern + "' but did not.", + pr.stdout.matches(codeBasePattern)); + Assert.assertTrue("DocumentBaseEncoding stdout should match '" + documentBasePattern + "' but did not.", + pr.stdout.matches(documentBasePattern)); + } + + @Test + @TestInBrowsers(testIn = { Browsers.one }) + public void testSpacesInUrl() throws Exception { + testEncoding("?spaces test", "?spaces%20test"); + } + + @Test + @TestInBrowsers(testIn = { Browsers.one }) + public void testComplexParameterInUrl() throws Exception { + + String urlParam = "?testkey=http%3A%2F%2Ftest.com%3Ftest%3Dtest"; // test value is 'http://test.com?test=test' percent-encoded + testEncoding(urlParam, urlParam /* Already encoded. */); + } +} From adomurad at icedtea.classpath.org Tue Apr 23 10:46:41 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 17:46:41 +0000 Subject: /hg/icedtea-web: Ensure document-base is properly encoded Message-ID: changeset 9d17ddb0003f in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9d17ddb0003f author: Adam Domurad date: Tue Apr 23 13:47:42 2013 -0400 Ensure document-base is properly encoded diffstat: ChangeLog | 8 ++++++++ netx/net/sourceforge/jnlp/cache/ResourceTracker.java | 5 ++++- plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 3 +-- 3 files changed, 13 insertions(+), 3 deletions(-) diffs (50 lines): diff -r b16893fb126a -r 9d17ddb0003f ChangeLog --- a/ChangeLog Tue Apr 23 13:39:45 2013 -0400 +++ b/ChangeLog Tue Apr 23 13:47:42 2013 -0400 @@ -1,3 +1,11 @@ +2013-04-23 Adam Domurad + + Ensure document-base is properly encoded. + * netx/net/sourceforge/jnlp/cache/ResourceTracker.java + (getCacheFile): Use URL#toUri().getPath() instead of URL#getFile(). + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java + (handleInitializationMessage): Don't decode document-base. + 2013-04-23 Adam Domurad Reproducer for URL parameters (eg ?a=b) in document-base. diff -r b16893fb126a -r 9d17ddb0003f netx/net/sourceforge/jnlp/cache/ResourceTracker.java --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Apr 23 13:39:45 2013 -0400 +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Apr 23 13:47:42 2013 -0400 @@ -398,7 +398,7 @@ return resource.localFile; if (location.getProtocol().equalsIgnoreCase("file")) { - File file = new File(location.getFile()); + File file = new File(location.toURI().getPath()); if (file.exists()) return file; } @@ -409,6 +409,9 @@ ex.printStackTrace(); return null; // need an error exception to throw + } catch (URISyntaxException e) { + e.printStackTrace(); + return null; } } diff -r b16893fb126a -r 9d17ddb0003f plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Tue Apr 23 13:39:45 2013 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Tue Apr 23 13:47:42 2013 -0400 @@ -439,8 +439,7 @@ String height = msgParts[2]; int spaceLocation = message.indexOf(' ', "tag".length() + 1); - String documentBase = - UrlUtil.decode(message.substring("tag".length() + 1, spaceLocation)); + String documentBase = message.substring("tag".length() + 1, spaceLocation); String paramString = message.substring(spaceLocation + 1); PluginDebug.debug("Handle = ", handle, "\n", From adomurad at icedtea.classpath.org Tue Apr 23 10:58:22 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 23 Apr 2013 17:58:22 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 6b680fe9c390 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=6b680fe9c390 author: Adam Domurad date: Tue Apr 23 13:55:23 2013 -0400 Introduce more UrlUtils functions. changeset b912e91204b1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b912e91204b1 author: Adam Domurad date: Tue Apr 23 13:59:20 2013 -0400 Add tests for newly added UrlUtils functions diffstat: ChangeLog | 17 ++ netx/net/sourceforge/jnlp/cache/CacheUtil.java | 29 ++- netx/net/sourceforge/jnlp/cache/ResourceTracker.java | 38 +---- netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java | 8 +- netx/net/sourceforge/jnlp/util/UrlUtils.java | 75 +++++++++- tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java | 8 +- tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java | 38 ++++- 7 files changed, 156 insertions(+), 57 deletions(-) diffs (358 lines): diff -r 9d17ddb0003f -r b912e91204b1 ChangeLog --- a/ChangeLog Tue Apr 23 13:47:42 2013 -0400 +++ b/ChangeLog Tue Apr 23 13:59:20 2013 -0400 @@ -1,3 +1,20 @@ +2013-04-23 Adam Domurad + + * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: + Added tests for decodeUrlQuietly, normalizeUrl, normalizeUrlQuietly. + +2013-04-23 Adam Domurad + + * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no + longer used constants. Remove (normalizeUrl). Update calls. + * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports. + Update calls. + * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java: + Ensure file://-protocol URLs are encoded. + * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl), + and related utility methods. Allow for optionally encoding file:// + URLs. + 2013-04-23 Adam Domurad Ensure document-base is properly encoded. diff -r 9d17ddb0003f -r b912e91204b1 netx/net/sourceforge/jnlp/cache/CacheUtil.java --- a/netx/net/sourceforge/jnlp/cache/CacheUtil.java Tue Apr 23 13:47:42 2013 -0400 +++ b/netx/net/sourceforge/jnlp/cache/CacheUtil.java Tue Apr 23 13:59:20 2013 -0400 @@ -18,25 +18,38 @@ import static net.sourceforge.jnlp.runtime.Translator.R; -import java.io.*; -import java.net.*; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FilePermission; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; import java.nio.channels.OverlappingFileLockException; +import java.security.Permission; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Set; -import java.security.*; -import javax.jnlp.*; -import net.sourceforge.jnlp.*; +import javax.jnlp.DownloadServiceListener; + +import net.sourceforge.jnlp.Version; import net.sourceforge.jnlp.config.DeploymentConfiguration; -import net.sourceforge.jnlp.runtime.*; +import net.sourceforge.jnlp.runtime.ApplicationInstance; +import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.util.FileUtils; import net.sourceforge.jnlp.util.PropertiesFile; +import net.sourceforge.jnlp.util.UrlUtils; /** * Provides static methods to interact with the cache, download @@ -72,8 +85,8 @@ return true; } try { - URL nu1 = ResourceTracker.normalizeUrl(u1, false); - URL nu2 = ResourceTracker.normalizeUrl(u2, false); + URL nu1 = UrlUtils.normalizeUrl(u1); + URL nu2 = UrlUtils.normalizeUrl(u2); if (notNullUrlEquals(nu1, nu2)) { return true; } diff -r 9d17ddb0003f -r b912e91204b1 netx/net/sourceforge/jnlp/cache/ResourceTracker.java --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Apr 23 13:47:42 2013 -0400 +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Apr 23 13:59:20 2013 -0400 @@ -50,6 +50,7 @@ import net.sourceforge.jnlp.event.DownloadListener; import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.util.StreamUtils; +import net.sourceforge.jnlp.util.UrlUtils; import net.sourceforge.jnlp.util.WeakList; /** @@ -115,15 +116,6 @@ private static final int ERROR = Resource.ERROR; private static final int STARTED = Resource.STARTED; - // normalization of url - private static final char PATH_DELIMITER_MARK = '/'; - private static final String PATH_DELIMITER = "" + PATH_DELIMITER_MARK; - private static final char QUERY_DELIMITER_MARK = '&'; - private static final String QUERY_DELIMITER = "" + QUERY_DELIMITER_MARK; - private static final char QUERY_MARK = '?'; - private static final char HREF_MARK = '#'; - private static final String UTF8 = "utf-8"; - /** max threads */ private static final int maxThreads = 5; @@ -190,7 +182,7 @@ if (location == null) throw new IllegalResourceDescriptorException("location==null"); try { - location = normalizeUrl(location, JNLPRuntime.isDebug()); + location = UrlUtils.normalizeUrl(location); } catch (Exception ex) { System.err.println("Normalization of " + location.toString() + " have failed"); ex.printStackTrace(); @@ -1195,30 +1187,4 @@ // selectNextResource(); } }; - - public static URL normalizeUrl(URL u, boolean debug) throws MalformedURLException, UnsupportedEncodingException, URISyntaxException { - if (u == null) { - return null; - } - String protocol = u.getProtocol(); - - if (protocol == null || "file".equals(protocol)) { - return u; - } - - if (u.getPath() == null) { - return u; - } - - //Decode the URL before encoding - URL decodedURL = new URL(URLDecoder.decode(u.toString(), UTF8)); - - //Create URI with the decoded URL - URI uri = new URI(decodedURL.getProtocol(), null, decodedURL.getHost(), decodedURL.getPort(), decodedURL.getPath(), decodedURL.getQuery(), null); - - //Returns the encoded URL - URL encodedURL = new URL(uri.toASCIIString()); - - return encodedURL; - } } diff -r 9d17ddb0003f -r b912e91204b1 netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java --- a/netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java Tue Apr 23 13:47:42 2013 -0400 +++ b/netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java Tue Apr 23 13:59:20 2013 -0400 @@ -99,8 +99,8 @@ private static UnsignedAppletActionEntry getMatchingItem(UnsignedAppletActionStorage actionStorage, PluginBridge file) { return actionStorage.getMatchingItem( - UrlUtils.normalizeUrlAndStripParams(file.getSourceLocation()).toString(), - UrlUtils.normalizeUrlAndStripParams(file.getCodeBase()).toString(), + UrlUtils.normalizeUrlAndStripParams(file.getSourceLocation(), true /* encode local files */).toString(), + UrlUtils.normalizeUrlAndStripParams(file.getCodeBase(), true /* encode local files */).toString(), toRelativePaths(file.getArchiveJars(), file.getCodeBase().toString())); } @@ -132,8 +132,8 @@ return; } - URL codebase = UrlUtils.normalizeUrlAndStripParams(file.getCodeBase()); - URL documentbase = UrlUtils.normalizeUrlAndStripParams(file.getSourceLocation()); + URL codebase = UrlUtils.normalizeUrlAndStripParams(file.getCodeBase(), true /* encode local files */); + URL documentbase = UrlUtils.normalizeUrlAndStripParams(file.getSourceLocation(), true /* encode local files */); /* Else, create a new entry */ UrlRegEx codebaseRegex = new UrlRegEx("\\Q" + codebase + "\\E"); diff -r 9d17ddb0003f -r b912e91204b1 netx/net/sourceforge/jnlp/util/UrlUtils.java --- a/netx/net/sourceforge/jnlp/util/UrlUtils.java Tue Apr 23 13:47:42 2013 -0400 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Tue Apr 23 13:59:20 2013 -0400 @@ -38,18 +38,21 @@ package net.sourceforge.jnlp.util; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.net.URL; - -import net.sourceforge.jnlp.cache.ResourceTracker; +import java.net.URLDecoder; public class UrlUtils { + private static final String UTF8 = "utf-8"; - public static URL normalizeUrlAndStripParams(URL url) { + public static URL normalizeUrlAndStripParams(URL url, boolean encodeFileUrls) { try { String[] urlParts = url.toString().split("\\?"); URL strippedUrl = new URL(urlParts[0]); - return ResourceTracker.normalizeUrl(strippedUrl, false); + return normalizeUrl(strippedUrl, encodeFileUrls); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { @@ -58,6 +61,10 @@ return url; } + public static URL normalizeUrlAndStripParams(URL url) { + return normalizeUrlAndStripParams(url, false); + } + public static boolean isLocalFile(URL url) { if (url.getProtocol().equals("file") && @@ -67,4 +74,64 @@ } return false; } + + /* Decode a percent-encoded URL. Catch checked exceptions and log. */ + public static URL decodeUrlQuietly(URL url) { + try { + return new URL(URLDecoder.decode(url.toString(), UTF8)); + } catch (IOException e) { + e.printStackTrace(); + return url; + } + } + + /* Ensure a URL is properly percent-encoded. + * Certain usages require local-file URLs to be encoded, eg for code-base & document-base. */ + public static URL normalizeUrl(URL url, boolean encodeFileUrls) throws MalformedURLException, UnsupportedEncodingException, URISyntaxException { + if (url == null) { + return null; + } + String protocol = url.getProtocol(); + boolean shouldEncode = (encodeFileUrls || !"file".equals(protocol)); + + if (protocol == null || !shouldEncode || url.getPath() == null) { + return url; + } + + //Decode the URL before encoding + URL decodedURL = new URL(URLDecoder.decode(url.toString(), UTF8)); + + //Create URI with the decoded URL + URI uri = new URI(decodedURL.getProtocol(), null, decodedURL.getHost(), decodedURL.getPort(), decodedURL.getPath(), decodedURL.getQuery(), null); + + //Returns the encoded URL + URL encodedURL = new URL(uri.toASCIIString()); + + return encodedURL; + } + + /* Ensure a URL is properly percent-encoded. Does not encode local-file URLs. */ + public static URL normalizeUrl(URL url) throws MalformedURLException, UnsupportedEncodingException, URISyntaxException { + return normalizeUrl(url, false); + } + + /* Ensure a URL is properly percent-encoded. Catch checked exceptions and log. */ + public static URL normalizeUrlQuietly(URL url, boolean encodeFileUrls) { + try { + return normalizeUrl(url, encodeFileUrls); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + return url; + } + + /* Ensure a URL is properly percent-encoded. Catch checked exceptions and log. */ + public static URL normalizeUrlQuietly(URL url) { + return normalizeUrlQuietly(url, false); + } + } diff -r 9d17ddb0003f -r b912e91204b1 tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java Tue Apr 23 13:47:42 2013 -0400 +++ b/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java Tue Apr 23 13:59:20 2013 -0400 @@ -40,6 +40,9 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; + +import net.sourceforge.jnlp.util.UrlUtils; + import org.junit.Assert; import org.junit.Test; @@ -62,9 +65,6 @@ } } - private static URL normalizeUrl(URL uRL) throws MalformedURLException, UnsupportedEncodingException, URISyntaxException { - return ResourceTracker.normalizeUrl(uRL, false); - } public static final int CHANGE_BORDER = 6; public static URL[] getUrls() throws MalformedURLException { @@ -92,7 +92,7 @@ URL[] n = new URL[u.length]; for (int i = 0; i < n.length; i++) { - n[i] = normalizeUrl(u[i]); + n[i] = UrlUtils.normalizeUrl(u[i]); } return n; diff -r 9d17ddb0003f -r b912e91204b1 tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Tue Apr 23 13:47:42 2013 -0400 +++ b/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Tue Apr 23 13:59:20 2013 -0400 @@ -27,4 +27,40 @@ assertEquals("http://example.com/%20test%20test", UrlUtils.normalizeUrlAndStripParams(new URL("http://example.com/ test%20test ?test=test")).toString()); } -} + + @Test + public void testDecodeUrlQuietly() throws Exception { + // This is a wrapper over URLDecoder.decode, simple test suffices + assertEquals("http://example.com/ test test", + UrlUtils.decodeUrlQuietly(new URL("http://example.com/%20test%20test")).toString()); + } + + @Test + public void testNormalizeUrl() throws Exception { + boolean[] encodeFileUrlPossiblities = {false, true}; + + // encodeFileUrl flag should have no effect on non-file URLs, but let's be sure. + for (boolean encodeFileUrl : encodeFileUrlPossiblities ) { + // Test URL with no previous encoding + assertEquals("http://example.com/%20test", + UrlUtils.normalizeUrl(new URL("http://example.com/ test"), encodeFileUrl).toString()); + // Test partially encoded URL with trailing spaces + assertEquals("http://example.com/%20test%20test", + UrlUtils.normalizeUrl(new URL("http://example.com/ test%20test "), encodeFileUrl).toString()); + } + + // Test file URL with file URL encoding turned off + assertFalse("file://example/%20test".equals( + UrlUtils.normalizeUrl(new URL("file://example/ test"), false).toString())); + + // Test file URL with file URL encoding turned on + assertEquals("file://example/%20test", + UrlUtils.normalizeUrl(new URL("file://example/ test"), true).toString()); + } + @Test + public void testNormalizeUrlQuietly() throws Exception { + // This is a wrapper over UrlUtils.normalizeUrl(), simple test suffices + assertEquals("http://example.com/%20test%20test", + UrlUtils.normalizeUrl(new URL("http://example.com/ test%20test ")).toString()); + } +} \ No newline at end of file From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 11:46:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 18:46:08 +0000 Subject: [Bug 1411] New: openjdk/jdk/test/java/rmi/registry/readTest/readTest.sh test failure Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1411 Bug ID: 1411 Summary: openjdk/jdk/test/java/rmi/registry/readTest/readTest.s h test failure Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: jamie at ubuntu.com CC: unassigned at icedtea.classpath.org Looking at the testsuite results for our recent 2.3.9 upload to Ubuntu 13.04: https://launchpad.net/ubuntu/+source/openjdk-7/7u21-2.3.9-1ubuntu1/+build/4510499/+files/buildlog_ubuntu-raring-i386.openjdk-7_7u21-2.3.9-1ubuntu1_UPLOADING.txt.gz I noticed a new failure with java/rmi/registry/readTest/readTest.sh. I traced this down to mismatching ports between readTest.java and readTest.sh. Ie: readTest.java has: public class readTest { public static void main(String args[]) throws Exception { int port = 7491; ... Registry registry = LocateRegistry.getRegistry(port); ... but readTest.sh has: ${TESTJAVA}${FS}bin${FS}rmiregistry -J-Djava.rmi.server.useCodebaseOnly=false \ ${TESTTOOLVMOPTS} 64005 > ..${FS}${RMIREG_OUT} 2>&1 & In 2.3.7, readTest.java used 7491 and readTest.sh also used it: ${TESTJAVA}${FS}bin${FS}rmiregistry 7491 > ..${FS}${RMIREG_OUT} 2>&1 & Indeed, if I adjust readTest.java and readTest.sh to match ports in 2.3.9, then the test passes. FYI, it looks like the changes for http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/rev/547880604844 were incompletely applied (readTest.sh is adjusted to use 64005, but readTest.java as not adjusted to use TestLibrary.READTEST_REGISTRY_PORT). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/643b0cf2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 12:49:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 19:49:08 +0000 Subject: [Bug 1412] New: Class not found exception on apache commons validator (icedtea 7) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1412 Bug ID: 1412 Summary: Class not found exception on apache commons validator (icedtea 7) Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: blocker Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: leandro at summa.com.br CC: unassigned at icedtea.classpath.org After upgrading from icedtea-web 6 to icedtea-web 7, the application is crashing.., there is a possibilitie that the problem is due to openjdk 7, but here is the stack trace that is happening right after logging into my webstart application.. org.apache.commons.validator.ValidatorException: java.lang.ClassNotFoundException: net.java.dev.genesis.ui.BasicValidator at org.apache.commons.validator.ValidatorAction.loadValidationClass(ValidatorAction.java:624) at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:530) at org.apache.commons.validator.Field.validateForRule(Field.java:796) at org.apache.commons.validator.Field.validate(Field.java:876) at org.apache.commons.validator.Form.validate(Form.java:288) at org.apache.commons.validator.Validator.validate(Validator.java:351) at net.java.dev.genesis.ui.ValidationUtils.validate(ValidationUtils.java:198) at net.java.dev.genesis.ui.ValidationUtils.validate(ValidationUtils.java:181) at net.java.dev.genesis.ui.controller.DefaultFormController.invokeAction(DefaultFormController.java:788) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) ...... at com.sun.proxy.$Proxy17.invokeAction(Unknown Source) at net.java.dev.genesis.ui.binding.AbstractBinder.invokeAction(AbstractBinder.java:587) at net.java.dev.genesis.ui.binding.AbstractBinder.invokeFormAction(AbstractBinder.java:781) at net.java.dev.genesis.ui.swing.components.AbstractComponentBinder$ComponentBoundAction$1.actionPerformed(AbstractComponentBinder.java:353) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(BasicRootPaneUI.java:208) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661) at javax.swing.JComponent.processKeyBinding(JComponent.java:2870) at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:306) at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:250) at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2962) at javax.swing.JComponent.processKeyBindings(JComponent.java:2954) at javax.swing.JComponent.processKeyEvent(JComponent.java:2833) at java.awt.Component.processEvent(Component.java:6282) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727) at java.awt.Component.dispatchEventImpl(Component.java:4731) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:688) at java.awt.EventQueue$3.run(EventQueue.java:686) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:702) at java.awt.EventQueue$4.run(EventQueue.java:700) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:699) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/7bc83a2c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 13:09:35 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 20:09:35 +0000 Subject: [Bug 1403] JVM Crashes when XX:ConcGCThreads is greater than the number of cores In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1403 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1272 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/1c8e6d3b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Apr 23 13:09:35 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Apr 2013 20:09:35 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1403 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130423/b2e89f46/attachment.html From jvanek at redhat.com Tue Apr 23 23:02:43 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 08:02:43 +0200 Subject: [rfc][icedtea-web] Fix potential NPE by removing line PluginAppletViewer.java:1499 In-Reply-To: <5176A6CA.3070105@redhat.com> References: <5176A6CA.3070105@redhat.com> Message-ID: <51777583.2090101@redhat.com> On 04/23/2013 05:20 PM, Adam Domurad wrote: > During shutdown I got: > > Exception in thread "Thread-14" java.lang.NullPointerException > at sun.applet.PluginAppletViewer$7.run(PluginAppletViewer.java:1499) > at java.lang.Thread.run(Thread.java:722) > > For the line here in appletClose(): > > ClassLoader cl = p.applet.getClass().getClassLoader(); > > // Since we want to deal with JNLPClassLoader, extract it if this > // is a codebase loader > if (cl instanceof JNLPClassLoader.CodeBaseClassLoader) > cl = ((JNLPClassLoader.CodeBaseClassLoader) cl).getParentJNLPClassLoader(); > > ThreadGroup tg = ((JNLPClassLoader) cl).getApplication().getThreadGroup(); > ^^^^^^^^^^^^^^^^^^^^ > This ThreadGroup grab isn't needed at all (unused), and getApplication can't be guaranteed to be set-up at this point, I'm in favour of axing it. > > -Adam sounds good to me. From jvanek at redhat.com Tue Apr 23 23:22:04 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 08:22:04 +0200 Subject: [rfc][icedtea-web] A dead-lock / Firefox hanging fix In-Reply-To: <516DB169.3030301@redhat.com> References: <516DB169.3030301@redhat.com> Message-ID: <51777A0C.1040409@redhat.com> On 04/16/2013 10:15 PM, Adam Domurad wrote: > Hi all. > > Recently on one of my computers I noticed that Firefox was hanging every time an applet failed. While I'm not sure why this was suddenly happening every time, I took it as an opportunity to look into a fix while the bug was in plain sight. Was this caused by some special version of firefox? I was unable to reproduce - nowhere. Anyway I think this cleanup is good thing and is doing the code much more readable The only torubeling thing is "why it was so complicated??" > > The problem area is here: > > plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:740 (from HEAD) >> while (panel == null || !panel.isAlive()) { >> ^^^^^^^^^^^^^ >> maxTimeToSleep -= waitTillTimeout(panelLock, panelLive, >> maxTimeToSleep); >> >> /* we already waited till timeout, give up here directly, >> * instead of waiting 180s again in below waitForAppletInit() >> */ >> if(maxTimeToSleep < 0) { >> streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + "Initialization timed out"); >> return; > > The intent for using panel.isAlive() in the condition here is presumably to ensure that the handler thread is created. NetxPanel is created with appletAlive=true, so the following method: > > netx/net/sourceforge/jnlp/NetxPanel.java:196 (from HEAD) >> public boolean isAlive() { >> return handler != null && handler.isAlive() && this.appletAlive; >> } > > Effectively tests that the handler thread was created. There's one problem, in the case of an exception path ... > > netx/net/sourceforge/jnlp/NetxPanel.java:150 (from HEAD) >> } catch (Exception e) { >> this.appletAlive = false; >> ^^^^^^^^^^^^^^^^^^ >> e.printStackTrace(); >> replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); > > This unfortunately causes isAlive() to permanently return false from that point onwards. Clearly if isAlive() ever gets false in the condition at PluginAppletViewer:740 we will loop forever. The C++ side of the plugin can do nothing but wait. Additionally, since icedtea-web is run in-process unlike other plugins, this hangs firefox completely. > > One thing to notice is, PluginAppletViewer:740-751 are fairly redundant because line 760 (== 'waitForAppletInit(panel)') waits for complete initialization anyway. > The patch therefore axes these lines, which were mostly identical to waitForAppletInit. There is no need to separately wait for the handler thread to initialize. It's also worth noting that waiting on panel == null makes little sense because 'panel' is set *only* in the constructor. Therefore if it were ever null we would be spinning forever anyway. > > The other part of the fix was making sure the C++ side of the plugin gets a response. > > plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:764 (from HEAD) >> if (panel.getApplet() == null) { >> streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + "Initialization failed"); >> return; >> } > > This lacks a response to the message being handled, meaning the C++ side will wait until timeout. Adding 'streamhandler.write("context 0 reference " + reference + " Error");' solves the problem neatly. > > > ChangeLog: Myabe little but more detailed description of the removal code (similar as above) Anyway.. push when you feel .... > 2013-XX-XX Adam Domurad > > Fix a dead-lock that can cause (namely) Firefox to hang. > * netx/net/sourceforge/jnlp/NetxPanel.java > (appletAlive): Remove flag. > (isAlive): Remove getter. > (initialized): New, explicit initialization flag. > (isInitialized): New, getter. > (runLoader): Set initialization flag when done (whether errored or not). > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > (waitForAppletInit): Wait on initialization flag from NetxPanel. > (handleMessage): Remove redundant waiting for init. Respond properly to > GetJavaObject in case of error/time-out. > > > Happy hacking, > -Adam From jvanek at redhat.com Tue Apr 23 23:43:31 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 08:43:31 +0200 Subject: [rfc][icedtea-web] PluginAppletViewer unit tests with test extensions for mocking plugin input&output pipes In-Reply-To: <5176AF6A.60901@redhat.com> References: <513E4ACC.8090304@redhat.com> <515AE120.7000802@redhat.com> <51718D90.4090308@redhat.com> <51750046.9000604@redhat.com> <5176AF6A.60901@redhat.com> Message-ID: <51777F13.4040809@redhat.com> On 04/23/2013 05:57 PM, Adam Domurad wrote: > On 04/22/2013 05:17 AM, Jiri Vanek wrote: >> On 04/19/2013 08:31 PM, Adam Domurad wrote: >>> Hopefully more tasteful this time around :-) >> >> >> Ok. Walk through and I think it can go in. Two nits: >> >> 1)Maybe some test to new test-extension classes would be worthy:( > > I wouldn't want to anger the gods of quality assurance, attached is my meagre offering: tss :) > > 2013-04-XX Adam Domurad > > * tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java: Unit tests for > AsyncCall test extension. > > >> 2) checking the stared Test utilities methods.. When seeing them separated ... well can be as it is, but (although I previously said it in reverse way) maybe they are rally woorthy to be in separate file in test extensions. But as you are confirming my previous suspicions then it is probably ok and do your best. >> >> J. >> > > I believe if they are needed they can be separated afterwards. > yy > OK to push everything + this new test ? yy :) Go on and push > > Happy hacking, > -Adam From ptisnovs at icedtea.classpath.org Wed Apr 24 01:25:48 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 24 Apr 2013 08:25:48 +0000 Subject: /hg/rhino-tests: Updated four tests in ScriptExceptionClassTest ... Message-ID: changeset 61dbb34d31e6 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=61dbb34d31e6 author: Pavel Tisnovsky date: Wed Apr 24 10:29:05 2013 +0200 Updated four tests in ScriptExceptionClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/ScriptExceptionClassTest.java | 74 ++++++++++++++++++++++- 2 files changed, 77 insertions(+), 4 deletions(-) diffs (135 lines): diff -r 0cc424132a4d -r 61dbb34d31e6 ChangeLog --- a/ChangeLog Mon Apr 22 10:24:46 2013 +0200 +++ b/ChangeLog Wed Apr 24 10:29:05 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-24 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptExceptionClassTest.java: + Updated four tests in ScriptExceptionClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-22 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineClassTest.java: diff -r 0cc424132a4d -r 61dbb34d31e6 src/org/RhinoTests/ScriptExceptionClassTest.java --- a/src/org/RhinoTests/ScriptExceptionClassTest.java Mon Apr 22 10:24:46 2013 +0200 +++ b/src/org/RhinoTests/ScriptExceptionClassTest.java Wed Apr 24 10:29:05 2013 +0200 @@ -288,6 +288,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); testedConstructors_jdk6.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); @@ -299,8 +300,23 @@ testedConstructors_jdk7.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); testedConstructors_jdk7.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String,java.lang.String,int,int)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String,java.lang.String,int)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.scriptExceptionClass.getConstructors(); @@ -325,6 +341,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); testedConstructors_jdk6.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); @@ -336,8 +353,23 @@ testedConstructors_jdk7.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); testedConstructors_jdk7.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String,java.lang.String,int,int)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.String,java.lang.String,int)", "javax.script.ScriptException"); + testedConstructors_jdk8.put("public javax.script.ScriptException(java.lang.Exception)", "javax.script.ScriptException"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.scriptExceptionClass.getDeclaredConstructors(); @@ -371,7 +403,24 @@ constructorsThatShouldExist_jdk7.put("javax.script.ScriptException", new Class[] {java.lang.Exception.class}); constructorsThatShouldExist_jdk7.put("javax.script.ScriptException", new Class[] {java.lang.String.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class, java.lang.String.class, int.class, int.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class, java.lang.String.class, int.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.Exception.class}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -409,7 +458,24 @@ constructorsThatShouldExist_jdk7.put("javax.script.ScriptException", new Class[] {java.lang.Exception.class}); constructorsThatShouldExist_jdk7.put("javax.script.ScriptException", new Class[] {java.lang.String.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class, java.lang.String.class, int.class, int.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.String.class, java.lang.String.class, int.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptException", new Class[] {java.lang.Exception.class}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Wed Apr 24 01:36:25 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 24 Apr 2013 08:36:25 +0000 Subject: /hg/gfx-test: Added three new texture generators into CommonRend... Message-ID: changeset aa69e4e77a1d in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=aa69e4e77a1d author: Pavel Tisnovsky date: Wed Apr 24 10:39:35 2013 +0200 Added three new texture generators into CommonRenderingStyles. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/CommonRenderingStyles.java | 54 ++++++++++++++++++++ 2 files changed, 59 insertions(+), 0 deletions(-) diffs (76 lines): diff -r ac608f047fd8 -r aa69e4e77a1d ChangeLog --- a/ChangeLog Mon Apr 22 10:17:28 2013 +0200 +++ b/ChangeLog Wed Apr 24 10:39:35 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-24 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonRenderingStyles.java: + Added three new texture generators into CommonRenderingStyles. + 2013-04-22 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r ac608f047fd8 -r aa69e4e77a1d src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Mon Apr 22 10:17:28 2013 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Apr 24 10:39:35 2013 +0200 @@ -1258,6 +1258,60 @@ } /** + * Set texture paint using RGB texture. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setTextureFillUsingRGBTexture4(TestImage image, Graphics2D graphics) + { + // compute anchor for a texture + Rectangle2D anchor = createAnchorRectangle(image); + + // create texture and paint object + TexturePaint texturePaint = ProceduralTextureFactory.getRGBTexture4Paint(image, anchor); + graphics.setPaint(texturePaint); + } + + /** + * Set texture paint using RGB texture. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setTextureFillUsingRGBTexture5(TestImage image, Graphics2D graphics) + { + // compute anchor for a texture + Rectangle2D anchor = createAnchorRectangle(image); + + // create texture and paint object + TexturePaint texturePaint = ProceduralTextureFactory.getRGBTexture5Paint(image, anchor); + graphics.setPaint(texturePaint); + } + + /** + * Set texture paint using RGB texture. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setTextureFillUsingRGBTexture6(TestImage image, Graphics2D graphics) + { + // compute anchor for a texture + Rectangle2D anchor = createAnchorRectangle(image); + + // create texture and paint object + TexturePaint texturePaint = ProceduralTextureFactory.getRGBTexture6Paint(image, anchor); + graphics.setPaint(texturePaint); + } + + /** * Set zero pixels wide stroke and default cap and join style. * * @param graphics From andrew at icedtea.classpath.org Wed Apr 24 02:24:50 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 24 Apr 2013 09:24:50 +0000 Subject: /hg/icedtea7: Upgrade to u40 b20. Message-ID: changeset d4e0f297cf8f in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=d4e0f297cf8f author: Andrew John Hughes date: Wed Apr 24 10:24:40 2013 +0100 Upgrade to u40 b20. 2013-04-24 Andrew John Hughes * Makefile.am, (OPENJDK_VERSION): Bump to b20. (JDK_UPDATE_VERSION): Bump to 40. (CORBA_CHANGESET): Update to IcedTea7 forest head. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * hotspot.map: Update to IcedTea7 forest head. * patches/systemtap_gc.patch: Regenerated. diffstat: ChangeLog | 20 ++++++++++++++++++++ Makefile.am | 28 ++++++++++++++-------------- hotspot.map | 2 +- patches/systemtap_gc.patch | 44 ++++++++++++++++++++++---------------------- 4 files changed, 57 insertions(+), 37 deletions(-) diffs (198 lines): diff -r 3757116b4861 -r d4e0f297cf8f ChangeLog --- a/ChangeLog Fri Apr 19 19:37:22 2013 +0100 +++ b/ChangeLog Wed Apr 24 10:24:40 2013 +0100 @@ -1,3 +1,23 @@ +2013-04-24 Andrew John Hughes + + * Makefile.am, + (OPENJDK_VERSION): Bump to b20. + (JDK_UPDATE_VERSION): Bump to 40. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + * hotspot.map: Update to IcedTea7 forest head. + * patches/systemtap_gc.patch: Regenerated. + 2013-04-18 Andrew John Hughes PR1404: Failure to bootstrap with ecj 4.2 diff -r 3757116b4861 -r d4e0f297cf8f Makefile.am --- a/Makefile.am Fri Apr 19 19:37:22 2013 +0100 +++ b/Makefile.am Wed Apr 24 10:24:40 2013 +0100 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b17 -JDK_UPDATE_VERSION = 20 +OPENJDK_VERSION = b20 +JDK_UPDATE_VERSION = 40 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 04ad0a30f564 -JAXP_CHANGESET = e17ab897041e -JAXWS_CHANGESET = 7169780eff51 -JDK_CHANGESET = bc455fc9948f -LANGTOOLS_CHANGESET = 5f4ad2269018 -OPENJDK_CHANGESET = 8714dddd443a +CORBA_CHANGESET = 4366e0fe59d5 +JAXP_CHANGESET = 5a11895b645d +JAXWS_CHANGESET = 29619865cc64 +JDK_CHANGESET = d4cd8f10764d +LANGTOOLS_CHANGESET = 718a945bfdb9 +OPENJDK_CHANGESET = 6579f526e5e4 -CORBA_SHA256SUM = 625fd145c5e7bbd92f28321d2584d116279cb0bf07f417d0f463f57c78b90526 -JAXP_SHA256SUM = 698244f0a12cc7fa6c2994db7b0771ff7c4e00d6457aabb9c326778d0a078650 -JAXWS_SHA256SUM = cff9fb3f14aad77b6415418556805cbb23779d2b5fc6b7ebfd7bea5100b139fe -JDK_SHA256SUM = 54c3fff10484ce96b23599228ca99be89f4c433441da7489648c42fd8f03c0c8 -LANGTOOLS_SHA256SUM = 925f8166907dda64491dcaff51460ee83090d060f76abb4ff0efa7b9e1612a17 -OPENJDK_SHA256SUM = 7b500b6306981d0182a12e90b37182741df9931b34107a13686a77951ff7b0b3 +CORBA_SHA256SUM = b23b0980c704247a0a690f6fb663ec561f56e2fcdc5d69f13d9629d2c1937f32 +JAXP_SHA256SUM = a0f4516cdabb60bea73ce157db3c31c24634bc4058d35257b981b6b1be5114ba +JAXWS_SHA256SUM = 53e63c8b63380f4a34ae955f91455ece2f687dbe3dd47e4c14ac03761cb3daee +JDK_SHA256SUM = 4a03854b630151719fa9747525c08bc6b86362d7d2a26e62e349dc9ebfc27e51 +LANGTOOLS_SHA256SUM = c412b61b095154fee4c45dc133f2baca3100fecd48b742f80da49a52ec473b02 +OPENJDK_SHA256SUM = 44c3e4a130fe4b76c1ba977ae2251884cefa774b82a24c4415b64395aef9594c CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 diff -r 3757116b4861 -r d4e0f297cf8f hotspot.map --- a/hotspot.map Fri Apr 19 19:37:22 2013 +0100 +++ b/hotspot.map Wed Apr 24 10:24:40 2013 +0100 @@ -1,2 +1,2 @@ # version url changeset sha256sum -default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot b9bbe418db87 af823ea6283514495a42c291ed1d7d79c2ee86f8917e5f6f2782218a193546d9 +default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 2fc73bd48efa 1f4a059d6b25d05145a0f6313b24e36641a541dbf9ff33d6780143b1513a1946 diff -r 3757116b4861 -r d4e0f297cf8f patches/systemtap_gc.patch --- a/patches/systemtap_gc.patch Fri Apr 19 19:37:22 2013 +0100 +++ b/patches/systemtap_gc.patch Wed Apr 24 10:24:40 2013 +0100 @@ -1,6 +1,6 @@ diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp openjdk/hotspot/src/share/vm/compiler/oopMap.cpp ---- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2013-04-04 13:07:33.894232787 +0100 +--- openjdk.orig/hotspot/src/share/vm/compiler/oopMap.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/compiler/oopMap.cpp 2013-04-24 09:29:58.431723500 +0100 @@ -33,9 +33,13 @@ #include "memory/resourceArea.hpp" #include "runtime/frame.inline.hpp" @@ -26,8 +26,8 @@ // Delete entry delete entry; diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-04-04 13:07:33.902232915 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-04-24 09:29:58.439723629 +0100 @@ -59,6 +59,12 @@ #include "runtime/vmThread.hpp" #include "services/memoryService.hpp" @@ -56,8 +56,8 @@ void CMSCollector::collect(bool full, diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2013-04-04 13:07:33.910233043 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2013-04-24 09:29:58.439723629 +0100 @@ -50,8 +50,13 @@ #include "runtime/thread.hpp" #include "runtime/vmThread.hpp" @@ -93,8 +93,8 @@ // CHF: cheating for now!!! // Universe::set_heap_capacity_at_last_gc(Universe::heap()->capacity()); diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2013-04-04 13:07:33.922233234 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2013-04-24 09:29:58.443723700 +0100 @@ -43,8 +43,14 @@ #include "runtime/java.hpp" #include "runtime/vmThread.hpp" @@ -125,8 +125,8 @@ // This interface assumes that it's being called by the diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-04-04 13:07:33.930233362 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-04-24 09:29:58.447723769 +0100 @@ -58,11 +58,18 @@ #include "services/management.hpp" #include "services/memoryService.hpp" @@ -166,7 +166,7 @@ GCCause::Cause gc_cause = heap->gc_cause(); assert(!heap->is_gc_active(), "not reentrant"); -@@ -3396,6 +3409,9 @@ +@@ -3397,6 +3410,9 @@ // past the end of the partial object entering the region (if any). HeapWord* const dest_addr = sd.partial_obj_end(dp_region); HeapWord* const new_top = _space_info[space_id].new_top(); @@ -177,8 +177,8 @@ const size_t words = pointer_delta(new_top, dest_addr); diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2013-04-04 13:07:33.938233490 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2013-04-24 09:29:58.447723769 +0100 @@ -55,8 +55,17 @@ #include "runtime/vmThread.hpp" #include "runtime/vm_operations.hpp" @@ -234,8 +234,8 @@ } diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-04 13:07:33.954233746 +0100 +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-04-24 09:29:58.451723832 +0100 @@ -54,6 +54,12 @@ #include "utilities/copy.hpp" #include "utilities/globalDefinitions.hpp" @@ -271,8 +271,8 @@ TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats()); TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats()); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2013-04-04 13:09:36.164185907 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/defNewGeneration.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/defNewGeneration.cpp 2013-04-24 09:30:36.336328227 +0100 @@ -42,6 +42,7 @@ #include "oops/oop.inline.hpp" #include "runtime/java.hpp" @@ -312,11 +312,11 @@ +#endif /* !USDT2 */ + gch->trace_heap_after_gc(&gc_tracer); + gc_tracer.report_tenuring_threshold(tenuring_threshold()); - _gc_timer->register_gc_end(os::elapsed_counter()); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/generation.cpp openjdk/hotspot/src/share/vm/memory/generation.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2013-04-04 13:09:11.707795116 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/generation.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/generation.cpp 2013-04-24 09:29:58.459723953 +0100 @@ -41,8 +41,14 @@ #include "oops/oop.inline.hpp" #include "runtime/java.hpp" @@ -347,8 +347,8 @@ gc_timer->register_gc_end(os::elapsed_counter()); diff -Nru openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2013-04-03 14:17:10.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2013-04-04 13:07:33.974234065 +0100 +--- openjdk.orig/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2013-04-23 23:15:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/tenuredGeneration.cpp 2013-04-24 09:29:58.459723953 +0100 @@ -33,6 +33,12 @@ #include "memory/tenuredGeneration.hpp" #include "oops/oop.inline.hpp" From jvanek at redhat.com Wed Apr 24 03:48:13 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 12:48:13 +0200 Subject: Fwd: Re: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows In-Reply-To: <5171697D.1050700@redhat.com> References: <5171697D.1050700@redhat.com> Message-ID: <5177B86D.5010005@redhat.com> -------- Original Message -------- Subject: Re: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows Date: Fri, 19 Apr 2013 17:57:49 +0200 From: Jiri Vanek To: Jacob Wisor , IcedTea Distro List On 04/10/2013 02:48 PM, Jiri Vanek wrote: > Thank you for deep investigations. >> From this log is clear that the fatal exception is from newest commmits ad thank you very much for > reporting. > > I Will try to fix the handling of LockedFile and its exception (acually added by me and Adam few > weeks ago :( ) asap (but I'm unfortunately quite bussy right now :-/) > > I'm quite agreeing with you on restricted file usefulness. But its removal/refactoreing will have to > wait for 1.5. But for 1.4 this windows issue must be fixed(damn). > > Sorry for delaying you form better stuff, but give me few days! > > Best regards > J. > > ps /me keeping you in mind! > > > > -------- Original Message -------- > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows > Date: Wed, 10 Apr 2013 21:00:41 +0900 > From: Jacob Wisor > To: JiriVanek, ""@excite.co.jp > > "Jiri Vanek" wrote: >> On 04/09/2013 05:33 PM, Jacob Wisor wrote: >>> "Jiri Vanek" wrote: >>>> On 04/09/2013 02:00 PM, Jacob Wisor wrote: >>>>> "Jiri Vanek" wrote: >>>>>> On 04/09/2013 02:01 AM, Jacob Wisor wrote: >>>>>>> Hello there! >>>>>>> >>>>>>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. >>>>>>> I do not know whether this is reproducable on Linux systems. >>>>>>> >>>>>>> @Jiri: >>>>>>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? >>>>>>> >>>>>>> Regards, >>>>>>> Jacob >>>>>>> >>>>>> >>>>>> Hi again! >>>>>> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea >>>>>> directory and set my home to read only, But I doubt that it is connected to recent patches. >>>>>> >>>>>> By studying the exception: >>>>>> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" >>>>>> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze >>>>>> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc >>>>>> (translated as "The process can not access the file because another process has locked a portion") >>>>>> * This happened immediately after start of itw-settings, and is moreover correct. No file to >>>>>> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only >>>>>> "added by new patch"). >>>>>> Then two more exceptions from old code arise: >>>>>> java.lang.NullPointerException at >>>>>> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) >>>>>> and >>>>>> java.io.IOException: Removing execute permissions on file >>>>>> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed >>>>>> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) >>>>>> * all three are unrelated in meaning each to each, but have same root - tehy can not create their >>>>>> config files. >>>>>> >>>>>> >>>>>> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing >>>>>> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with >>>>>> workarround to create %USERPROFILE%\.icedtea manually? >>>>>> >>>>>> ANyway I will check once more when I got more free time. >>>>>> >>>>>> Thanx for checking, >>>>>> J. >>>>> >>>>> Thank you for your timely response. >>>>> The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: >>>>> >>>>> %USERPROFILE%\.icedtea >>>>> %USERPROFILE%\.icedtea\security >>>>> %USERPROFILE%\.icedtea\.appletTrustSettings >>>>> %USERPROFILE%\.icedtea\security\trusted.cacerts.temp >>>>> >>>>> On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. >>>>> >>>>> Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) >>>>> >>>> >>>> oook... I have attached patch which handles windows restricted files less strictly == tries to set >>>> the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will >>>> work. >>>> >>>> I think you can elaborate with it now. But this issue will need more investigations on my side >>>> //me have tu make some windows machine around... >>>> >>>> Hope this helps, >>>> J. >>>> >>>> >>>> If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no >>>> machine where to verify (work in progress) >>>> If the issue will be only X flag, then I will sent official patch. >>> >>> Thank you for this prompt attempt. >>> Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: >>> >>> %USERPROFILE%\.icedtea >>> %USERPROFILE%\.icedtea\security >>> %USERPROFILE%\.icedtea\.appletTrustSettings >>> %USERPROFILE%\.icedtea\security\trusted.cacerts >>> >>> It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) >>> >>> Thanks again for bothering :) >>> Jacob >>> >> >> >> The attachment is missing :(( >> /me curious > > Hello Jiri, > > Sorry, the web mailer is lausy. :( So, here we go again. > > I have played a little bit with J2SE's access permissions facility on Windows, that is > java.io.File.setExecutable(boolean,boolean), java.io.File.setWriteable(boolean,boolean), and > java.io.File.setReadable(boolean,boolean). They obviously have no effect on Windows, so one cannot > rely on them. Besides, as far as I can tell the whole purpose of this fiddling with access > permissions on files is to get a locked file. IMHO the > net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(File,boolean,boolean) is redundant and > totally misses the point. Actually, there is a file locking facility provided by J2SE via > java.nio.channels.FileLock. Although the semantics of java.nio.channels.FileLock can characterized > as best effort on varying platforms at best it probably should be used nevertheless. Infact, there > is even a utility class net.sourceforge.jnlp.util.lockingfile.LockedFile in netx. So, I am a little > bit confused. Why not use that? Correct me if I am wrong, but even if java.nio.c! > hannels.FileLock does not provide the desired semantics - let's say perhaps on Linux - fiddling > with file access permissions should not be the way to go. Instead, then the prefered way would be to > use buffers from java.nio (to get some sort of memory-mapped file) or java.io.BufferdIn/OutputStream > with java.io.PipedIn/OutputStream. This process of creating netx' data files should probably be > revised and refactored. > To cut a long story short, it still does not run on Windows. :D And, I probably will not have the > time to refactor it. So it is nice of you to help me out. > > Regards, > Jacob > > Ok. I have reproduced this on windows, and the attached "fix" is working. I myself consider locking file as little bit overpowered stuff, designed fot case that one applet will write record, whether other applet will in meantime read record, so I do not think there will be any harm by disabling on windows (as applets are not known to run on win(?)) J. ps - how looks PL? O:) -------------- next part -------------- A non-text attachment was scrubbed... Name: disableLockingOnWindows.patch Type: text/x-patch Size: 1215 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/e5295759/disableLockingOnWindows.patch From andrew at icedtea.classpath.org Wed Apr 24 03:59:22 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 24 Apr 2013 10:59:22 +0000 Subject: /hg/release/icedtea6-1.12: 22 new changesets Message-ID: changeset 7dc0363b60c8 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=7dc0363b60c8 author: Jon VanAlten date: Thu Apr 11 16:25:24 2013 -0400 Add backport of 7036559 and ConcurrentHashMap deserialization reliability fix for 8009063. changeset 43434eedda7d in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=43434eedda7d author: Andrew John Hughes date: Tue Apr 23 17:51:08 2013 +0100 Fix issues with previous commit. 2013-04-12 Andrew John Hughes * NEWS: Updated. * Makefile.am: (SECURITY_PATCHES): Correct path to 7036559; not a security patch but a backport to enable one to be applied. * patches/security/20130416/7036559.patch: Moved to... * patches/openjdk/7036559-concurrenthashmap_improvements.patch: ...here. 2013-04-11 Jon VanAlten * Makefile.am: (SECURITY_PATCHES): Add new patches. * patches/security/20130416/7036559.patch: Add backport. * patches/security/20130416/8009063.patch: Add security fix. changeset 3152bf7bfa91 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=3152bf7bfa91 author: Andrew John Hughes date: Tue Apr 23 20:35:52 2013 +0100 Add 2013/04/16 security patches. 2013-04-17 Andrew John Hughes * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: Reapplied as a security patch pre-requisite. * patches/security/20130201/8001235.patch: Dropped as included in JAXP tarball used. * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. * Makefile.am: (JAXWS_DROP_URL): Removed. (JAXWS_DROP_ZIP): Likewise. (JAXWS_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAF_DROP_ZIP): Likewise. (JAF_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAXP_DROP_URL): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (DROP_PATCHES): Add patches providing code previously provided by drop zips. (SECURITY_PATCHES): Updated. (ICEDTEA_PATCHES): Add DROP_PATCHES. Remove 6669869 duplicate. (ICEDTEA_ENV): Remove ALT_DROPS_DIR. (download-jaxp-drop): Removed. (clean-download-jaxp-drop): Likewise. (download-jaf-drop): Likewise. (clean-download-jaf-drop): Likewise. (download-jaxws-drop): Likewise. (clean-download-jaxws-drop): Likewise. (download-drops): Likewise. (clean-drops): Likewise. (download): Don't depend on download-drops. (clean-download): Likewise for clean-drops. * NEWS: Add security issues, backports and mention drop move. * acinclude.m4: (IT_WITH_JAXP_DROP_ZIP): Removed. (IT_WITH_JAF_DROP_ZIP): Likewise. (IT_WITH_JAXWS_DROP_ZIP): Likewise. * configure.ac: Don't call removed macros above. * patches/ecj/override.patch: Add new cases introduced by security patches (sigh). * patches/libraries.patch, * patches/nomotif-6706121.patch: Regenerated against security patches. * patches/openjdk/5102804-memory_leak.patch, * patches/openjdk/6501644-icu_sync.patch: Backports for security patches. * patches/openjdk/6633275-shaped_translucent_windows.patch: Remove copyright notice changes broken by 8006790 security patch. * patches/openjdk/6669869-queries_per_appcontext.patch, * patches/openjdk/6886358-layout_update.patch, * patches/openjdk/6963811-deadlock_fix.patch, * patches/openjdk/7017324-kerning_crash.patch, * patches/openjdk/7064279-fixup.patch, * patches/openjdk/7064279-resource_release.patch, * patches/openjdk/8004302-soap_test_failure.patch: More backports for security patches. * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, * patches/openjdk/jaxp144_05.patch: Add drop zips in patch form. * patches/security/20130416/6657673-fixup.patch, * patches/security/20130416/6657673.patch, * patches/security/20130416/7200507.patch, * patches/security/20130416/8000724.patch, * patches/security/20130416/8001031.patch, * patches/security/20130416/8001040.patch, * patches/security/20130416/8001322.patch, * patches/security/20130416/8001329.patch, * patches/security/20130416/8003335.patch, * patches/security/20130416/8003445.patch, * patches/security/20130416/8003543.patch, * patches/security/20130416/8004261.patch, * patches/security/20130416/8004336.patch, * patches/security/20130416/8004986.patch, * patches/security/20130416/8005432.patch, * patches/security/20130416/8005943.patch, * patches/security/20130416/8006309.patch, * patches/security/20130416/8006435.patch, * patches/security/20130416/8006790.patch, * patches/security/20130416/8006795.patch, * patches/security/20130416/8007406.patch, * patches/security/20130416/8007617.patch, * patches/security/20130416/8009699.patch: Add security patches. * patches/xjc.patch: Regenerate JAXWS patch against sources, not drop system. 2013-04-12 Omair Majid * patches/security/20130416/8007667.patch, * patches/security/20130416/8007918.patch, * patches/security/20130416/8009305.patch, * patches/security/20130416/8009814.patch, * patches/security/20130416/8009857.patch: Add security patches. changeset bc3cb711723f in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=bc3cb711723f author: Andrew John Hughes date: Wed Jan 30 00:52:15 2013 +0000 Add missing bug ID. 2013-01-29 Andrew John Hughes * NEWS: Add missing bug ID. changeset 5815d7235a04 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=5815d7235a04 author: Andrew John Hughes date: Tue Apr 23 20:41:06 2013 +0100 Fix .hgignore not to hide patches. 2013-02-17 Andrew John Hughes * .hgignore: Fix so the cacao patches directory isn't hidden. changeset 9c7c56198ae1 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=9c7c56198ae1 author: Andrew John Hughes date: Tue Apr 23 21:32:21 2013 +0100 Add missing NEWS entry and ChangeLog for ARM fix. 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit. * ChangeLog: Add missing entry for ARM fix. changeset aa13d18b7c33 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=aa13d18b7c33 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. changeset 8743805e76dd in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=8743805e76dd author: Andrew John Hughes date: Tue Apr 16 17:08:54 2013 +0100 PR1338: Remove dependence on libXp. 2013-04-16 Andrew John Hughes PR1338: Remove dependence on libXp * configure.ac: Drop check for libXp. changeset 6660c8ee4785 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=6660c8ee4785 author: Andrew John Hughes date: Tue Apr 16 17:11:46 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and previous fix. changeset 1c641a995625 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=1c641a995625 author: Andrew John Hughes date: Tue Apr 23 21:42:04 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. changeset 9f3282f826c4 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=9f3282f826c4 author: Andrew John Hughes date: Wed Apr 17 12:01:42 2013 +0100 Update EXTRA_DIST following merge of THANKYOU into AUTHORS. 2013-04-17 Andrew John Hughes * Makefile.am: (EXTRA_DIST): Remove THANKYOU. changeset 30db65b2cd27 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=30db65b2cd27 author: Andrew John Hughes date: Tue Apr 23 22:38:22 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-22 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, SSLEngine, TrustAnchor and KeyStoreBuilderParameters depending on if methods are missing. * NEWS: Updated. * configure.ac: Mention bugs in comments. Add tests for getDefaultSSLParameters/setSSLParameters, new TrustAnchor constructor, TrustAnchor.getCA() and KeyStoreBuilderParameters.getParameters(). changeset bb6ce131dcc2 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=bb6ce131dcc2 author: Andrew John Hughes date: Tue Apr 23 22:47:50 2013 +0100 Update NEWS from previous commits. 2013-04-17 Andrew John Hughes * NEWS: List additional fix for PR1319 and bug ID (OJ3) for get_stack_bounds memory leak. changeset 65bf53d7a416 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=65bf53d7a416 author: Andrew John Hughes date: Wed Apr 17 13:14:23 2013 +0100 Improve listing for S8004987 and S8004994 2013-04-17 Andrew John Hughes * NEWS: Improve listing for S8004987 and S8004994, using descriptions buried in the patch itself (found during release announcement). changeset 6b16bd8e8e34 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=6b16bd8e8e34 author: Andrew John Hughes date: Wed Apr 24 08:26:15 2013 +0100 PR1402: Support glibc < 2.17 with AArch64 patch 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Fix to apply against older HotSpot. 2013-04-17 Andrew John Hughes * NEWS: Updated. * patches/aarch64.patch: Define EM_AARCH64 for legacy systems with glibc earlier than 2.17. changeset db270ea37a50 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=db270ea37a50 author: Andrew John Hughes date: Wed Apr 24 09:09:25 2013 +0100 RH952389: Restrict temp file permissions. 2013-04-17 Andrew John Hughes * ChangeLog: Move Elliott's entry to correct position. * Makefile.am: (ICEDTEA_PATCHES): Fix path to previous patch. * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: Moved from here to... * patches/jaxws-tempfiles-ioutils-6.patch: ...here as not an upstream OpenJDK patch. 2013-04-17 Elliott Baron * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: Restrict temp file permissions. * Makefile.am: (ICEDTEA_PATCHES): Added new patch. * NEWS: Updated. changeset 2e7ef54df229 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=2e7ef54df229 author: Elliott Baron date: Thu Apr 18 16:20:55 2013 -0400 Give xalan/xerces access to their own internal packages. 2013-04-18 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/object-factory-cl-internal.patch: Patch to give xalan/xerces access to their own internal packages. * NEWS: Updated. changeset b7490b3606ec in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=b7490b3606ec author: Andrew John Hughes date: Fri Apr 19 11:38:18 2013 +0100 Fix patch to apply on RHEL 5. 2013-04-19 Jiri Vanek * patches/security/20130416/8007667.patch: Fix patch format to apply on RHEL 5. changeset 460828862a9e in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=460828862a9e author: Elliott Baron date: Fri Apr 19 14:38:19 2013 -0400 Fix Backport from S6657673. 2013-04-19 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/security/20130416/6657673.patch: Removed {parser,transform}.FactoryFinder hunks. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Backported {parser,transform}.FactoryFinder fixes from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. * NEWS: Updated. changeset 148faa0f0f08 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=148faa0f0f08 author: Elliott Baron date: Mon Apr 22 17:13:26 2013 -0400 Split 6657673-jaxp-backport-factoryfinder patch into two. 2013-04-22 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Removed one patch, split it into two. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Removed. Split into patches below. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: First part of removed patch. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Second part of removed patch. changeset f12754deed53 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=f12754deed53 author: Andrew John Hughes date: Wed Apr 24 09:21:10 2013 +0100 Cleanup from previous commit. 2013-04-24 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Rename patches. * NEWS: List backports in previous change correctly. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: Moved to... * patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch: ...this. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Moved to.. * patches/security/20130416/6657673-factory_finder.patch: ...this. changeset 681bcc5e6a18 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=681bcc5e6a18 author: Andrew John Hughes date: Wed Apr 24 11:57:49 2013 +0100 S8009530: ICU Kern table support broken 2013-04-24 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * NEWS: Mention 8009530 backport. * patches/openjdk/8009530-icu_kern_table_support_broken.patch: Backported from 7u. diffstat: .hgignore | 7 +- AUTHORS | 4 + ChangeLog | 293 + INSTALL | 3 - Makefile.am | 203 +- NEWS | 56 +- THANKYOU | 10 - acinclude.m4 | 63 - configure.ac | 59 +- patches/aarch64.patch | 34 + patches/ecj/override.patch | 59 + patches/jaxws-tempfiles-ioutils-6.patch | 176 + patches/libraries.patch | 252 +- patches/nomotif-6706121.patch | 218 +- patches/object-factory-cl-internal.patch | 384 + patches/openjdk/5102804-memory_leak.patch | 429 + patches/openjdk/6501644-icu_sync.patch | 8066 + patches/openjdk/6633275-shaped_translucent_windows.patch | 49 - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch | 346 - patches/openjdk/6669869-queries_per_appcontext.patch | 355 + patches/openjdk/6886358-layout_update.patch | 13847 + patches/openjdk/6963811-deadlock_fix.patch | 42 + patches/openjdk/7017324-kerning_crash.patch | 101 + patches/openjdk/7036559-concurrenthashmap_improvements.patch | 1436 + patches/openjdk/7064279-fixup.patch | 71 + patches/openjdk/7064279-resource_release.patch | 436 + patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch | 298 + patches/openjdk/8004302-soap_test_failure.patch | 75 + patches/openjdk/8009530-icu_kern_table_support_broken.patch | 332 + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch | 449213 +++++++ patches/openjdk/jaxp144_05.patch | 595585 ++++++++++ patches/pr1319-support_giflib_5.patch | 2 +- patches/security/20130201/8001235.patch | 37 - patches/security/20130416/6657673-factory_finder.patch | 54 + patches/security/20130416/6657673-fixup.patch | 229 + patches/security/20130416/6657673.patch | 9494 + patches/security/20130416/7200507.patch | 230 + patches/security/20130416/8000724.patch | 1368 + patches/security/20130416/8001031.patch | 5457 + patches/security/20130416/8001040.patch | 113 + patches/security/20130416/8001322.patch | 61 + patches/security/20130416/8001329.patch | 32 + patches/security/20130416/8003335.patch | 63 + patches/security/20130416/8003445.patch | 77 + patches/security/20130416/8003543.patch | 236 + patches/security/20130416/8004261.patch | 142 + patches/security/20130416/8004336.patch | 29 + patches/security/20130416/8004986.patch | 374 + patches/security/20130416/8005432.patch | 518 + patches/security/20130416/8005943.patch | 202 + patches/security/20130416/8006309.patch | 22 + patches/security/20130416/8006435.patch | 76 + patches/security/20130416/8006790.patch | 166 + patches/security/20130416/8006795.patch | 35 + patches/security/20130416/8007406.patch | 31 + patches/security/20130416/8007617.patch | 376 + patches/security/20130416/8007667.patch | 579 + patches/security/20130416/8007918.patch | 357 + patches/security/20130416/8009063.patch | 67 + patches/security/20130416/8009305.patch | 68 + patches/security/20130416/8009699.patch | 25 + patches/security/20130416/8009814.patch | 27 + patches/security/20130416/8009857.patch | 66 + patches/xjc.patch | 56 +- rewriter/com/redhat/rewriter/ClassRewriter.java | 6 +- 65 files changed, 1092249 insertions(+), 928 deletions(-) diffs (truncated from 1095070 to 500 lines): diff -r 623621d29d04 -r 681bcc5e6a18 .hgignore --- a/.hgignore Fri Apr 05 09:01:48 2013 -0400 +++ b/.hgignore Wed Apr 24 11:57:49 2013 +0100 @@ -4,10 +4,6 @@ missing aclocal.m4 autom4te.cache -cacao -netbeans -visualvm -bootstrap build debian lib @@ -52,3 +48,6 @@ syntax: regexp ^openjdk +^cacao +^bootstrap +^jamvm diff -r 623621d29d04 -r 681bcc5e6a18 AUTHORS --- a/AUTHORS Fri Apr 05 09:01:48 2013 -0400 +++ b/AUTHORS Wed Apr 24 11:57:49 2013 +0100 @@ -2,6 +2,7 @@ Please keep this list in alphabetical order. Lillian Angel +Alexis Ballier Alon Bar-Lev Gary Benson Tania Bento @@ -18,6 +19,7 @@ Andrew John Hughes Tomas Hurka Ioana Ivan +C. K. Jester-Young (cky944 at gmail.com) Matthias Klose Francis Kung Denis Lila @@ -32,6 +34,7 @@ Mark Reinhold Bernhard Rosenkr??nzer Marc Schoenefeld +Andreas Schwab Keith Seitz Andrew Su Joshua Sumali @@ -39,6 +42,7 @@ Christian Thalinger Dalibor Topic Arnaud Vandyck +Torsten Werner (mail.twerner at googlemail.com) Mark Wielaard Yi Zhan diff -r 623621d29d04 -r 681bcc5e6a18 ChangeLog --- a/ChangeLog Fri Apr 05 09:01:48 2013 -0400 +++ b/ChangeLog Wed Apr 24 11:57:49 2013 +0100 @@ -1,3 +1,296 @@ +2013-04-24 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * NEWS: Mention 8009530 backport. + * patches/openjdk/8009530-icu_kern_table_support_broken.patch: + Backported from 7u. + +2013-04-24 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Rename patches. + * NEWS: List backports in previous change + correctly. + * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: + Moved to... + * patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch: + ...this. + * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: + Moved to.. + * patches/security/20130416/6657673-factory_finder.patch: + ...this. + +2013-04-22 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Removed one patch, split it into two. + * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: + Removed. Split into patches below. + * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: + First part of removed patch. + * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: + Second part of removed patch. + +2013-04-19 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/security/20130416/6657673.patch: + Removed {parser,transform}.FactoryFinder hunks. + * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: + Backported {parser,transform}.FactoryFinder fixes + from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. + * NEWS: Updated. + +2013-04-19 Jiri Vanek + + * patches/security/20130416/8007667.patch: + Fix patch format to apply on RHEL 5. + +2013-04-18 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/object-factory-cl-internal.patch: + Patch to give xalan/xerces access to their own internal + packages. + * NEWS: Updated. + +2013-04-17 Andrew John Hughes + + * ChangeLog: + Move Elliott's entry to correct position. + * Makefile.am: + (ICEDTEA_PATCHES): Fix path to previous patch. + * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: + Moved from here to... + * patches/jaxws-tempfiles-ioutils-6.patch: + ...here as not an upstream OpenJDK patch. + +2013-04-17 Elliott Baron + + * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: + Restrict temp file permissions. + * Makefile.am: + (ICEDTEA_PATCHES): Added new patch. + * NEWS: Updated. + +2013-04-17 Andrew John Hughes + + * patches/aarch64.patch: + Fix to apply against older HotSpot. + +2013-04-17 Andrew John Hughes + + PR1402: Support glibc < 2.17 with AArch64 patch + * NEWS: Updated. + * patches/aarch64.patch: + Define EM_AARCH64 for legacy systems + with glibc earlier than 2.17. + +2013-04-17 Andrew John Hughes + + * NEWS: Improve listing for S8004987 and + S8004994, using descriptions buried in the + patch itself (found during release announcement). + +2013-04-17 Andrew John Hughes + + * NEWS: List additional fix for PR1319 and + bug ID (OJ3) for get_stack_bounds memory leak. + +2013-04-22 Andrew John Hughes + + PR1336: Bootstrap failure on Fedora 17/18 + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, + SSLEngine, TrustAnchor and KeyStoreBuilderParameters + depending on if methods are missing. + * NEWS: Updated. + * configure.ac: Mention bugs in comments. + Add tests for getDefaultSSLParameters/setSSLParameters, + new TrustAnchor constructor, TrustAnchor.getCA() and + KeyStoreBuilderParameters.getParameters(). + +2013-04-17 Andrew John Hughes + + * Makefile.am: + (EXTRA_DIST): Remove THANKYOU. + +2013-04-17 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add patch after SH patch. + * NEWS: Updated. + * AUTHORS: Add Andreas and merge in THANKYOU. + * THANKYOU: Removed. + +2013-03-22 Andreas Schwab + + PR1380: Add AArch64 support to Zero + * patches/aarch64.patch: + Add Zero support for AArch64. + +2013-03-11 Andrew John Hughes + + PR1339: Simplify the rewriter, avoiding concurrency. + * rewriter/com/redhat/rewriter/ClassRewriter.java: + Always use the single threaded executor. + * NEWS: Updated with this and previous fix. + +2013-04-16 Andrew John Hughes + + PR1338: Remove dependence on libXp + * configure.ac: Drop check for libXp. + +2013-04-16 Andrew John Hughes + + * patches/pr1319-support_giflib_5.patch, + Use #if not #ifdef. + +2013-04-12 Andrew John Hughes + + * NEWS: Add PR1362 from last commit. + * ChangeLog: Add missing entry for PR1362 + fix. + +2013-04-05 Chris Phillips + + * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp: + Fix failure in the register allocation logic, + diagnosed by Andrew Haley to be an issue with + PUSH/POP macro's and assumption of order of + evaluation of arguments. The fix includes + detection of the condition and bailing from the + compilation if a similar failure is detected. + +2013-02-17 Andrew John Hughes + + * .hgignore: Fix so the cacao patches directory + isn't hidden. + +2013-01-29 Andrew John Hughes + + * NEWS: Add missing bug ID. + +2013-04-17 Andrew John Hughes + + * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: + Reapplied as a security patch pre-requisite. + * patches/security/20130201/8001235.patch: + Dropped as included in JAXP tarball used. + * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. + * Makefile.am: + (JAXWS_DROP_URL): Removed. + (JAXWS_DROP_ZIP): Likewise. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAF_DROP_ZIP): Likewise. + (JAF_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAXP_DROP_URL): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (DROP_PATCHES): Add patches providing code + previously provided by drop zips. + (SECURITY_PATCHES): Updated. + (ICEDTEA_PATCHES): Add DROP_PATCHES. Remove + 6669869 duplicate. + (ICEDTEA_ENV): Remove ALT_DROPS_DIR. + (download-jaxp-drop): Removed. + (clean-download-jaxp-drop): Likewise. + (download-jaf-drop): Likewise. + (clean-download-jaf-drop): Likewise. + (download-jaxws-drop): Likewise. + (clean-download-jaxws-drop): Likewise. + (download-drops): Likewise. + (clean-drops): Likewise. + (download): Don't depend on download-drops. + (clean-download): Likewise for clean-drops. + * NEWS: Add security issues, backports and + mention drop move. + * acinclude.m4: + (IT_WITH_JAXP_DROP_ZIP): Removed. + (IT_WITH_JAF_DROP_ZIP): Likewise. + (IT_WITH_JAXWS_DROP_ZIP): Likewise. + * configure.ac: Don't call removed macros above. + * patches/ecj/override.patch: Add new cases introduced + by security patches (sigh). + * patches/libraries.patch, + * patches/nomotif-6706121.patch: + Regenerated against security patches. + * patches/openjdk/5102804-memory_leak.patch, + * patches/openjdk/6501644-icu_sync.patch: + Backports for security patches. + * patches/openjdk/6633275-shaped_translucent_windows.patch: + Remove copyright notice changes broken by 8006790 security patch. + * patches/openjdk/6669869-queries_per_appcontext.patch, + * patches/openjdk/6886358-layout_update.patch, + * patches/openjdk/6963811-deadlock_fix.patch, + * patches/openjdk/7017324-kerning_crash.patch, + * patches/openjdk/7064279-fixup.patch, + * patches/openjdk/7064279-resource_release.patch, + * patches/openjdk/8004302-soap_test_failure.patch: + More backports for security patches. + * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, + * patches/openjdk/jaxp144_05.patch: + Add drop zips in patch form. + * patches/security/20130416/6657673-fixup.patch, + * patches/security/20130416/6657673.patch, + * patches/security/20130416/7200507.patch, + * patches/security/20130416/8000724.patch, + * patches/security/20130416/8001031.patch, + * patches/security/20130416/8001040.patch, + * patches/security/20130416/8001322.patch, + * patches/security/20130416/8001329.patch, + * patches/security/20130416/8003335.patch, + * patches/security/20130416/8003445.patch, + * patches/security/20130416/8003543.patch, + * patches/security/20130416/8004261.patch, + * patches/security/20130416/8004336.patch, + * patches/security/20130416/8004986.patch, + * patches/security/20130416/8005432.patch, + * patches/security/20130416/8005943.patch, + * patches/security/20130416/8006309.patch, + * patches/security/20130416/8006435.patch, + * patches/security/20130416/8006790.patch, + * patches/security/20130416/8006795.patch, + * patches/security/20130416/8007406.patch, + * patches/security/20130416/8007617.patch, + * patches/security/20130416/8009699.patch: + Add security patches. + * patches/xjc.patch: + Regenerate JAXWS patch against sources, not + drop system. + +2013-04-12 Omair Majid + + * patches/security/20130416/8007667.patch, + * patches/security/20130416/8007918.patch, + * patches/security/20130416/8009305.patch, + * patches/security/20130416/8009814.patch, + * patches/security/20130416/8009857.patch: + Add security patches. + +2013-04-12 Andrew John Hughes + + * NEWS: Updated. + * Makefile.am: + (SECURITY_PATCHES): Correct path to 7036559; not + a security patch but a backport to enable one to + be applied. + * patches/security/20130416/7036559.patch: Moved to... + * patches/openjdk/7036559-concurrenthashmap_improvements.patch: + ...here. + +2013-04-11 Jon VanAlten + + * Makefile.am: + (SECURITY_PATCHES): Add new patches. + * patches/security/20130416/7036559.patch: Add backport. + * patches/security/20130416/8009063.patch: Add security fix. + 2013-03-19 Andrew John Hughes * Makefile.am: diff -r 623621d29d04 -r 681bcc5e6a18 INSTALL --- a/INSTALL Fri Apr 05 09:01:48 2013 -0400 +++ b/INSTALL Wed Apr 24 11:57:49 2013 +0100 @@ -145,9 +145,6 @@ * --with-openjdk-src-zip: Specify the location of the OpenJDK tarball to avoid downloading. * --with-hotspot-src-zip: Specify the location of the HotSpot tarball to avoid downloading. * --with-alt-jar: Use the specified jar binary in the second stage rather than the one just built. -* --with-jaxp-drop-zip: Specify the location of the JAXP source drop zip file to avoid downloading. -* --with-jaf-drop-zip: Specify the location of the JAF source drop zip file to avoid downloading. -* --with-jaxws-drop-zip: Specify the location of the JAXWS source drop zip file to avoid downloading. * --with-cacao-home: Specify the location of an installed CACAO to use rather than downloading and building one. * --with-cacao-src-zip: Specify the location of a CACAO tarball to avoid downloading. diff -r 623621d29d04 -r 681bcc5e6a18 Makefile.am --- a/Makefile.am Fri Apr 05 09:01:48 2013 -0400 +++ b/Makefile.am Wed Apr 24 11:57:49 2013 +0100 @@ -17,15 +17,6 @@ JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz -JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops -JAXWS_DROP_ZIP = jdk6-jaxws2_1_6-2011_06_13.zip -JAXWS_DROP_SHA256SUM = 229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3 -JAF_DROP_URL = http://icedtea.classpath.org/download/drops -JAF_DROP_ZIP = jdk6-jaf-b20.zip -JAF_DROP_SHA256SUM = 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 -JAXP_DROP_URL = http://icedtea.classpath.org/download/drops -JAXP_DROP_ZIP = jaxp144_04.zip -JAXP_DROP_SHA256SUM = 490f696218c1fed9cb180680af883fe309b414fec232e9cec19645e12ad0b43c OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk6/jdk6 HOTSPOT_SRC_ZIP = hotspot.tar.gz @@ -127,6 +118,28 @@ $(SHARE)/javax/security/sasl/Sasl.java endif +#PR56553 - SSLParameters support missing +if LACKS_JAVAX_NET_SSL_SSLCONTEXT_GETDEFAULTSSLPARAMETERS + ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/SSLContext.java +endif +if LACKS_JAVAX_NET_SSL_SSLENGINE_SETSSLPARAMETERS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/SSLEngine.java +endif + +#PR57030 - Add missing TrustAnchor methods +if LACKS_JAVA_SECURITY_CERT_TRUSTANCHOR_X500_CONS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/TrustAnchor.java +endif + +#PR57031 - Add missing getParameters() method in KeyStoreBuilderParameters +if LACKS_JAVAX_NET_SSL_KEYSTOREBUILDERPARAMETERS_GETPARAMETERS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/net/ssl/KeyStoreBuilderParameters.java +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) @@ -244,6 +257,10 @@ ICEDTEA_FSG_PATCHES = +DROP_PATCHES = \ + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch \ + patches/openjdk/jaxp144_05.patch + SECURITY_PATCHES = \ patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch \ patches/security/20130201/7201068.patch \ @@ -274,16 +291,57 @@ patches/security/20130201/8001307.patch \ patches/security/20130201/8001972.patch \ patches/security/20130201/8002325.patch \ - patches/security/20130201/8001235.patch \ patches/security/20130219/8006446.patch \ patches/security/20130219/8006777.patch \ patches/security/20130219/8007688.patch \ patches/security/20130304/8007014.patch \ - patches/security/20130304/8007675.patch + patches/security/20130304/8007675.patch \ + patches/openjdk/7036559-concurrenthashmap_improvements.patch \ + patches/security/20130416/8009063.patch \ + patches/openjdk/8004302-soap_test_failure.patch \ + patches/security/20130416/6657673.patch \ + patches/security/20130416/6657673-fixup.patch \ + patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch \ + patches/security/20130416/6657673-factory_finder.patch \ + patches/openjdk/6669869-queries_per_appcontext.patch \ + patches/openjdk/5102804-memory_leak.patch \ + patches/openjdk/6963811-deadlock_fix.patch \ + patches/openjdk/7064279-resource_release.patch \ + patches/openjdk/7064279-fixup.patch \ + patches/security/20130416/7200507.patch \ + patches/security/20130416/8000724.patch \ + patches/security/20130416/8004986.patch \ + patches/openjdk/6501644-icu_sync.patch \ + patches/openjdk/6886358-layout_update.patch \ + patches/security/20130416/8001031.patch \ + patches/openjdk/7017324-kerning_crash.patch \ + patches/security/20130416/8001040.patch \ + patches/security/20130416/8001322.patch \ + patches/security/20130416/8001329.patch \ + patches/security/20130416/8003335.patch \ + patches/security/20130416/8003445.patch \ + patches/security/20130416/8003543.patch \ + patches/security/20130416/8004261.patch \ + patches/security/20130416/8004336.patch \ + patches/security/20130416/8005432.patch \ + patches/security/20130416/8005943.patch \ + patches/security/20130416/8006309.patch \ + patches/security/20130416/8006435.patch \ + patches/security/20130416/8006790.patch \ + patches/security/20130416/8006795.patch \ + patches/security/20130416/8007406.patch \ + patches/security/20130416/8007617.patch \ + patches/security/20130416/8007667.patch \ + patches/security/20130416/8007918.patch \ + patches/security/20130416/8009305.patch \ + patches/security/20130416/8009699.patch \ + patches/security/20130416/8009814.patch \ + patches/security/20130416/8009857.patch SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch ICEDTEA_PATCHES = \ + $(DROP_PATCHES) \ $(SECURITY_PATCHES) \ patches/stdc-limit-macros.patch \ patches/openjdk/4993545-nativeinlightfixer.patch \ @@ -464,7 +522,6 @@ patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch \ - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch \ patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch \ patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch \ patches/pr690-shark-jit-hs20.patch \ @@ -513,7 +570,11 @@ patches/openjdk/8007393.patch \ patches/openjdk/8007611.patch \ patches/fix_get_stack_bounds_leak.patch \ From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 03:59:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 10:59:37 +0000 Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362 --- Comment #7 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=9c7c56198ae1 author: Andrew John Hughes date: Tue Apr 23 21:32:21 2013 +0100 Add missing NEWS entry and ChangeLog for ARM fix. 2013-04-12 Andrew John Hughes * NEWS: Add PR1362 from last commit. * ChangeLog: Add missing entry for ARM fix. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/5ddf6e4e/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 03:59:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 10:59:46 +0000 Subject: [Bug 1319] [IcedTea6] Support GIF lib v5 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1319 --- Comment #8 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=aa13d18b7c33 author: Andrew John Hughes date: Tue Apr 16 17:01:34 2013 +0100 PR1319: Use #if not #ifdef in giflib 5 patch. 2013-04-16 Andrew John Hughes * patches/pr1319-support_giflib_5.patch, Use #if not #ifdef. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/ab3b69f7/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 03:59:53 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 10:59:53 +0000 Subject: [Bug 1338] [IcedTea6] Remove dependence on libXp In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1338 --- Comment #4 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=8743805e76dd author: Andrew John Hughes date: Tue Apr 16 17:08:54 2013 +0100 PR1338: Remove dependence on libXp. 2013-04-16 Andrew John Hughes PR1338: Remove dependence on libXp * configure.ac: Drop check for libXp. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/68c0d704/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 04:00:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 11:00:00 +0000 Subject: [Bug 1339] [IcedTea6] Simplify the rhino class rewriter to avoid use of concurrency In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1339 --- Comment #4 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=6660c8ee4785 author: Andrew John Hughes date: Tue Apr 16 17:11:46 2013 +0100 PR1339: Simplify the rewriter, avoiding concurrency. 2013-03-11 Andrew John Hughes PR1339: Simplify the rewriter, avoiding concurrency. * rewriter/com/redhat/rewriter/ClassRewriter.java: Always use the single threaded executor. * NEWS: Updated with this and previous fix. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/38905a24/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 04:00:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 11:00:07 +0000 Subject: [Bug 1380] [IcedTea6] Add AArch64 support to Zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1380 --- Comment #7 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=1c641a995625 author: Andrew John Hughes date: Tue Apr 23 21:42:04 2013 +0100 PR1380: Add AArch64 support to Zero 2013-04-17 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch after SH patch. * NEWS: Updated. * AUTHORS: Add Andreas and merge in THANKYOU. * THANKYOU: Removed. 2013-03-22 Andreas Schwab PR1380: Add AArch64 support to Zero * patches/aarch64.patch: Add Zero support for AArch64. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/ea57c58f/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 04:00:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 11:00:19 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 --- Comment #10 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=30db65b2cd27 author: Andrew John Hughes date: Tue Apr 23 22:38:22 2013 +0100 PR1336: Bootstrap failure on Fedora 17/18 2013-04-22 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Add SSLContext, SSLEngine, TrustAnchor and KeyStoreBuilderParameters depending on if methods are missing. * NEWS: Updated. * configure.ac: Mention bugs in comments. Add tests for getDefaultSSLParameters/setSSLParameters, new TrustAnchor constructor, TrustAnchor.getCA() and KeyStoreBuilderParameters.getParameters(). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/4a13d390/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 04:00:30 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 11:00:30 +0000 Subject: [Bug 1319] [IcedTea6] Support GIF lib v5 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1319 --- Comment #9 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=bb6ce131dcc2 author: Andrew John Hughes date: Tue Apr 23 22:47:50 2013 +0100 Update NEWS from previous commits. 2013-04-17 Andrew John Hughes * NEWS: List additional fix for PR1319 and bug ID (OJ3) for get_stack_bounds memory leak. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/420fd98c/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Apr 24 04:00:38 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Apr 2013 11:00:38 +0000 Subject: [Bug 1402] [IcedTea6] Support glibc < 2.17 with AArch64 patch In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1402 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=6b16bd8e8e34 author: Andrew John Hughes date: Wed Apr 24 08:26:15 2013 +0100 PR1402: Support glibc < 2.17 with AArch64 patch 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Fix to apply against older HotSpot. 2013-04-17 Andrew John Hughes * NEWS: Updated. * patches/aarch64.patch: Define EM_AARCH64 for legacy systems with glibc earlier than 2.17. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/611a920e/attachment.html From jvanek at redhat.com Wed Apr 24 05:34:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 14:34:53 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5176922B.10100@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> Message-ID: <5177D16D.1070104@redhat.com> On 04/23/2013 03:52 PM, Adam Domurad wrote: > [..snip..] >> oook so something like this? >> > > Thanks for taking up the task :-) > >> diff -r 0f85f68370a4 netx/net/sourceforge/jnlp/SecurityDesc.java >> --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Fri Apr 19 16:41:33 2013 +0200 >> +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Tue Apr 23 13:51:46 2013 +0200 >> @@ -149,6 +149,9 @@ >> * @param downloadHost the download host (can always connect to) >> */ >> public SecurityDesc(JNLPFile file, Object type, String downloadHost) { >> + if (file == null) { >> + throw new NullJnlpFileException(); > > If you keep NullJnlpFileException, at the very least please get rid of the NetBeans stub > documentation & @author annotation from the NullJnlpFileException class. Keeping..... But fixed headers > > But, I don't like this exception. I see it as too special-case for something that is *purely* a Someone can do this error again. This is way how to catch it early. > programmer error. > I am in favour of NullPointerException plainly, IllegalArgumentException or something that describes > the intent rather than the specific mistake, eg "IllegalSecurityDescArgumentException" , The own type of excepytion is best recognition of it. Thats why I kept it, and also why I do not want to rename it... No actual reason for it... > >> + } >> this.file = file; >> this.type = type; >> this.downloadHost = downloadHost; >> diff -r 0f85f68370a4 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java >> --- a/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Fri Apr 19 16:41:33 2013 +0200 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Tue Apr 23 13:51:46 2013 +0200 >> @@ -40,6 +40,7 @@ >> import java.io.ByteArrayInputStream; >> import java.io.InputStream; >> import java.util.List; >> +import net.sourceforge.jnlp.runtime.CodeBaseClassLoaderTest; >> >> import org.junit.After; >> import org.junit.Assert; >> @@ -61,7 +62,7 @@ >> } >> InputStream jnlpStream = cl.getResourceAsStream("net/sourceforge/jnlp/basic.jnlp"); >> root = Parser.getRootNode(jnlpStream); >> - parser = new Parser(null, null, root, false, false); >> + parser = new Parser(new CodeBaseClassLoaderTest.DummyJNLPFile(true), null, root, false, >> false); > > > [open for discussion] Hm. I think DummyJNLPFile is a useful enough pattern that it could be a test > extension. Thoughts ? > Maybe if we had MockedEmptyJNLPFile & MockedOneJarJNLPFile ? Or, maybe better is -> DummyJNLPFile > and DummyJNLPFileWithJar ? Yah probably good idea, done. Just refacrored. New features .. when they will be needed :) > >> } >> >> @Test >> diff -r 0f85f68370a4 tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java >> --- a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java Fri Apr 19 >> 16:41:33 2013 +0200 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java Tue Apr 23 >> 13:51:46 2013 +0200 >> @@ -70,7 +70,7 @@ >> } >> } >> >> - private class DummyJNLPFile extends JNLPFile { >> + public static class DummyJNLPFile extends JNLPFile { >> >> final boolean haveSecurity; > > Please get rid of this 'haveSecurity' flag. To me it indicates full-privileges/sandbox. We need to > cover up the mistaken belief :-)) done. To much true! to much pain! > >> >> @@ -252,68 +252,33 @@ >> @Test >> public void testNullFileSecurityDescApplication() throws Exception { > > I am in favour of *exactly one* test that has any mention of null-files. It should be a unit test > for SecurityDesc. Please remove all trace of it otherwise, so not to confuse future maintainers. > >> setWSA(); >> - testNullFileSecurityDesc(); >> + Exception ex = null; >> + try { >> + testNullFileSecurityDesc(); >> + } catch (Exception exx) { >> + ex = exx; >> + } >> + Assert.assertTrue("was expected exception", ex != null); >> + Assert.assertTrue("was expected " + NullJnlpFileException.class.getName(), ex instanceof >> NullJnlpFileException); >> } >> >> @Test >> @Remote >> public void testNullFileSecurityDescApplet() throws Exception { >> setApplet(); >> - testNullFileSecurityDesc(); > > See above. > >> + Exception ex = null; >> + try { >> + testNullFileSecurityDesc(); >> + } catch (Exception exx) { >> + ex = exx; >> + } >> + Assert.assertTrue("was expected exception", ex != null); >> + Assert.assertTrue("was expected " + NullJnlpFileException.class.getName(), ex instanceof >> NullJnlpFileException); >> } >> >> public void testNullFileSecurityDesc() throws Exception { >> JNLPFile dummyJnlpFile = new DummyJNLPFile(false); > > Step in the right direction, but see above. > >> + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); >> >> - JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, null); >> - CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new URL[]{JAR_URL, >> CODEBASE_URL}, parent); >> - >> - Exception ex = null; >> - try { >> - classLoader.findClass("foo"); >> - } catch (Exception exx) { >> - ex = exx; >> - ServerAccess.logException(ex); >> - } >> - Assert.assertNotNull(ex); >> - Assert.assertTrue(ex instanceof ClassNotFoundException); >> - >> - >> - //search dor resources is not relvant to null jnlp file for applets >> - ex = null; >> - URL res = null; >> - try { >> - //not cached >> - res = classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); >> - } catch (Exception exx) { >> - ex = exx; >> - ServerAccess.logException(ex); >> - } >> - if (JNLPRuntime.isWebstartApplication()) { >> - Assert.assertNull(res); >> - Assert.assertNotNull(ex); >> - Assert.assertTrue(ex instanceof NullJnlpFileException); >> - } else { >> - Assert.assertNull(ex); >> - Assert.assertNotNull(res); >> - } >> - >> - ex = null; >> - res = null; >> - try { >> - //now cached >> - res = classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); >> - } catch (Exception exx) { >> - ex = exx; >> - ServerAccess.logException(ex); >> - } >> - if (JNLPRuntime.isWebstartApplication()) { >> - Assert.assertNotNull(ex); >> - Assert.assertTrue(ex instanceof NullJnlpFileException); >> - Assert.assertNull(res); >> - } else { >> - Assert.assertNull(ex); >> - Assert.assertNotNull(res); >> - } >> } >> } > > So in summary: ook > - I think we need a single test in SecurityDesc for the null parameter exception. A comment there done > explaining that tests ran into problems with a null JNLPFile in SecurityDesc would be good. eh...O:) > - If you agree, maybe move out DummyJNLPFile to test extension, otherwise what you did is OK (but > some mocking helpers would be nice) done > - I strongly dislike NullJnlpFileException Well not worthy of refactoring. And I do not want to remove. > - I strongly dislike DummyJNLPFile#haveSecurity sure. Removed > - I strongly dislike testNullFileSecurityDesc & testNullFileSecurityDescApplet & > testNullFileSecurityDescApplication. I really do not want to remove them. They already found a problem. Can do it even later... > See a pattern ? I think it's less confusing for future eyes. It certainly lead me to believe that > this was somehow a valid case (and even you forgot original reason for the tests :-). > > Sorry if I come across as demanding & Feel free to disagree of course :-) done ;) J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedRegression_2.patch Type: text/x-patch Size: 18965 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/b4677342/fixedRegression_2.patch From andrew at icedtea.classpath.org Wed Apr 24 05:39:02 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 24 Apr 2013 12:39:02 +0000 Subject: /hg/icedtea7: Update CACAO to latest tip. Message-ID: changeset e562523c5037 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=e562523c5037 author: Andrew John Hughes date: Wed Apr 24 13:38:48 2013 +0100 Update CACAO to latest tip. 2013-04-24 Andrew John Hughes * patches/cacao/jsig.patch: Removed. * Makefile.am: (CACAO_VERSION): Bump to current tip. (CACAO_SHA256SUM): Likewise. (ICEDTEA_PATCHES): Drop unneeded jsig patch. * NEWS: Updated. diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 5 ++--- NEWS | 39 ++++++++++++++++++++++++++++++++++++++- patches/cacao/jsig.patch | 18 ------------------ 4 files changed, 50 insertions(+), 22 deletions(-) diffs (110 lines): diff -r d4e0f297cf8f -r e562523c5037 ChangeLog --- a/ChangeLog Wed Apr 24 10:24:40 2013 +0100 +++ b/ChangeLog Wed Apr 24 13:38:48 2013 +0100 @@ -1,3 +1,13 @@ +2013-04-24 Andrew John Hughes + + * patches/cacao/jsig.patch: + Removed. + * Makefile.am: + (CACAO_VERSION): Bump to current tip. + (CACAO_SHA256SUM): Likewise. + (ICEDTEA_PATCHES): Drop unneeded jsig patch. + * NEWS: Updated. + 2013-04-24 Andrew John Hughes * Makefile.am, diff -r d4e0f297cf8f -r e562523c5037 Makefile.am --- a/Makefile.am Wed Apr 24 10:24:40 2013 +0100 +++ b/Makefile.am Wed Apr 24 13:38:48 2013 +0100 @@ -18,8 +18,8 @@ LANGTOOLS_SHA256SUM = c412b61b095154fee4c45dc133f2baca3100fecd48b742f80da49a52ec473b02 OPENJDK_SHA256SUM = 44c3e4a130fe4b76c1ba977ae2251884cefa774b82a24c4415b64395aef9594c -CACAO_VERSION = a567bcb7f589 -CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 +CACAO_VERSION = e215e36be9fc +CACAO_SHA256SUM = 4966514c72ee7ed108b882d9b6e65c3adf8a8f9c2dccb029f971b3c8cb4870ab CACAO_BASE_URL = http://icedtea.classpath.org/download/drops/cacao CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz @@ -266,7 +266,6 @@ if BUILD_CACAO ICEDTEA_PATCHES += \ patches/cacao/launcher.patch \ - patches/cacao/jsig.patch \ patches/cacao/memory.patch else if USING_CACAO diff -r d4e0f297cf8f -r e562523c5037 NEWS --- a/NEWS Wed Apr 24 10:24:40 2013 +0100 +++ b/NEWS Wed Apr 24 13:38:48 2013 +0100 @@ -678,7 +678,44 @@ - Revert 7060849 - Set UNLIMITED_CRYPTO=true to ensure we use the unlimited policy. - Set handleStartupErrors to ignoreMultipleInitialisation in nss.cfg to fix PR473 - +* CACAO + - src/vm/jit/x86_64/asmpart.S (asm_abstractmethoderror): Keep stack aligned. + - src/native/jni.cpp (GetObjectClass): Remove null pointer check. + - Removing the cache flush was not the brightest idea. Putting it back in. + - arm: Make md_dcacheflush a compiler barrier, as on x86. + - src/vm/jit/codegen-common.cpp: Removed superfluous memory barrier + - CA168: Updating to the new assertion interface of GNU Classpath + - src/vm/jit/trap.cpp (trap_handle): Print stack trace before aborting. + - arm: Thumb interworking should work on armv5 + - Fixed using typename declarations for clang + - src/native/vm/openjdk/sun_misc_Perf.cpp: Implement high resolution timer. + - Loop analysis completed. + - Finding variable assignments between block and idom(block). + - fully redundant ABC removal + - finding counter variables + - more efficient version of Interval, Scalar and NumericInstruction. + - simple loop duplication + - loop duplication: nested loops + - loop duplication: non-negative increments + - loop duplication: decreasing index + - ABC grouping implemented, NullPointerException now thrown at correct position after loop duplication + - NullPointerException now thrown at the correct position after ABC grouping. + - IntervalMap improved. + - CA166: make check-langtools failure: MineField.sh + - CA167: intern strings in get_StackTraceElement + - src/native/vm/openjdk/jvm.cpp: Recreate JVM_Available. + - Export JVM_SetNativeThreadName (noop) + - src/vm/initialize.cpp: Explicitly initialize java/lang/Class early. + - Adapt to recent java.lang.String changes in openjdk7 + - jdk_str_ops broke the GNU classpath build. + - Support class version 51 unconditionally. Also identify as Java 6. + - Stop creating pseudo files for OpenJDK (libjsig.so, Xusage.txt) + - src/vm/jit/alpha/asmpart.S: Properly set up GP in asm_abstractmethoderror + - CA172, PR1266, G453612: ARM hardfloat support + - Clang fix for the i386 backend + - Fix rt-timing + - Moved rt-timing.{c,h} to C++ + New in release 2.3.8 (2013-03-11): * Security fixes diff -r d4e0f297cf8f -r e562523c5037 patches/cacao/jsig.patch --- a/patches/cacao/jsig.patch Wed Apr 24 10:24:40 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -diff -Nru cacao.orig/Makefile.am cacao/Makefile.am ---- cacao.orig/cacao/src/cacao/Makefile.am 2008-08-04 17:51:28.000000000 +0100 -+++ cacao/cacao/src/cacao/Makefile.am 2010-05-11 10:29:35.000000000 +0100 -@@ -96,12 +96,12 @@ - $(mkdir_p) $(prefix)/jre/lib/$(JAVA_ARCH)/server - $(LN_S) -f $(libdir)/libjvm.so $(prefix)/jre/lib/$(JAVA_ARCH)/server - $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt -- $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so -+ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so - - uninstall-local: - rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjvm.so - rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt -- rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so -+ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so - endif - - From stefan at complang.tuwien.ac.at Wed Apr 24 05:50:06 2013 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Wed, 24 Apr 2013 14:50:06 +0200 Subject: /hg/icedtea7: Update CACAO to latest tip. In-Reply-To: References: Message-ID: > +* CACAO [?] > + - Loop analysis completed. > + - Finding variable assignments between block and idom(block). > + - fully redundant ABC removal > + - finding counter variables > + - more efficient version of Interval, Scalar and NumericInstruction. > + - simple loop duplication > + - loop duplication: nested loops > + - loop duplication: non-negative increments > + - loop duplication: decreasing index > + - ABC grouping implemented, NullPointerException now thrown at correct position after loop duplication > + - NullPointerException now thrown at the correct position after ABC grouping. > + - IntervalMap improved. These are in a separate branch and not contained in the revision you pulled. Regards From adomurad at redhat.com Wed Apr 24 06:39:04 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 24 Apr 2013 09:39:04 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5177D16D.1070104@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> Message-ID: <5177E078.8020207@redhat.com> On 04/24/2013 08:34 AM, Jiri Vanek wrote: >> If you keep NullJnlpFileException, at the very least please get rid >> of the NetBeans stub >> documentation & @author annotation from the NullJnlpFileException class. > > Keeping..... But fixed headers OK >> >> But, I don't like this exception. I see it as too special-case for >> something that is *purely* a > Someone can do this error again. This is way how to catch it early. To be clear, I wasn't arguing to have no exception at all. Anyway, fine as is. >> >> [open for discussion] Hm. I think DummyJNLPFile is a useful enough >> pattern that it could be a test >> extension. Thoughts ? >> Maybe if we had MockedEmptyJNLPFile & MockedOneJarJNLPFile ? Or, >> maybe better is -> DummyJNLPFile >> and DummyJNLPFileWithJar ? > > Yah probably good idea, done. > Just refacrored. New features .. when they will be needed :) Agreed >> >> So in summary: > ook > >> - I think we need a single test in SecurityDesc for the null >> parameter exception. A comment there > done > >> explaining that tests ran into problems with a null JNLPFile in >> SecurityDesc would be good. > eh...O:) OK > >> - I strongly dislike NullJnlpFileException > Well not worthy of refactoring. And I do not want to remove. Fair enough. > >> - I strongly dislike DummyJNLPFile#haveSecurity > sure. Removed > >> - I strongly dislike testNullFileSecurityDesc & >> testNullFileSecurityDescApplet & >> testNullFileSecurityDescApplication. > > I really do not want to remove them. They already found a problem. Can > do it even later... No. They *were* the problem; very different. I still want them gone :-). But I won't insist. >> See a pattern ? I think it's less confusing for future eyes. It >> certainly lead me to believe that >> this was somehow a valid case (and even you forgot original reason >> for the tests :-). >> >> Sorry if I come across as demanding & Feel free to disagree of course >> :-) > > done ;) J Thanks for disagreeing :-) > > > J. Comments in-line > diff -r b912e91204b1 netx/net/sourceforge/jnlp/NullJnlpFileException.java > --- a/netx/net/sourceforge/jnlp/NullJnlpFileException.java Tue Apr > 23 13:59:20 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/NullJnlpFileException.java Wed Apr > 24 14:20:04 2013 +0200 > @@ -1,14 +1,42 @@ > package net.sourceforge.jnlp; > > -/* > - * To change this template, choose Tools | Templates > - * and open the template in the editor. > +/* > +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. > */ > > -/** > - * > - * @author jvanek > - */ > public class NullJnlpFileException extends NullPointerException { [nit] What value does extending from NPE provide ? > > public NullJnlpFileException() { > diff -r b912e91204b1 netx/net/sourceforge/jnlp/SecurityDesc.java > --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Tue Apr 23 > 13:59:20 2013 -0400 > +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Wed Apr 24 > 14:20:04 2013 +0200 > @@ -149,6 +149,9 @@ > * @param downloadHost the download host (can always connect to) > */ > public SecurityDesc(JNLPFile file, Object type, String > downloadHost) { > + if (file == null) { > + throw new NullJnlpFileException(); > + } > this.file = file; > this.type = type; > this.downloadHost = downloadHost; > diff -r b912e91204b1 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java > --- a/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Tue Apr > 23 13:59:20 2013 -0400 > +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Wed Apr > 24 14:20:04 2013 +0200 > @@ -40,6 +40,8 @@ > import java.io.ByteArrayInputStream; > import java.io.InputStream; > import java.util.List; > +import net.sourceforge.jnlp.runtime.CodeBaseClassLoaderTest; > +import net.sourceforge.jnlp.mock.DummyJNLPFile; > > import org.junit.After; > import org.junit.Assert; > @@ -61,7 +63,7 @@ > } > InputStream jnlpStream = > cl.getResourceAsStream("net/sourceforge/jnlp/basic.jnlp"); > root = Parser.getRootNode(jnlpStream); > - parser = new Parser(null, null, root, false, false); > + parser = new Parser(new DummyJNLPFile(), null, root, false, > false); > } > > @Test > diff -r b912e91204b1 > tests/netx/unit/net/sourceforge/jnlp/SecurityDescTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/SecurityDescTest.java Wed > Apr 24 14:20:04 2013 +0200 > @@ -0,0 +1,66 @@ > +/* > + 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; > + > +import net.sourceforge.jnlp.mock.DummyJNLPFile; > +import org.junit.Assert; > +import org.junit.Test; > + > + > +public class SecurityDescTest { > + > + @Test > + public void testNotNullJnlpFile(){ > + SecurityDesc securityDesc = new SecurityDesc(new > DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); > + Assert.assertNotNull("securityDesc should not be ",securityDesc); What is this, a Java sanity test ? Well, I found it a bit funny :-) I assume you wanted to check the file, but there's no getter, so I'm in favour of getting rid of this. > + > + } > + > + @Test > + public void testNullJnlpFile(){ > + Exception ex = null; > + try{ > + SecurityDesc securityDesc = new SecurityDesc(null, > SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); > + }catch(Exception eex){ > + ex=eex; > + } > + Assert.assertNotNull("Exception should not be null",ex); > + Assert.assertTrue("Exception should be > "+NullJnlpFileException.class.getName(), ex instanceof > NullJnlpFileException); > + > + } > + > +} > diff -r b912e91204b1 > tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > --- > a/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > Tue Apr 23 13:59:20 2013 -0400 > +++ > b/tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java > Wed Apr 24 14:20:04 2013 +0200 > @@ -1,41 +1,42 @@ > /* CodeBaseClassLoaderTest.java > -Copyright (C) 2012 Red Hat, Inc. > + Copyright (C) 2012 Red Hat, Inc. > > -This file is part of IcedTea. > + This file is part of IcedTea. > > -IcedTea is free software; you can redistribute it and/or > -modify it under the terms of the GNU General Public License as > published by > -the Free Software Foundation, version 2. > + IcedTea is free software; you can redistribute it and/or > + modify it under the terms of the GNU General Public License as > published by > + the Free Software Foundation, version 2. > > -IcedTea is distributed in the hope that it will be useful, > -but WITHOUT ANY WARRANTY; without even the implied warranty of > -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -General Public License for more details. > + IcedTea is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + General Public License for more details. > > -You should have received a copy of the GNU General Public License > -along with IcedTea; see the file COPYING. If not, write to > -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > -02110-1301 USA. > + You should have received a copy of the GNU General Public License > + along with IcedTea; see the file COPYING. If not, write to > + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > + 02110-1301 USA. > > -Linking this library statically or dynamically with other modules is > -making a combined work based on this library. Thus, the terms and > -conditions of the GNU General Public License cover the whole > -combination. > + Linking this library statically or dynamically with other modules is > + making a combined work based on this library. Thus, the terms and > + conditions of the GNU General Public License cover the whole > + combination. > > -As a special exception, the copyright holders of this library give you > -permission to link this library with independent modules to produce an > -executable, regardless of the license terms of these independent > -modules, and to copy and distribute the resulting executable under > -terms of your choice, provided that you also meet, for each linked > -independent module, the terms and conditions of the license of that > -module. An independent module is a module which is not derived from > -or based on this library. If you modify this library, you may extend > -this exception to your version of the library, but you are not > -obligated to do so. If you do not wish to do so, delete this > -exception statement from your version. > + As a special exception, the copyright holders of this library give you > + permission to link this library with independent modules to produce an > + executable, regardless of the license terms of these independent > + modules, and to copy and distribute the resulting executable under > + terms of your choice, provided that you also meet, for each linked > + independent module, the terms and conditions of the license of that > + module. An independent module is a module which is not derived from > + or based on this library. If you modify this library, you may extend > + this exception to your version of the library, but you are not > + obligated to do so. If you do not wish to do so, delete this > + exception statement from your version. > */ > package net.sourceforge.jnlp.runtime; > > +import net.sourceforge.jnlp.mock.DummyJNLPFile; > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > > @@ -47,6 +48,7 @@ > import net.sourceforge.jnlp.NullJnlpFileException; > import net.sourceforge.jnlp.ResourcesDesc; > import net.sourceforge.jnlp.SecurityDesc; > +import net.sourceforge.jnlp.SecurityDescTest; > import net.sourceforge.jnlp.ServerAccess; > import net.sourceforge.jnlp.runtime.JNLPClassLoader.CodeBaseClassLoader; > import net.sourceforge.jnlp.annotations.Bug; > @@ -58,45 +60,6 @@ > > public class CodeBaseClassLoaderTest { > > - private static final URL JAR_URL; > - private static final URL CODEBASE_URL; > - > - static { > - try { > - JAR_URL = new > URL("http://icedtea.classpath.org/netx/about.jar"); > - CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); > - } catch (Exception ex) { > - throw new RuntimeException(ex); > - } > - } > - > - private class DummyJNLPFile extends JNLPFile { > - > - final boolean haveSecurity; > - > - public DummyJNLPFile(boolean haveSecurity) { > - this.haveSecurity = haveSecurity; > - } > - > - @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() { > - if (haveSecurity) { > - return new SecurityDesc(this, > SecurityDesc.SANDBOX_PERMISSIONS, null); > - } else { > - return new SecurityDesc(null, > SecurityDesc.SANDBOX_PERMISSIONS, null); > - } > - } > - }; > private static final String isWSA = "isWebstartApplication"; > > static void setStaticField(Field field, Object newValue) throws > Exception { > @@ -159,10 +122,10 @@ > } > > public void testResourceCaching(String r, boolean shouldExists) > throws Exception { > - JNLPFile dummyJnlpFile = new DummyJNLPFile(true); > + JNLPFile dummyJnlpFile = new DummyJNLPFile(); > > JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null); > - CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{JAR_URL, CODEBASE_URL}, parent); > + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{DummyJNLPFile.JAR_URL, DummyJNLPFile.CODEBASE_URL}, parent); > > int level = 10; > if (shouldExists) { > @@ -228,19 +191,18 @@ > } > > public void testParentClassLoaderIsAskedForClasses() throws > Exception { > - JNLPFile dummyJnlpFile = new DummyJNLPFile(true); > + JNLPFile dummyJnlpFile = new DummyJNLPFile(); > > final boolean[] parentWasInvoked = new boolean[1]; > > JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null) { > - > @Override > protected Class findClass(String name) throws > ClassNotFoundException { > parentWasInvoked[0] = true; > throw new ClassNotFoundException(name); > } > }; > - CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{JAR_URL, CODEBASE_URL}, parent); > + CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{DummyJNLPFile.JAR_URL, DummyJNLPFile.CODEBASE_URL}, parent); > try { > classLoader.findClass("foo"); > assertFalse("should not happen", true); > @@ -252,68 +214,38 @@ > @Test > public void testNullFileSecurityDescApplication() throws Exception { > setWSA(); > - testNullFileSecurityDesc(); > + Exception ex = null; > + try { > + testNullFileSecurityDesc(); > + } catch (Exception exx) { > + ex = exx; > + } > + Assert.assertTrue("was expected exception", ex != null); > + Assert.assertTrue("was expected " + > NullJnlpFileException.class.getName(), ex instanceof > NullJnlpFileException); > } > > @Test > @Remote > public void testNullFileSecurityDescApplet() throws Exception { > setApplet(); > - testNullFileSecurityDesc(); > + Exception ex = null; > + try { > + testNullFileSecurityDesc(); > + } catch (Exception exx) { > + ex = exx; > + } > + Assert.assertTrue("was expected exception", ex != null); > + Assert.assertTrue("was expected " + > NullJnlpFileException.class.getName(), ex instanceof > NullJnlpFileException); > } > > public void testNullFileSecurityDesc() throws Exception { > - JNLPFile dummyJnlpFile = new DummyJNLPFile(false); > + JNLPFile dummyJnlpFile = new DummyJNLPFile() { > + @Override > + public SecurityDesc getSecurity() { > + return new SecurityDesc(null, > SecurityDesc.SANDBOX_PERMISSIONS, null); > + } > + }; > + JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null); > > - JNLPClassLoader parent = new JNLPClassLoader(dummyJnlpFile, > null); > - CodeBaseClassLoader classLoader = new CodeBaseClassLoader(new > URL[]{JAR_URL, CODEBASE_URL}, parent); > - > - Exception ex = null; > - try { > - classLoader.findClass("foo"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof ClassNotFoundException); > - > - > - //search dor resources is not relvant to null jnlp file for > applets > - ex = null; > - URL res = null; > - try { > - //not cached > - res = > classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - if (JNLPRuntime.isWebstartApplication()) { > - Assert.assertNull(res); > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof NullJnlpFileException); > - } else { > - Assert.assertNull(ex); > - Assert.assertNotNull(res); > - } > - > - ex = null; > - res = null; > - try { > - //now cached > - res = > classLoader.findResource("net/sourceforge/jnlp/about/resources/notes.html"); > - } catch (Exception exx) { > - ex = exx; > - ServerAccess.logException(ex); > - } > - if (JNLPRuntime.isWebstartApplication()) { > - Assert.assertNotNull(ex); > - Assert.assertTrue(ex instanceof NullJnlpFileException); > - Assert.assertNull(res); > - } else { > - Assert.assertNull(ex); > - Assert.assertNotNull(res); > - } > } > } > diff -r b912e91204b1 > tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java > --- > a/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Tue > Apr 23 13:59:20 2013 -0400 > +++ > b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Wed > Apr 24 14:20:04 2013 +0200 > @@ -58,6 +58,7 @@ > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ResourcesDesc; > import net.sourceforge.jnlp.SecurityDesc; > +import net.sourceforge.jnlp.SecurityDescTest; > import net.sourceforge.jnlp.ServerAccess; > import net.sourceforge.jnlp.Version; > import net.sourceforge.jnlp.cache.UpdatePolicy; > diff -r b912e91204b1 > tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFile.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ > b/tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFile.java > Wed Apr 24 14:20:04 2013 +0200 > @@ -0,0 +1,48 @@ > +/* > + * To change this template, choose Tools | Templates > + * and open the template in the editor. > + */ - these lines + copyright header > +package net.sourceforge.jnlp.mock; > + > +import java.net.URL; > +import java.util.Locale; > +import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.ResourcesDesc; > +import net.sourceforge.jnlp.SecurityDesc; > + > +/** > + * > + * @author jvanek > + */ Snip these lines Maybe you could configure NetBeans to add the Red Hat copyright header and not add these lines ? :-)) > +public class DummyJNLPFile extends JNLPFile { > + > + > + public static final URL JAR_URL; > + public static final URL CODEBASE_URL; > + > + static { > + try { > + JAR_URL = new > URL("http://icedtea.classpath.org/netx/about.jar"); > + CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); > + } catch (Exception ex) { > + throw new RuntimeException(ex); > + } > + } > + > + > + @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(this, > SecurityDesc.SANDBOX_PERMISSIONS, null); > + } > + > +} Almost acceptable :-) Happy hacking, -Adam From adomurad at redhat.com Wed Apr 24 07:00:50 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 24 Apr 2013 10:00:50 -0400 Subject: [rfc][icedtea-web] A dead-lock / Firefox hanging fix In-Reply-To: <51777A0C.1040409@redhat.com> References: <516DB169.3030301@redhat.com> <51777A0C.1040409@redhat.com> Message-ID: <5177E592.8010801@redhat.com> On 04/24/2013 02:22 AM, Jiri Vanek wrote: > On 04/16/2013 10:15 PM, Adam Domurad wrote: >> Hi all. >> >> Recently on one of my computers I noticed that Firefox was hanging >> every time an applet failed. While I'm not sure why this was suddenly >> happening every time, I took it as an opportunity to look into a fix >> while the bug was in plain sight. > > Was this caused by some special version of firefox? > > I was unable to reproduce - nowhere. I am unable to reproduce outside of my laptop. However it was clear, once it entered the deadlock, why it had done so. > > Anyway I think this cleanup is good thing and is doing the code much > more readable > > The only torubeling thing is "why it was so complicated??" Was it ? :-)) >> >> The problem area is here: >> >> plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:740 (from HEAD) >>> while (panel == null || !panel.isAlive()) { >>> ^^^^^^^^^^^^^ >>> maxTimeToSleep -= waitTillTimeout(panelLock, panelLive, >>> maxTimeToSleep); >>> >>> /* we already waited till timeout, give up here directly, >>> * instead of waiting 180s again in below waitForAppletInit() >>> */ >>> if(maxTimeToSleep < 0) { >>> streamhandler.write("instance " + identifier + " reference " + -1 + >>> " fatalError: " + "Initialization timed out"); >>> return; >> >> The intent for using panel.isAlive() in the condition here is >> presumably to ensure that the handler thread is created. NetxPanel is >> created with appletAlive=true, so the following method: >> >> netx/net/sourceforge/jnlp/NetxPanel.java:196 (from HEAD) >>> public boolean isAlive() { >>> return handler != null && handler.isAlive() && this.appletAlive; >>> } >> >> Effectively tests that the handler thread was created. There's one >> problem, in the case of an exception path ... >> >> netx/net/sourceforge/jnlp/NetxPanel.java:150 (from HEAD) >>> } catch (Exception e) { >>> this.appletAlive = false; >>> ^^^^^^^^^^^^^^^^^^ >>> e.printStackTrace(); >>> replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), >>> getHeight(), e)); >> >> This unfortunately causes isAlive() to permanently return false from >> that point onwards. Clearly if isAlive() ever gets false in the >> condition at PluginAppletViewer:740 we will loop forever. The C++ >> side of the plugin can do nothing but wait. Additionally, since >> icedtea-web is run in-process unlike other plugins, this hangs >> firefox completely. >> >> One thing to notice is, PluginAppletViewer:740-751 are fairly >> redundant because line 760 (== 'waitForAppletInit(panel)') waits for >> complete initialization anyway. >> The patch therefore axes these lines, which were mostly identical to >> waitForAppletInit. There is no need to separately wait for the >> handler thread to initialize. It's also worth noting that waiting on >> panel == null makes little sense because 'panel' is set *only* in the >> constructor. Therefore if it were ever null we would be spinning >> forever anyway. >> >> The other part of the fix was making sure the C++ side of the plugin >> gets a response. >> >> plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:764 (from HEAD) >>> if (panel.getApplet() == null) { >>> streamhandler.write("instance " + identifier + " reference " + -1 + >>> " fatalError: " + "Initialization failed"); >>> return; >>> } >> >> This lacks a response to the message being handled, meaning the C++ >> side will wait until timeout. Adding 'streamhandler.write("context 0 >> reference " + reference + " Error");' solves the problem neatly. >> >> >> ChangeLog: > > Myabe little but more detailed description of the removal code > (similar as above) Sorry, where do you want this description, and of what 'removal code' ? > > Anyway.. push when you feel .... If you have any reservations, don't hesitate to bring them up. >> 2013-XX-XX Adam Domurad >> >> Fix a dead-lock that can cause (namely) Firefox to hang. >> * netx/net/sourceforge/jnlp/NetxPanel.java >> (appletAlive): Remove flag. >> (isAlive): Remove getter. >> (initialized): New, explicit initialization flag. >> (isInitialized): New, getter. >> (runLoader): Set initialization flag when done (whether errored or not). >> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >> (waitForAppletInit): Wait on initialization flag from NetxPanel. >> (handleMessage): Remove redundant waiting for init. Respond properly to >> GetJavaObject in case of error/time-out. >> >> >> Happy hacking, >> -Adam > -Adam From jvanek at redhat.com Wed Apr 24 07:56:23 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 16:56:23 +0200 Subject: [rfc][icedtea-web] A dead-lock / Firefox hanging fix In-Reply-To: <5177E592.8010801@redhat.com> References: <516DB169.3030301@redhat.com> <51777A0C.1040409@redhat.com> <5177E592.8010801@redhat.com> Message-ID: <5177F297.9030204@redhat.com> On 04/24/2013 04:00 PM, Adam Domurad wrote: > On 04/24/2013 02:22 AM, Jiri Vanek wrote: >> On 04/16/2013 10:15 PM, Adam Domurad wrote: >>> Hi all. >>> >>> Recently on one of my computers I noticed that Firefox was hanging every time an applet failed. >>> While I'm not sure why this was suddenly happening every time, I took it as an opportunity to >>> look into a fix while the bug was in plain sight. >> >> Was this caused by some special version of firefox? >> >> I was unable to reproduce - nowhere. > > I am unable to reproduce outside of my laptop. However it was clear, once it entered the deadlock, > why it had done so. > >> >> Anyway I think this cleanup is good thing and is doing the code much more readable >> >> The only torubeling thing is "why it was so complicated??" > > Was it ? :-)) yah.. the original implementation was quite unclear... > >>> >>> The problem area is here: >>> >>> plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:740 (from HEAD) >>>> while (panel == null || !panel.isAlive()) { >>>> ^^^^^^^^^^^^^ >>>> maxTimeToSleep -= waitTillTimeout(panelLock, panelLive, >>>> maxTimeToSleep); >>>> >>>> /* we already waited till timeout, give up here directly, >>>> * instead of waiting 180s again in below waitForAppletInit() >>>> */ >>>> if(maxTimeToSleep < 0) { >>>> streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + >>>> "Initialization timed out"); >>>> return; >>> >>> The intent for using panel.isAlive() in the condition here is presumably to ensure that the >>> handler thread is created. NetxPanel is created with appletAlive=true, so the following method: >>> >>> netx/net/sourceforge/jnlp/NetxPanel.java:196 (from HEAD) >>>> public boolean isAlive() { >>>> return handler != null && handler.isAlive() && this.appletAlive; >>>> } >>> >>> Effectively tests that the handler thread was created. There's one problem, in the case of an >>> exception path ... >>> >>> netx/net/sourceforge/jnlp/NetxPanel.java:150 (from HEAD) >>>> } catch (Exception e) { >>>> this.appletAlive = false; >>>> ^^^^^^^^^^^^^^^^^^ >>>> e.printStackTrace(); >>>> replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); >>> >>> This unfortunately causes isAlive() to permanently return false from that point onwards. Clearly >>> if isAlive() ever gets false in the condition at PluginAppletViewer:740 we will loop forever. The >>> C++ side of the plugin can do nothing but wait. Additionally, since icedtea-web is run in-process >>> unlike other plugins, this hangs firefox completely. >>> >>> One thing to notice is, PluginAppletViewer:740-751 are fairly redundant because line 760 (== >>> 'waitForAppletInit(panel)') waits for complete initialization anyway. >>> The patch therefore axes these lines, which were mostly identical to waitForAppletInit. There is >>> no need to separately wait for the handler thread to initialize. It's also worth noting that >>> waiting on panel == null makes little sense because 'panel' is set *only* in the constructor. >>> Therefore if it were ever null we would be spinning forever anyway. >>> >>> The other part of the fix was making sure the C++ side of the plugin gets a response. >>> >>> plugin/icedteanp/java/sun/applet/PluginAppletViewer.java:764 (from HEAD) >>>> if (panel.getApplet() == null) { >>>> streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + >>>> "Initialization failed"); >>>> return; >>>> } >>> >>> This lacks a response to the message being handled, meaning the C++ side will wait until timeout. >>> Adding 'streamhandler.write("context 0 reference " + reference + " Error");' solves the problem >>> neatly. >>> >>> >>> ChangeLog: >> >> Myabe little but more detailed description of the removal code (similar as above) > > Sorry, where do you want this description, and of what 'removal code' ? "740-751 are fairly redundant because line 760 (== >>> 'waitForAppletInit(panel)') waits for complete initialization anyway." /s/removal/removed > >> >> Anyway.. push when you feel .... > > If you have any reservations, don't hesitate to bring them up. I wish I have. The fact that I'm unable to reproduce is put me to strange situation.. but Ilike it... > >>> 2013-XX-XX Adam Domurad >>> >>> Fix a dead-lock that can cause (namely) Firefox to hang. >>> * netx/net/sourceforge/jnlp/NetxPanel.java >>> (appletAlive): Remove flag. >>> (isAlive): Remove getter. >>> (initialized): New, explicit initialization flag. >>> (isInitialized): New, getter. >>> (runLoader): Set initialization flag when done (whether errored or not). >>> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >>> (waitForAppletInit): Wait on initialization flag from NetxPanel. >>> (handleMessage): Remove redundant waiting for init. Respond properly to >>> GetJavaObject in case of error/time-out. >>> >>> >>> Happy hacking, >>> -Adam >> > -Adam From adomurad at icedtea.classpath.org Wed Apr 24 08:05:58 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Wed, 24 Apr 2013 15:05:58 +0000 Subject: /hg/icedtea-web: Remove unnecessary line that can result in NPE Message-ID: changeset 5c5709590a9d in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=5c5709590a9d author: Adam Domurad date: Wed Apr 24 11:06:49 2013 -0400 Remove unnecessary line that can result in NPE diffstat: ChangeLog | 5 +++++ plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) diffs (24 lines): diff -r b912e91204b1 -r 5c5709590a9d ChangeLog --- a/ChangeLog Tue Apr 23 13:59:20 2013 -0400 +++ b/ChangeLog Wed Apr 24 11:06:49 2013 -0400 @@ -1,3 +1,8 @@ +2013-04-24 Adam Domurad + + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: + Remove unnecessary line that can result in NPE + 2013-04-23 Adam Domurad * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: diff -r b912e91204b1 -r 5c5709590a9d plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Tue Apr 23 13:59:20 2013 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed Apr 24 11:06:49 2013 -0400 @@ -1495,8 +1495,6 @@ if (cl instanceof JNLPClassLoader.CodeBaseClassLoader) cl = ((JNLPClassLoader.CodeBaseClassLoader) cl).getParentJNLPClassLoader(); - ThreadGroup tg = ((JNLPClassLoader) cl).getApplication().getThreadGroup(); - appletShutdown(p); appletPanels.removeElement(p); From gnu.andrew at redhat.com Wed Apr 24 08:11:05 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Wed, 24 Apr 2013 11:11:05 -0400 (EDT) Subject: /hg/icedtea7: Update CACAO to latest tip. In-Reply-To: References: Message-ID: <785930787.2769186.1366816265377.JavaMail.root@redhat.com> ----- Original Message ----- > > +* CACAO > [?] > > + - Loop analysis completed. > > + - Finding variable assignments between block and idom(block). > > + - fully redundant ABC removal > > + - finding counter variables > > + - more efficient version of Interval, Scalar and NumericInstruction. > > + - simple loop duplication > > + - loop duplication: nested loops > > + - loop duplication: non-negative increments > > + - loop duplication: decreasing index > > + - ABC grouping implemented, NullPointerException now thrown at correct > > position after loop duplication > > + - NullPointerException now thrown at the correct position after ABC > > grouping. > > + - IntervalMap improved. > > These are in a separate branch and not contained in the revision you pulled. > > Regards > Ugh Mercurial... why does it show me stuff on other branches when I ask for a log? :-( -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From stefan at complang.tuwien.ac.at Wed Apr 24 08:13:39 2013 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Wed, 24 Apr 2013 17:13:39 +0200 Subject: /hg/icedtea7: Update CACAO to latest tip. In-Reply-To: <785930787.2769186.1366816265377.JavaMail.root@redhat.com> References: <785930787.2769186.1366816265377.JavaMail.root@redhat.com> Message-ID: > Ugh Mercurial... why does it show me stuff on other branches when I ask for a log? :-( :) You should always use "pull -r default" and forget about everything else. Cheers From gnu.andrew at redhat.com Wed Apr 24 08:21:04 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Wed, 24 Apr 2013 11:21:04 -0400 (EDT) Subject: /hg/icedtea7: Update CACAO to latest tip. In-Reply-To: References: <785930787.2769186.1366816265377.JavaMail.root@redhat.com> Message-ID: <1130604891.2775411.1366816864654.JavaMail.root@redhat.com> ----- Original Message ----- > > Ugh Mercurial... why does it show me stuff on other branches when I ask for > > a log? :-( > > :) > > You should always use "pull -r default" and forget about everything else. > > Cheers > This is why I never use Mercurial's branches. They are broken if you need to remember to do that all the time. -- 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 gnu.andrew at redhat.com Wed Apr 24 09:04:12 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Wed, 24 Apr 2013 12:04:12 -0400 (EDT) Subject: Result: New IcedTea Reviewer: Omair Majid In-Reply-To: <1524842453.2796235.1366819392017.JavaMail.root@redhat.com> Message-ID: <1328962004.2796521.1366819452341.JavaMail.root@redhat.com> Voting for Omair Majid [1] is now closed. Yes: 1 Veto: 0 Abstain: 0 According to the Bylaws definition of a Three Vote Consensus, this is not sufficient to approve the nomination. [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-April/022669.html -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jvanek at redhat.com Wed Apr 24 09:27:18 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 18:27:18 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5177E078.8020207@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> Message-ID: <517807E6.5070007@redhat.com> Ok. So just fixed header. On 04/24/2013 03:39 PM, Adam Domurad wrote: > On 04/24/2013 08:34 AM, Jiri Vanek wrote: >>> If you keep NullJnlpFileException, at the very least please get rid of the NetBeans stub >> sure. Removed >> >>> - I strongly dislike testNullFileSecurityDesc & testNullFileSecurityDescApplet & >>> testNullFileSecurityDescApplication. >> >> I really do not want to remove them. They already found a problem. Can do it even later... > > No. They *were* the problem; very different. I still want them gone :-). But I won't insist. > I would like to keep them at least for statistic purposes. it i so nice to have failing test which suddenly disappeared. Otherwise I agree with you taht they are.. well "testing java" :))) >>> See a pattern ? I think it's less confusing for future eyes. It certainly lead me to believe that >>> this was somehow a valid case (and even you forgot original reason for the tests :-). >>> >>> Sorry if I come across as demanding & Feel free to disagree of course :-) >> >> done ;) J > > Thanks for disagreeing :-) > >> >> >> J. > > ... >> -/** >> - * >> - * @author jvanek >> - */ >> public class NullJnlpFileException extends NullPointerException { > > [nit] What value does extending from NPE provide ? > Like from runtime exception. Practicaly none, except both are pointing to "null" something No need to refactor anyway imho .... >> >> public NullJnlpFileException() { >> diff -r b912e91204b1 netx/net/sourceforge/jnlp/SecurityDesc.java >> --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Tue Apr 23 13:59:20 2013 -0400 >> +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Wed Apr 24 14:20:04 2013 +0200 >> @@ -149,6 +149,9 @@ ... >> +exception statement from your version. >> + */ >> +package net.sourceforge.jnlp; >> + >> +import net.sourceforge.jnlp.mock.DummyJNLPFile; >> +import org.junit.Assert; >> +import org.junit.Test; >> + >> + >> +public class SecurityDescTest { >> + >> + @Test >> + public void testNotNullJnlpFile(){ >> + SecurityDesc securityDesc = new SecurityDesc(new DummyJNLPFile(), >> SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); >> + Assert.assertNotNull("securityDesc should not be ",securityDesc); > > What is this, a Java sanity test ? Well, I found it a bit funny :-) I assume you wanted to check the > file, but there's no getter, so I'm in favour of getting rid of this. Still better then Assert.assertTrue(true).... Otherwise I agree... > >> + >> + } >> + >> + @Test >> + public void testNullJnlpFile(){ >> + Exception ex = null; >> + try{ >> + SecurityDesc securityDesc = new SecurityDesc(null, SecurityDesc.SANDBOX_PERMISSIONS, >> "hey!"); >> + }catch(Exception eex){ >> + ex=eex; >> + } esourcesDesc; >> +import net.sourceforge.jnlp.SecurityDesc; >> + >> +/** >> + * >> + * @author jvanek >> + */ > > Snip these lines damn. done... > Maybe you could configure NetBeans to add the Red Hat copyright header and not add these lines ? :-)) YAh.. aafter years of errors :-/ > >> +public class DummyJNLPFile extends JNLPFile { >> + >> + >> + public static final URL JAR_URL; >> + public static final URL CODEBASE_URL; >> + >> + static { >> + try { >> + JAR_URL = new URL("http://icedtea.classpath.org/netx/about.jar"); >> + CODEBASE_URL = new URL("http://icedtea.classpath.org/netx/"); >> + } catch (Exception ex) { >> + throw new RuntimeException(ex); >> + } >> + } >> + >> + >> + @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(this, SecurityDesc.SANDBOX_PERMISSIONS, null); >> + } >> + >> +} > > Almost acceptable :-) > > Happy hacking, > -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedRegression_3.patch Type: text/x-patch Size: 20490 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/9370a45b/fixedRegression_3.patch From adomurad at redhat.com Wed Apr 24 09:34:23 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 24 Apr 2013 12:34:23 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <517807E6.5070007@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> <517807E6.5070007@redhat.com> Message-ID: <5178098F.3030603@redhat.com> > + @Test > + public void testNotNullJnlpFile(){ > + SecurityDesc securityDesc = new SecurityDesc(new > DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); > + Assert.assertNotNull("securityDesc should not be ",securityDesc); > + > + } Huh. Why is this still in ? Sorry, I can't support superstitious coding. At least drop the assert if you want a constructor sanity check. Push without this please. Otherwise good. Happy hacking, -Adam From jvanek at redhat.com Wed Apr 24 09:37:16 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Apr 2013 18:37:16 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5178098F.3030603@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> <517807E6.5070007@redhat.com> <5178098F.3030603@redhat.com> Message-ID: <51780A3C.4050200@redhat.com> On 04/24/2013 06:34 PM, Adam Domurad wrote: >> + @Test >> + public void testNotNullJnlpFile(){ >> + SecurityDesc securityDesc = new SecurityDesc(new DummyJNLPFile(), >> SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); >> + Assert.assertNotNull("securityDesc should not be ",securityDesc); >> + >> + } > > Huh. Why is this still in ? Sorry, I can't support superstitious coding. > > At least drop the assert if you want a constructor sanity check. No. I would like to keep it inside even with assert. The code inside the constructor can change later. Eg some dummy jnl file will be tried to be created and used into if argument is null. I would like to have it recorded. > > Push without this please. Otherwise good. > > Happy hacking, > -Adam From adomurad at redhat.com Wed Apr 24 09:41:51 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 24 Apr 2013 12:41:51 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <51780A3C.4050200@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> <517807E6.5070007@redhat.com> <5178098F.3030603@redhat.com> <51780A3C.4050200@redhat.com> Message-ID: <51780B4F.5010508@redhat.com> On 04/24/2013 12:37 PM, Jiri Vanek wrote: > On 04/24/2013 06:34 PM, Adam Domurad wrote: >>> + @Test >>> + public void testNotNullJnlpFile(){ >>> + SecurityDesc securityDesc = new SecurityDesc(new >>> DummyJNLPFile(), >>> SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); >>> + Assert.assertNotNull("securityDesc should not be >>> ",securityDesc); >>> + >>> + } >> >> Huh. Why is this still in ? Sorry, I can't support superstitious coding. >> >> At least drop the assert if you want a constructor sanity check. > > No. I would like to keep it inside even with assert. > The code inside the constructor can change later. Eg some dummy jnl > file will be tried to be created and used into if argument is null. > > I would like to have it recorded. Sorry, but this assert is really a no-op. How could the result of 'new' ever be null ? I'm OK with just running the constructor, but I really don't understand why you want this line. It's like asserting assertNotNull(new Object()); It's plain superstition. -Adam > >> >> Push without this please. Otherwise good. >> >> Happy hacking, >> -Adam > From jfabriko at redhat.com Wed Apr 24 10:27:46 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Wed, 24 Apr 2013 19:27:46 +0200 Subject: [rfc][icedtea-web] AWTFramework and sample reproducers using it Message-ID: <1366824466.1828.16.camel@jana-2-174.nrt.redhat.com> Hi, the big AWTFramework patch is in the attachment, together with three pictures used by the reproducers. Thanks for any comments, Jana ChangeLog: 2013-04-24 Jana Fabrikova * /tests/test-extensions/net/sourceforge/jnlp/closinglisteners/RulesFolowingClosingListener.java: added a getter method getRules * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: the most important class of AWTFramework, combines closing listener and possibility to use mouse and keyboard for input to tests * tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java: exception that is raised in the framework whenever programmer did not provide enough information * tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/KeyboardActions.java: class with utility keyboard methods * tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/MouseActions.java: class with utility mouse methods * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: class for finding components in a screenshot * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentNotFoundException.java: exception that can be raised if an important component could not be found * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: class for general image searching * tests/reproducers/simple/AWTCommonResourcesOnly/resources/marker.png: reproducer with resources only, contains the default icon marking applets 1st reproducer: browser tests for mouse clicking on a button in applet, applet is found using an icon, button is found using colors and in one case also icon - greenbutton.png * tests/reproducers/simple/AppletAWTRobotUsageSample/resources/AppletAWTRobotUsageSample.html: * tests/reproducers/simple/AppletAWTRobotUsageSample/resources/applet-awtrobot-usage-sample.jnlp: * tests/reproducers/simple/AppletAWTRobotUsageSample/resources/greenbutton.png * tests/reproducers/simple/AppletAWTRobotUsageSample/srcs/AppletAWTRobotUsageSample.java: * tests/reproducers/simple/AppletAWTRobotUsageSample/testcases/AppletAWTRobotUsageSampleTest.java: 2nd reproducer: javaws tests - the same as above, only buttons found by color * tests/reproducers/simple/JavawsAWTRobotUsageSample/resources/javaws-awtrobot-usage-sample.jnlp: * tests/reproducers/simple/JavawsAWTRobotUsageSample/srcs/JavawsAWTRobotUsageSample.java: * tests/reproducers/simple/JavawsAWTRobotUsageSample/testcases/JavawsAWTRobotUsageSampleTest.java: 3rd reproducer: javaws tests - applet with two labeled buttons, the applet is found using an icon, mouse finds the button ButtonA by serching for icon buttonA.png * tests/reproducers/simple/JavawsAWTRobotFindsButton/resources/buttonA.png: * tests/reproducers/simple/JavawsAWTRobotFindsButton/resources/javaws-awtrobot-finds-button.jnlp: * tests/reproducers/simple/JavawsAWTRobotFindsButton/srcs/JavawsAWTRobotFindsButton.java: * tests/reproducers/simple/JavawsAWTRobotFindsButton/testcases/JavawsAWTRobotFindsButtonTest.java: -------------- next part -------------- A non-text attachment was scrubbed... Name: adding_awtframework_and3reproducers.patch Type: text/x-patch Size: 99669 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/3b02f53b/adding_awtframework_and3reproducers.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: greenbutton.png Type: image/png Size: 280 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/3b02f53b/greenbutton.png -------------- next part -------------- A non-text attachment was scrubbed... Name: buttonA.png Type: image/png Size: 452 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/3b02f53b/buttonA.png -------------- next part -------------- A non-text attachment was scrubbed... Name: marker.png Type: image/png Size: 180 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/3b02f53b/marker.png From adomurad at redhat.com Wed Apr 24 12:30:57 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 24 Apr 2013 15:30:57 -0400 Subject: [rfc][icedtea-web] Fix regression in SpacesCanBeEveryWhere reproducer Message-ID: <517832F1.908@redhat.com> 2013-XX-XX Adam Domurad * netx/net/sourceforge/jnlp/cache/ResourceTracker.java (getCacheFile): Use decodeUrlAsFile instead of toURI().getPath(). * netx/net/sourceforge/jnlp/util/UrlUtils.java (decodeUrlAsFile): New, tolerates ill-formed URLs. * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: (testDecodeUrlAsFile): Test for (decodeUrlAsFile) Sorry this wasn't caught sooner, and thanks to Jiri for pointing it out. The problem was that archives can't be guaranteed to be encoded URLs. We instead use an encoding-tolerant function. Note that the headache is caused because Java allows essentially invalid URLs to be created (and, on our side, that we allow them to be created). Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-paths-with-spaces-regression.patch Type: text/x-patch Size: 3303 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/2c5c04d1/fix-paths-with-spaces-regression.patch From gnu.andrew at redhat.com Wed Apr 24 14:35:01 2013 From: gnu.andrew at redhat.com (Andrew John Hughes) Date: Wed, 24 Apr 2013 22:35:01 +0100 Subject: [SECURITY] IcedTea 1.11.11 & 1.12.5 for OpenJDK 6 Released! Message-ID: <20130424213501.GA25923@carrie.middle-earth.co.uk> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. The 1.12.5 release updates our OpenJDK 6 support on the 1.12.x branch to include the latest security updates. We recommend that users of this branch upgrade to the latest release as soon as possible. The security fixes are as follows: * S6657673, CVE-2013-1518: Issues with JAXP * S7200507: Refactor Introspector internals * S8000724, CVE-2013-2417: Improve networking serialization * S8001031, CVE-2013-2419: Better font processing * S8001040, CVE-2013-1537: Rework RMI model * S8001322: Refactor deserialization * S8001329, CVE-2013-1557: Augment RMI logging * S8003335: Better handling of Finalizer thread * S8003445: Adjust JAX-WS to focus on API * S8003543, CVE-2013-2415: Improve processing of MTOM attachments * S8004261: Improve input validation * S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames * S8004986, CVE-2013-2383: Better handling of glyph table * S8004987, CVE-2013-2384: Improve font layout * S8004994, CVE-2013-1569: Improve checking of glyph table * S8005432: Update access to JAX-WS * S8005943: (process) Improved Runtime.exec * S8006309: More reliable control panel operation * S8006435, CVE-2013-2424: Improvements in JMX * S8006790: Improve checking for windows * S8006795: Improve font warning messages * S8007406: Improve accessibility of AccessBridge * S8007617, CVE-2013-2420: Better validation of images * S8007667, CVE-2013-2430: Better image reading * S8007918, CVE-2013-2429: Better image writing * S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap * S8009305, CVE-2013-0401: Improve AWT data transfer * S8009699, CVE-2013-2421: Methodhandle lookup * S8009814, CVE-2013-1488: Better driver management * S8009857, CVE-2013-2422: Problem with plugin * RH952389: Temporary files created with insecure permissions The 1.11.11 release is an amendment for the previous 1.11.10 security release, adding a number of build fixes and resolutions for issues found when running the OpenJDK 6 TCK. Most notable is: * RH952389: Temporary files created with insecure permissions which amends the fix for S8003543 to work correctly with OpenJDK 6. In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more estoric architectures. If you find an issue with one of these releases, please report it to our bug database (http://icedtea.classpath.org/bugzilla) under the appropriate component. Development discussion takes place on the distro-pkg-dev at openjdk.java.net mailing list and patches are always welcome. Full details of the releases can be found below. What?s New? =========== New in release 1.12.5 (2013-04-24): * New features - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. - PR1380: Add AArch64 support to Zero * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP - S7200507: Refactor Introspector internals - S8000724, CVE-2013-2417: Improve networking serialization - S8001031, CVE-2013-2419: Better font processing - S8001040, CVE-2013-1537: Rework RMI model - S8001322: Refactor deserialization - S8001329, CVE-2013-1557: Augment RMI logging - S8003335: Better handling of Finalizer thread - S8003445: Adjust JAX-WS to focus on API - S8003543, CVE-2013-2415: Improve processing of MTOM attachments - S8004261: Improve input validation - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames - S8004986, CVE-2013-2383: Better handling of glyph table - S8004987, CVE-2013-2384: Improve font layout - S8004994, CVE-2013-1569: Improve checking of glyph table - S8005432: Update access to JAX-WS - S8005943: (process) Improved Runtime.exec - S8006309: More reliable control panel operation - S8006435, CVE-2013-2424: Improvements in JMX - S8006790: Improve checking for windows - S8006795: Improve font warning messages - S8007406: Improve accessibility of AccessBridge - S8007617, CVE-2013-2420: Better validation of images - S8007667, CVE-2013-2430: Better image reading - S8007918, CVE-2013-2429: Better image writing - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap - S8009305, CVE-2013-0401: Improve AWT data transfer - S8009699, CVE-2013-2421: Methodhandle lookup - S8009814, CVE-2013-1488: Better driver management - S8009857, CVE-2013-2422: Problem with plugin - RH952389: Temporary files created with insecure permissions * Backports - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts - S7036559: ConcurrentHashMap footprint and contention improvements - S5102804: Memory leak in Introspector.getBeanInfo(Class) for custom BeanInfo: Class param (with WeakCache from S6397609) - S6501644: sync LayoutEngine *code* structure to match ICU - S6886358: layout code update - S6963811: Deadlock-prone locking changes in Introspector - S7017324: Kerning crash in JDK 7 since ICU layout update - S7064279: Introspector.getBeanInfo() should release some resources in timely manner - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) - S8009530: ICU Kern table support broken * Bug fixes - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7197906) - PR1362: Fedora 19 / rawhide FTBFS SIGILL - PR1338: Remove dependence on libXp - PR1339: Simplify the rhino class rewriter to avoid use of concurrency - PR1336: Bootstrap failure on Fedora 17/18 - PR1319: Correct #ifdef to #if - PR1402: Support glibc < 2.17 with AArch64 patch - Give xalan/xerces access to their own internal packages. New in release 1.11.11 (2013-04-24): * Security fixes - RH952389: Temporary files created with insecure permissions * Backports - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) - S6657673: Issues with JAXP (include fragment dependent on S7133220) - S8009530: ICU Kern table support broken * Bug fixes - PR1402: Support glibc < 2.17 with AArch64 patch - Give xalan/xerces access to their own internal packages. The tarballs can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea6-1.11.11.tar.gz * http://icedtea.classpath.org/download/source/icedtea6-1.12.5.tar.gz SHA256 checksums: 6db6124645686ab5e91d2952d8b601bc0789b8fd5f1af86e46a5242ec60dc8e6 icedtea6-1.11.11.tar.gz c61d6eb2f98d5c4059bb6eb6d808dd0954cf7d35c14290e5c77c3d7db75d2b35 icedtea6-1.12.5.tar.gz Each tarball is accompanied by a digital signature available at the above ?sig? link. This is produced using my public key. See details below. PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 The following people helped with these releases: * Elliott Baron (backport of 7133220, remainder of 6657673 & creation of RH952389 & access fixes) * Andrew Hughes (application of security fixes & backports, PR1402, PR1336, PR1339, PR1338, PR1319, OJ3, release management) * Omair Majid (build testing, patches for S8007667, S8007918, S8009305,S8009814, S8009857) * Chris Phillips (PR1362 patch for ARM issue) * Roman Kennke (S8004986 / S8004987 / S8004994 patch) * Andreas Schwab (PR1380 patch for AArch64 Zero support) * Jon VanAlten (S8009063 patch and S7036559 dependency backport) * Jiri Vanek (patch correction) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea-${version}.tar.gz $ cd icedtea-${version} where ${version} is the version being used (1.11.11 or 1.12.5). Full build requirements and instructions are in INSTALL: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea-${version}/configure [--enable-zero --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130424/5ccf24b2/attachment.bin From ptisnovs at icedtea.classpath.org Thu Apr 25 00:55:54 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 25 Apr 2013 07:55:54 +0000 Subject: /hg/gfx-test: New tests added into the test suite BitBltBasicTests. Message-ID: changeset d366cf824497 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=d366cf824497 author: Pavel Tisnovsky date: Thu Apr 25 09:59:09 2013 +0200 New tests added into the test suite BitBltBasicTests. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 108 +++++++++++++++++++++++ 2 files changed, 113 insertions(+), 0 deletions(-) diffs (137 lines): diff -r aa69e4e77a1d -r d366cf824497 ChangeLog --- a/ChangeLog Wed Apr 24 10:39:35 2013 +0200 +++ b/ChangeLog Thu Apr 25 09:59:09 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-25 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + New tests added into the test suite BitBltBasicTests. + 2013-04-24 Pavel Tisnovsky * src/org/gfxtest/framework/CommonRenderingStyles.java: diff -r aa69e4e77a1d -r d366cf824497 src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Wed Apr 24 10:39:35 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Thu Apr 25 09:59:09 2013 +0200 @@ -3610,6 +3610,51 @@ } /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageType3ByteBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_4BYTE_ABGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_4BYTE_ABGR_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageType4ByteABGR_PRE(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE); + } + + /** * Test basic BitBlt operation for vertical green gradient buffered image * with type TYPE_BYTE_BINARY. * @@ -3626,6 +3671,69 @@ } /** + * Test basic BitBlt operation for vertical green gradient buffered image + * with type TYPE_BYTE_INDEXED. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeByteIndexed(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_INDEXED); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_BYTE_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeByteGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_GRAY); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_RGB); + } + + + + /** * Test basic BitBlt operation for horizontal blue gradient buffered image * with type TYPE_BYTE_BINARY. * From ptisnovs at icedtea.classpath.org Thu Apr 25 01:08:05 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 25 Apr 2013 08:08:05 +0000 Subject: /hg/rhino-tests: Updated four tests in ScriptEngineFactoryClassT... Message-ID: changeset 61e408523e1b in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=61e408523e1b author: Pavel Tisnovsky date: Thu Apr 25 10:11:25 2013 +0200 Updated four tests in ScriptEngineFactoryClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/ScriptEngineFactoryClassTest.java | 56 ++++++++++++++++++- 2 files changed, 59 insertions(+), 4 deletions(-) diffs (107 lines): diff -r 61dbb34d31e6 -r 61e408523e1b ChangeLog --- a/ChangeLog Wed Apr 24 10:29:05 2013 +0200 +++ b/ChangeLog Thu Apr 25 10:11:25 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-25 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: + Updated four tests in ScriptEngineFactoryClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-24 Pavel Tisnovsky * src/org/RhinoTests/ScriptExceptionClassTest.java: diff -r 61dbb34d31e6 -r 61e408523e1b src/org/RhinoTests/ScriptEngineFactoryClassTest.java --- a/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Wed Apr 24 10:29:05 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Thu Apr 25 10:11:25 2013 +0200 @@ -288,10 +288,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.scriptEngineFactoryClass.getConstructors(); @@ -310,10 +321,21 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.scriptEngineFactoryClass.getDeclaredConstructors(); @@ -332,7 +354,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -362,7 +397,20 @@ Map constructorsThatShouldExist_jdk7 = new TreeMap(); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From jvanek at redhat.com Thu Apr 25 01:18:39 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Apr 2013 10:18:39 +0200 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <51780B4F.5010508@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> <517807E6.5070007@redhat.com> <5178098F.3030603@redhat.com> <51780A3C.4050200@redhat.com> <51780B4F.5010508@redhat.com> Message-ID: <5178E6DF.2010605@redhat.com> On 04/24/2013 06:41 PM, Adam Domurad wrote: > On 04/24/2013 12:37 PM, Jiri Vanek wrote: >> On 04/24/2013 06:34 PM, Adam Domurad wrote: >>>> + @Test >>>> + public void testNotNullJnlpFile(){ >>>> + SecurityDesc securityDesc = new SecurityDesc(new DummyJNLPFile(), >>>> SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); >>>> + Assert.assertNotNull("securityDesc should not be ",securityDesc); >>>> + >>>> + } >>> >>> Huh. Why is this still in ? Sorry, I can't support superstitious coding. >>> >>> At least drop the assert if you want a constructor sanity check. >> >> No. I would like to keep it inside even with assert. >> The code inside the constructor can change later. Eg some dummy jnl file will be tried to be >> created and used into if argument is null. >> >> I would like to have it recorded. > > Sorry, but this assert is really a no-op. How could the result of 'new' ever be null ? No ists not "no-op" It is testing that securityDesc was filled. Whta is somthing what will not happened when exception is thrown from constructor. We are little more in theoretical level and depends on point of view a bit. Maybe what you want to see is: @Test public void testNotNullJnlpFile(){ Exception ex = null; try{ SecurityDesc securityDesc = new SecurityDesc(new DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); }catch(Exception exx){ ex=exx; } Assert.assertNull("no exception expectd ",ex); } It is more verbose the same as what I'm testing. J. As test you can answer this questions: Lets have: public class XXX { private static TerrorClass t; public static final class TerrorClass { public TerrorClass() { t = this; throw new RuntimeException("Muhehe"); } } public static void main(String[] args) { TerrorClass tt = null; try { tt = new TerrorClass(); } catch (Exception ex) { } System.out.println(tt); System.out.println(t); } } What will be in "t" and what in "tt" atetr main execution? And .. If there "will be something"" will it be "working"? As solution you can see the result or run.. But solution is probably obvious for you (no ironic, you know already java better then me). > I'm OK with just running the constructor, but I really don't understand why you want this line. It's > like asserting assertNotNull(new Object()); It's plain superstition. > -Adam > >> >>> >>> Push without this please. Otherwise good. >>> >>> Happy hacking, >>> -Adam >> > -------------- next part -------------- A non-text attachment was scrubbed... Name: XXX.java Type: text/x-java Size: 950 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/81ead16d/XXX.java -------------- next part -------------- null XXX$TerrorClass at 259f5e3f 0 0 1 From jvanek at redhat.com Thu Apr 25 02:03:33 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Apr 2013 11:03:33 +0200 Subject: [rfc][icedtea-web] Fix regression in SpacesCanBeEveryWhere reproducer In-Reply-To: <517832F1.908@redhat.com> References: <517832F1.908@redhat.com> Message-ID: <5178F165.9060600@redhat.com> On 04/24/2013 09:30 PM, Adam Domurad wrote: > 2013-XX-XX Adam Domurad > > * netx/net/sourceforge/jnlp/cache/ResourceTracker.java > (getCacheFile): Use decodeUrlAsFile instead of toURI().getPath(). > * netx/net/sourceforge/jnlp/util/UrlUtils.java > (decodeUrlAsFile): New, tolerates ill-formed URLs. > * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: > (testDecodeUrlAsFile): Test for (decodeUrlAsFile) > > Sorry this wasn't caught sooner, and thanks to Jiri for pointing it out. > The problem was that archives can't be guaranteed to be encoded URLs. > We instead use an encoding-tolerant function. > > Note that the headache is caused because Java allows essentially invalid URLs to be created (and, on > our side, that we allow them to be created). > > Happy hacking, > -Adam > > fix-paths-with-spaces-regression.patch > > > diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java > @@ -390,7 +390,7 @@ public class ResourceTracker { > return resource.localFile; > > if (location.getProtocol().equalsIgnoreCase("file")) { > - File file = new File(location.toURI().getPath()); > + File file = UrlUtils.decodeUrlAsFile(location); > if (file.exists()) > return file; > } > @@ -401,9 +401,6 @@ public class ResourceTracker { > ex.printStackTrace(); > > return null; // need an error exception to throw > - } catch (URISyntaxException e) { > - e.printStackTrace(); > - return null; > } Just ensuring about the removal of the exception: When decodeUrlQuietly "fails" it prints out exception (not throw) and return original url. So no NPE is thrown during the getCacheFile method propcessing. However returning of null was expected when url was wrong. However now "strange" url is returned.... Checking the usage of getCacheFile it is probably more usfeul.. and we will recieve "some strange exception" instead of NPE... J. After this explained, looks good to go. > } > > diff --git a/netx/net/sourceforge/jnlp/util/UrlUtils.java b/netx/net/sourceforge/jnlp/util/UrlUtils.java > --- a/netx/net/sourceforge/jnlp/util/UrlUtils.java > +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java > @@ -37,6 +37,7 @@ exception statement from your version. > > package net.sourceforge.jnlp.util; > > +import java.io.File; > import java.io.IOException; > import java.io.UnsupportedEncodingException; > import java.net.MalformedURLException; > @@ -134,4 +135,8 @@ public class UrlUtils { > return normalizeUrlQuietly(url, false); > } > > + /* Decode a URL as a file, being tolerant of URLs with mixed encoded & decoded portions. */ > + public static File decodeUrlAsFile(URL url) { > + return new File(decodeUrlQuietly(url).getFile()); > + } > } > diff --git a/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java b/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java > --- a/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java > +++ b/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java > @@ -1,9 +1,11 @@ > package net.sourceforge.jnlp.util; > > -import static org.junit.Assert.*; > +import static org.junit.Assert.assertEquals; > +import static org.junit.Assert.assertFalse; > > +import java.io.File; > import java.net.URL; > - > + > import org.junit.Test; > > public class UrlUtilsTest { > @@ -57,10 +59,24 @@ public class UrlUtilsTest { > assertEquals("file://example/%20test", > UrlUtils.normalizeUrl(new URL("file://example/ test"), true).toString()); > } > + > @Test > public void testNormalizeUrlQuietly() throws Exception { > // This is a wrapper over UrlUtils.normalizeUrl(), simple test suffices > assertEquals("http://example.com/%20test%20test", > UrlUtils.normalizeUrl(new URL("http://example.com/ test%20test")).toString()); > } > + > + @Test > + public void testDecodeUrlAsFile() throws Exception { > + String[] testPaths = {"/simple", "/ with spaces", "/with /multiple=/ odd characters?"}; > + > + for (String testPath : testPaths) { > + File testFile = new File(testPath); > + URL notEncodedUrl = testFile.toURL(); > + URL encodedUrl = testFile.toURI().toURL(); > + assertEquals(testFile, UrlUtils.decodeUrlAsFile(notEncodedUrl)); > + assertEquals(testFile, UrlUtils.decodeUrlAsFile(encodedUrl)); > + } > + } > } > \ No newline at end of file > From jvanek at redhat.com Thu Apr 25 03:16:02 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Apr 2013 12:16:02 +0200 Subject: [rfc][icedtea-web] AWTFramework and sample reproducers using it In-Reply-To: <1366824466.1828.16.camel@jana-2-174.nrt.redhat.com> References: <1366824466.1828.16.camel@jana-2-174.nrt.redhat.com> Message-ID: <51790262.5080104@redhat.com> On 04/24/2013 07:27 PM, Jana Fabrikova wrote: Hi! Looks good to me. Just cosmetic changes: ImageSeeker, componentfinder, keybvoardAction,mouseAction - missing license componentNotFound, awtformatexception - please format code all jnlp and html files missing headers (yah they exists too :) and vendor RedHat should be IcedTea findAppletByIcon - this name is to strict for it generic action I would suggest findIcon as base method (which will find left upper corner). Then maybe findApplication or findWindow for rest. And actually findIcon will sustain my desired findPattern methods from "btw" below. When thinking about it - marker.png should be also available from tests/test-extensions/net/sourceforge/jnlp/awt(/imagesearch) (via classLoader.getResource...(), and cached as final static image, so the (futre) findIcon(BufferedImage) will be overloaded by findDefaultIcon(){findIcon(cachedIcon)} What do you think? The wiki manual will be necessary for this, but can go inside as separate change set. One possible destination is on classpath wiki, and second may be on as package-info.java file in (test-extensions) net.sourceforge.jnlp.awt In both should be just current basic info and principles. Rest shouldbe readable from javadoc (all possible as another change set, but javadoc looks already good to me) Javadoc is missing in new exception classes, but I do not insists... Btw - is there some method "findPatternOnScreens(BufferedImage pattern),findPatternOnImage(BufferedImage pattern, BufferedImage source) " ? I believe they are somewhere as bases,[1] but I have not found them. Otherwise I looked over your shoulder during development and api looks clear and well described One implementation hint: Your testcases are laoding patterns from - buttonIcon = ImageIO.read(new File(test_server_dir_path + "/greenbutton.png")); - it is very wrong. those images (not shared with reprodcuers) MUST be in testcas directory, and read as clasloader.getResoource...(). Maybe that change in compilation of testcases (Makefile.am) will be needed (to get those images on classapth) Of course the marker.png must be shared both in testextensions calsspath and in reproducer :( I would suggest split the patch - to push the test framework asap (with comsetic changes applied) And push reproducers little bit later after one more round. J. One implementation ensurement - I was aware thet epiphany ( or other different suspicious browser) was showing new tab as hidden. Do you noted that ? If so then I'm for disabling it in all AWT tests in same way as you have disabled opera for some JS tests. Thanx for all the work on this! As some further patch some tests to this extensions will be worthy. [1] found! Sorry findExactImage/blurred iamge! And as screenshot is oneline of code I do nt think it (the findPatternOnScreens(BufferedImage pattern)) is worthy of labour. Sorry. > Hi, > > the big AWTFramework patch is in the attachment, together with three > pictures used by the reproducers. > > Thanks for any comments, > Jana > > ChangeLog: > > 2013-04-24 Jana Fabrikova > > > * /tests/test-extensions/net/sourceforge/jnlp/closinglisteners/RulesFolowingClosingListener.java: > added a getter method getRules > > * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: > the most important class of AWTFramework, combines closing listener and > possibility to use mouse and keyboard for input to tests > * > tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java: > exception that is raised in the framework whenever programmer did not > provide enough information > * > tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/KeyboardActions.java: > class with utility keyboard methods > * > tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/MouseActions.java: > class with utility mouse methods > > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: > class for finding components in a screenshot > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentNotFoundException.java: > exception that can be raised if an important component could not be > found > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: > class for general image searching > > * tests/reproducers/simple/AWTCommonResourcesOnly/resources/marker.png: > reproducer with resources only, contains the default icon marking > applets > > 1st reproducer: browser tests for mouse clicking on a button in applet, > applet is found using an icon, button is found using colors and in > one case also icon - greenbutton.png > * > tests/reproducers/simple/AppletAWTRobotUsageSample/resources/AppletAWTRobotUsageSample.html: > * > tests/reproducers/simple/AppletAWTRobotUsageSample/resources/applet-awtrobot-usage-sample.jnlp: > * > tests/reproducers/simple/AppletAWTRobotUsageSample/resources/greenbutton.png > * > tests/reproducers/simple/AppletAWTRobotUsageSample/srcs/AppletAWTRobotUsageSample.java: > * > tests/reproducers/simple/AppletAWTRobotUsageSample/testcases/AppletAWTRobotUsageSampleTest.java: > > 2nd reproducer: javaws tests - the same as above, only buttons found > by color > * > tests/reproducers/simple/JavawsAWTRobotUsageSample/resources/javaws-awtrobot-usage-sample.jnlp: > * > tests/reproducers/simple/JavawsAWTRobotUsageSample/srcs/JavawsAWTRobotUsageSample.java: > * > tests/reproducers/simple/JavawsAWTRobotUsageSample/testcases/JavawsAWTRobotUsageSampleTest.java: > > 3rd reproducer: javaws tests - applet with two labeled buttons, > the applet is found using an icon, > mouse finds the button ButtonA by serching for icon buttonA.png > * > tests/reproducers/simple/JavawsAWTRobotFindsButton/resources/buttonA.png: > * > tests/reproducers/simple/JavawsAWTRobotFindsButton/resources/javaws-awtrobot-finds-button.jnlp: > * > tests/reproducers/simple/JavawsAWTRobotFindsButton/srcs/JavawsAWTRobotFindsButton.java: > * > tests/reproducers/simple/JavawsAWTRobotFindsButton/testcases/JavawsAWTRobotFindsButtonTest.java: > From ptisnovs at redhat.com Thu Apr 25 04:54:27 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 25 Apr 2013 07:54:27 -0400 (EDT) Subject: [rfc][icedtea-web] get rid of commit id in splashscreen In-Reply-To: <51750543.6000309@redhat.com> References: <51712C0C.2060100@redhat.com> <51750543.6000309@redhat.com> Message-ID: <1134542018.2264518.1366890867103.JavaMail.root@redhat.com> Hi Jiri, this change looks fine, ok to push into HEAD. It would be nice to add another test case for a string w/o anything after '+': Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre+")); and Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre+foo+")); Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre+foo+bar")); Cheers, Pavel ----- Jiri Vanek wrote: > ping > On 04/19/2013 01:35 PM, Jiri Vanek wrote: > > hI! > > > > Splash screen is using version+commit id as "version". It is not nice. This is striping the commit > > id from most visible case. But kept for bug reporting and soon... > > Maybe improvement would be to strip it only when it is released version - > + static String stripCommitFromVersion(String version) { > + if (version.contains("pre+")) { > + return version; > + } > tehn rest as is in original patch > > > > > J. > > > > stripCommitFromVersion.patch > > > > > > diff -r fbb6b3605538 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java > > --- a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Thu Apr 04 11:21:04 2013 +0200 > > +++ b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Fri Apr 19 13:24:17 2013 +0200 > > @@ -371,6 +371,14 @@ > > return tt; > > } > > > > + static String stripCommitFromVersion(String version) { > > + int i = version.indexOf("+"); > > + if (i < 0) { > > + return version; > > + } > > + return version.substring(0, version.indexOf("+")); > > + } > > + > > private final class MovingTextRunner extends Observable implements Runnable { > > > > private static final int MAX_ANIMATION_VALUE = 10000; > > @@ -499,11 +507,12 @@ > > g2d.setColor(plainTextColor); > > FontMetrics fm = g2d.getFontMetrics(); > > if (version != null) { > > - int y = master.getSplashWidth() - fm.stringWidth(version + " "); > > + String niceVersion=stripCommitFromVersion(version); > > + int y = master.getSplashWidth() - fm.stringWidth(niceVersion + " "); > > if (y < 0) { > > y = 0; > > } > > - g2d.drawString(version, y, fm.getHeight()); > > + g2d.drawString(niceVersion, y, fm.getHeight()); > > } > > return fm; > > } > > diff -r fbb6b3605538 tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java > > --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Thu Apr 04 11:21:04 2013 +0200 > > +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Fri Apr 19 13:24:17 2013 +0200 > > @@ -105,4 +105,14 @@ > > > > > > } > > + > > + @Test > > + public void stripCommitFromVersion() { > > + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4")); > > + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2")); > > + Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre")); > > + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+657tgkhyu4iy5")); > > + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2+887tgjh07tftvhjj")); > > + Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre+0977tyugg")); > > + } > > } > > > From ptisnovs at redhat.com Thu Apr 25 04:58:10 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 25 Apr 2013 07:58:10 -0400 (EDT) Subject: Fwd: Re: [icedtea-web] Bug: Unable to remove permissions on %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows In-Reply-To: <5177B86D.5010005@redhat.com> References: <5171697D.1050700@redhat.com> <5177B86D.5010005@redhat.com> Message-ID: <1847286461.2265183.1366891090845.JavaMail.root@redhat.com> Hi Jiri, it looks like a reasonable fallback for Windows boxes :-) Ok for HEAD. Cheers, Pavel > > -------- Original Message -------- > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows > Date: Fri, 19 Apr 2013 17:57:49 +0200 > From: Jiri Vanek > To: Jacob Wisor , IcedTea Distro List > > On 04/10/2013 02:48 PM, Jiri Vanek wrote: > > Thank you for deep investigations. > >> From this log is clear that the fatal exception is from newest commmits ad thank you very much for > > reporting. > > > > I Will try to fix the handling of LockedFile and its exception (acually added by me and Adam few > > weeks ago :( ) asap (but I'm unfortunately quite bussy right now :-/) > > > > I'm quite agreeing with you on restricted file usefulness. But its removal/refactoreing will have to > > wait for 1.5. But for 1.4 this windows issue must be fixed(damn). > > > > Sorry for delaying you form better stuff, but give me few days! > > > > Best regards > > J. > > > > ps /me keeping you in mind! > > > > > > > > -------- Original Message -------- > > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > > %USERPROFILE%\.icedtea\security\trusted.cacerts.temp on Windows > > Date: Wed, 10 Apr 2013 21:00:41 +0900 > > From: Jacob Wisor > > To: JiriVanek, ""@excite.co.jp > > > > "Jiri Vanek" wrote: > >> On 04/09/2013 05:33 PM, Jacob Wisor wrote: > >>> "Jiri Vanek" wrote: > >>>> On 04/09/2013 02:00 PM, Jacob Wisor wrote: > >>>>> "Jiri Vanek" wrote: > >>>>>> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > >>>>>>> Hello there! > >>>>>>> > >>>>>>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > >>>>>>> I do not know whether this is reproducable on Linux systems. > >>>>>>> > >>>>>>> @Jiri: > >>>>>>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > >>>>>>> > >>>>>>> Regards, > >>>>>>> Jacob > >>>>>>> > >>>>>> > >>>>>> Hi again! > >>>>>> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > >>>>>> directory and set my home to read only, But I doubt that it is connected to recent patches. > >>>>>> > >>>>>> By studying the exception: > >>>>>> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > >>>>>> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > >>>>>> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > >>>>>> (translated as "The process can not access the file because another process has locked a portion") > >>>>>> * This happened immediately after start of itw-settings, and is moreover correct. No file to > >>>>>> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > >>>>>> "added by new patch"). > >>>>>> Then two more exceptions from old code arise: > >>>>>> java.lang.NullPointerException at > >>>>>> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > >>>>>> and > >>>>>> java.io.IOException: Removing execute permissions on file > >>>>>> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > >>>>>> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > >>>>>> * all three are unrelated in meaning each to each, but have same root - tehy can not create their > >>>>>> config files. > >>>>>> > >>>>>> > >>>>>> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > >>>>>> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > >>>>>> workarround to create %USERPROFILE%\.icedtea manually? > >>>>>> > >>>>>> ANyway I will check once more when I got more free time. > >>>>>> > >>>>>> Thanx for checking, > >>>>>> J. > >>>>> > >>>>> Thank you for your timely response. > >>>>> The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > >>>>> > >>>>> %USERPROFILE%\.icedtea > >>>>> %USERPROFILE%\.icedtea\security > >>>>> %USERPROFILE%\.icedtea\.appletTrustSettings > >>>>> %USERPROFILE%\.icedtea\security\trusted.cacerts.temp > >>>>> > >>>>> On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > >>>>> > >>>>> Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > >>>>> > >>>> > >>>> oook... I have attached patch which handles windows restricted files less strictly == tries to set > >>>> the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will > >>>> work. > >>>> > >>>> I think you can elaborate with it now. But this issue will need more investigations on my side > >>>> //me have tu make some windows machine around... > >>>> > >>>> Hope this helps, > >>>> J. > >>>> > >>>> > >>>> If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no > >>>> machine where to verify (work in progress) > >>>> If the issue will be only X flag, then I will sent official patch. > >>> > >>> Thank you for this prompt attempt. > >>> Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: > >>> > >>> %USERPROFILE%\.icedtea > >>> %USERPROFILE%\.icedtea\security > >>> %USERPROFILE%\.icedtea\.appletTrustSettings > >>> %USERPROFILE%\.icedtea\security\trusted.cacerts > >>> > >>> It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) > >>> > >>> Thanks again for bothering :) > >>> Jacob > >>> > >> > >> > >> The attachment is missing :(( > >> /me curious > > > > Hello Jiri, > > > > Sorry, the web mailer is lausy. :( So, here we go again. > > > > I have played a little bit with J2SE's access permissions facility on Windows, that is > > java.io.File.setExecutable(boolean,boolean), java.io.File.setWriteable(boolean,boolean), and > > java.io.File.setReadable(boolean,boolean). They obviously have no effect on Windows, so one cannot > > rely on them. Besides, as far as I can tell the whole purpose of this fiddling with access > > permissions on files is to get a locked file. IMHO the > > net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(File,boolean,boolean) is redundant and > > totally misses the point. Actually, there is a file locking facility provided by J2SE via > > java.nio.channels.FileLock. Although the semantics of java.nio.channels.FileLock can characterized > > as best effort on varying platforms at best it probably should be used nevertheless. Infact, there > > is even a utility class net.sourceforge.jnlp.util.lockingfile.LockedFile in netx. So, I am a little > > bit confused. Why not use that? Correct me if I am wrong, but even if java.nio.c! > > hannels.FileLock does not provide the desired semantics - let's say perhaps on Linux - fiddling > > with file access permissions should not be the way to go. Instead, then the prefered way would be to > > use buffers from java.nio (to get some sort of memory-mapped file) or java.io.BufferdIn/OutputStream > > with java.io.PipedIn/OutputStream. This process of creating netx' data files should probably be > > revised and refactored. > > To cut a long story short, it still does not run on Windows. :D And, I probably will not have the > > time to refactor it. So it is nice of you to help me out. > > > > Regards, > > Jacob > > > > > Ok. I have reproduced this on windows, and the attached "fix" is working. > I myself consider locking file as little bit overpowered stuff, designed fot case that one applet > will write record, whether other applet will in meantime read record, so I do not think there will > be any harm by disabling on windows (as applets are not known to run on win(?)) > > J. > > ps - how looks PL? O:) From jvanek at icedtea.classpath.org Thu Apr 25 05:42:59 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 25 Apr 2013 12:42:59 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset c5db48847b93 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c5db48847b93 author: Jiri Vanek date: Thu Apr 25 14:20:19 2013 +0200 Splashscreen now strip commit id from released versions changeset ca33c41c9f69 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=ca33c41c9f69 author: Jiri Vanek date: Thu Apr 25 14:25:45 2013 +0200 Locking disabled on windows machines diffstat: ChangeLog | 16 ++++++++ netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java | 16 +++++++- netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java | 7 +++ tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java | 18 ++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) diffs (116 lines): diff -r 5c5709590a9d -r ca33c41c9f69 ChangeLog --- a/ChangeLog Wed Apr 24 11:06:49 2013 -0400 +++ b/ChangeLog Thu Apr 25 14:25:45 2013 +0200 @@ -1,3 +1,19 @@ +2013-04-25 Jiri Vanek + + Locking disabled on windows machines + * netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java: + (lock) and (unlock) are no-op on windows. + +2013-04-25 Jiri Vanek + + Splashscreen now strip commit id from released versions + * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java: + (stripCommitFromVersion) new method responsible for cutting + (drawBase) now using stripCommitFromVersion before printing drawing version + to splashscreen + * tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java: + (stripCommitFromVersion) new test for + 2013-04-24 Adam Domurad * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: diff -r 5c5709590a9d -r ca33c41c9f69 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java --- a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Wed Apr 24 11:06:49 2013 -0400 +++ b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Thu Apr 25 14:25:45 2013 +0200 @@ -371,6 +371,17 @@ return tt; } + static String stripCommitFromVersion(String version) { + if (version.contains("pre+")) { + return version; + } + int i = version.indexOf("+"); + if (i < 0) { + return version; + } + return version.substring(0, version.indexOf("+")); + } + private final class MovingTextRunner extends Observable implements Runnable { private static final int MAX_ANIMATION_VALUE = 10000; @@ -499,11 +510,12 @@ g2d.setColor(plainTextColor); FontMetrics fm = g2d.getFontMetrics(); if (version != null) { - int y = master.getSplashWidth() - fm.stringWidth(version + " "); + String niceVersion=stripCommitFromVersion(version); + int y = master.getSplashWidth() - fm.stringWidth(niceVersion + " "); if (y < 0) { y = 0; } - g2d.drawString(version, y, fm.getHeight()); + g2d.drawString(niceVersion, y, fm.getHeight()); } return fm; } diff -r 5c5709590a9d -r ca33c41c9f69 netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java --- a/netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java Wed Apr 24 11:06:49 2013 -0400 +++ b/netx/net/sourceforge/jnlp/util/lockingfile/LockedFile.java Thu Apr 25 14:25:45 2013 +0200 @@ -44,6 +44,7 @@ import java.util.Map; import java.util.WeakHashMap; import java.util.concurrent.locks.ReentrantLock; +import net.sourceforge.jnlp.runtime.JNLPRuntime; /* * Process & thread locked access to a file. Creates file if it does not already exist. @@ -112,6 +113,9 @@ * Lock access to the file. Lock is reentrant. */ public void lock() throws IOException { + if (JNLPRuntime.isWindows()) { + return; + } // Create if does not already exist, cannot lock non-existing file if (!isReadOnly()) { this.file.createNewFile(); @@ -136,6 +140,9 @@ * Unlock access to the file. Lock is reentrant. */ public void unlock() throws IOException { + if (JNLPRuntime.isWindows()) { + return; + } boolean releaseProcessLock = (this.threadLock.getHoldCount() == 1); try { if (releaseProcessLock) { diff -r 5c5709590a9d -r ca33c41c9f69 tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Wed Apr 24 11:06:49 2013 -0400 +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainterTest.java Thu Apr 25 14:25:45 2013 +0200 @@ -105,4 +105,22 @@ } + + @Test + public void stripCommitFromVersion() { + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4")); + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2")); + Assert.assertEquals("1.4pre", BasePainter.stripCommitFromVersion("1.4pre")); + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+657tgkhyu4iy5")); + Assert.assertEquals("1.4.2", BasePainter.stripCommitFromVersion("1.4.2+887tgjh07tftvhjj")); + Assert.assertEquals("1.4pre+0977tyugg", BasePainter.stripCommitFromVersion("1.4pre+0977tyugg")); + + Assert.assertEquals("1.4pre+", BasePainter.stripCommitFromVersion("1.4pre+")); + Assert.assertEquals("1.4pre+foo+", BasePainter.stripCommitFromVersion("1.4pre+foo+")); + Assert.assertEquals("1.4pre+foo+bar", BasePainter.stripCommitFromVersion("1.4pre+foo+bar")); + + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+")); + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+foo+")); + Assert.assertEquals("1.4", BasePainter.stripCommitFromVersion("1.4+foo+bar")); + } } From adomurad at redhat.com Thu Apr 25 06:07:17 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 25 Apr 2013 09:07:17 -0400 Subject: [rfc][icedtea-web] Fix regression in SpacesCanBeEveryWhere reproducer In-Reply-To: <5178F165.9060600@redhat.com> References: <517832F1.908@redhat.com> <5178F165.9060600@redhat.com> Message-ID: <51792A85.20208@redhat.com> On 04/25/2013 05:03 AM, Jiri Vanek wrote: > On 04/24/2013 09:30 PM, Adam Domurad wrote: >> 2013-XX-XX Adam Domurad >> >> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> (getCacheFile): Use decodeUrlAsFile instead of toURI().getPath(). >> * netx/net/sourceforge/jnlp/util/UrlUtils.java >> (decodeUrlAsFile): New, tolerates ill-formed URLs. >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: >> (testDecodeUrlAsFile): Test for (decodeUrlAsFile) >> >> Sorry this wasn't caught sooner, and thanks to Jiri for pointing it out. >> The problem was that archives can't be guaranteed to be encoded URLs. >> We instead use an encoding-tolerant function. >> >> Note that the headache is caused because Java allows essentially >> invalid URLs to be created (and, on >> our side, that we allow them to be created). >> >> Happy hacking, >> -Adam >> >> fix-paths-with-spaces-regression.patch >> >> >> diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >> @@ -390,7 +390,7 @@ public class ResourceTracker { >> return resource.localFile; >> >> if (location.getProtocol().equalsIgnoreCase("file")) { >> - File file = new File(location.toURI().getPath()); >> + File file = UrlUtils.decodeUrlAsFile(location); >> if (file.exists()) >> return file; >> } >> @@ -401,9 +401,6 @@ public class ResourceTracker { >> ex.printStackTrace(); >> >> return null; // need an error exception to throw >> - } catch (URISyntaxException e) { >> - e.printStackTrace(); >> - return null; >> } > > > Just ensuring about the removal of the exception: Which was added in a patch you reviewed a few days ago :-D > > When decodeUrlQuietly "fails" it prints out exception (not throw) and > return original url. > So no NPE is thrown during the getCacheFile method propcessing. > However returning of null was expected when url was wrong. However > now "strange" url is returned.... This exception catch didn't exist before the last batch of changes. It's just noise introduced because of checked exceptions (Oh how I *hate* them :-). I don't know what you mean by 'strange' URLs. In the case decodeUrlQuietly fails the code will be exactly like it was before (before the last batch of commits anyway), except print more exceptions. This is because it is a no-op when it fails, which renders it the same as the code that was there before the last batch of changes. Thanks. > > Checking the usage of getCacheFile it is probably more usfeul.. and we > will recieve "some strange exception" instead of NPE... > > J. > > After this explained, looks good to go. > >> } >> [..snipped..] Thanks again for catching it. Very sorry for the breakage. -Adam From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 06:07:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:07:59 +0000 Subject: [Bug 1409] IcedTea 2.3.9 fails to build Zero due to -Werror In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1409 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Component|IcedTea |Zero Hardware|x86_64 |all Target Milestone|--- |2.3.9 OS|Linux |All --- Comment #2 from Andrew John Hughes --- The -Werror fix for HotSpot is in the 2.3.x branch of HotSpot, but not the 2.1.x one used by Zero. Needs backporting. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/8bfcb04e/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 06:08:24 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:08:24 +0000 Subject: [Bug 1410] Icedtea 2.3.9 fails to build using icedtea 1.12.4 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1410 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Target Milestone|--- |2.3.9 --- Comment #1 from Andrew John Hughes --- Looks easier than I first thought. We just need to check each directory exists before adding it to the zip. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/9251cd9c/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 06:10:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:10:55 +0000 Subject: [Bug 1410] Icedtea 2.3.9 fails to build using icedtea 1.12.4 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1410 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Hardware|x86_64 |all Version|unspecified |2.3.9 OS|Linux |All -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/7dce9522/attachment.html From andrew at icedtea.classpath.org Thu Apr 25 06:14:17 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:14:17 +0000 Subject: /hg/release/icedtea6-1.12: 3 new changesets Message-ID: changeset d66e262a3808 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=d66e262a3808 author: Andrew John Hughes date: Wed Apr 24 13:42:51 2013 +0100 Prepare for 1.12.5 release. 2013-04-24 Andrew John Hughes * configure.ac: Set version to 1.12.5. * NEWS: Set release date for 1.12.5. changeset 3fcb48208be1 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=3fcb48208be1 author: Andrew John Hughes date: Thu Apr 25 14:13:34 2013 +0100 Added tag icedtea6-1.12.5 for changeset d66e262a3808 changeset 36d69d052be1 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=36d69d052be1 author: Andrew John Hughes date: Thu Apr 25 14:14:05 2013 +0100 Start 1.12.6 release cycle. 2013-04-25 Andrew John Hughes * configure.ac: Bump to 1.12.6pre. * NEWS: Add section for 1.12.6. diffstat: .hgtags | 1 + ChangeLog | 12 +++++++++++- NEWS | 5 ++++- configure.ac | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diffs (61 lines): diff -r 681bcc5e6a18 -r 36d69d052be1 .hgtags --- a/.hgtags Wed Apr 24 11:57:49 2013 +0100 +++ b/.hgtags Thu Apr 25 14:14:05 2013 +0100 @@ -27,3 +27,4 @@ ba91bee6c0d6d4634a4d6de69095af01689f7419 icedtea6-1.12.2 37209dd4b07599b5f83b33c63daae8d37c708e39 icedtea6-1.12.3 5e17710282ddf2938993ae2077028cff3786c048 icedtea6-1.12.4 +d66e262a38085bde02921a6c8001b5f7c144600c icedtea6-1.12.5 diff -r 681bcc5e6a18 -r 36d69d052be1 ChangeLog --- a/ChangeLog Wed Apr 24 11:57:49 2013 +0100 +++ b/ChangeLog Thu Apr 25 14:14:05 2013 +0100 @@ -1,3 +1,13 @@ +2013-04-25 Andrew John Hughes + + * configure.ac: Bump to 1.12.6pre. + * NEWS: Add section for 1.12.6. + +2013-04-24 Andrew John Hughes + + * configure.ac: Set version to 1.12.5. + * NEWS: Set release date for 1.12.5. + 2013-04-24 Andrew John Hughes * Makefile.am: @@ -310,7 +320,7 @@ 2013-03-04 Omair Majid - * confiugre.ac: Prepare for 1.12.4. + * configure.ac: Prepare for 1.12.4. * NEWS: Add release date fo 1.12.4. 2013-03-04 Omair Majid diff -r 681bcc5e6a18 -r 36d69d052be1 NEWS --- a/NEWS Wed Apr 24 11:57:49 2013 +0100 +++ b/NEWS Thu Apr 25 14:14:05 2013 +0100 @@ -7,10 +7,13 @@ GX - http://bugs.gentoo.org/show_bug.cgi?id=X CAX - http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=X LPX - https://bugs.launchpad.net/bugs/X +OJX - http://java.net/jira/browse/OPENJDK6-X CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.12.5 (2013-04-XX): +New in release 1.12.6 (2013-06-XX): + +New in release 1.12.5 (2013-04-24): * New features - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. diff -r 681bcc5e6a18 -r 36d69d052be1 configure.ac --- a/configure.ac Wed Apr 24 11:57:49 2013 +0100 +++ b/configure.ac Thu Apr 25 14:14:05 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12.5pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.12.6pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Thu Apr 25 06:16:13 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:16:13 +0000 Subject: /hg/release/icedtea6-1.11: 4 new changesets Message-ID: changeset b491c3009860 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=b491c3009860 author: Andrew John Hughes date: Wed Apr 24 18:05:46 2013 +0100 Replace Roman's fix with backported S8009530: ICU Kern table support broken 2013-04-24 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch, remove old. * NEWS: Mention 8009530 backport. * patches/openjdk/8009530-icu_kern_table_support_broken.patch: Backported from 7u. * patches/fix-font-layout-tck.patch: Removed. changeset d3fed928b8b9 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=d3fed928b8b9 author: Andrew John Hughes date: Wed Apr 24 18:07:45 2013 +0100 Update release date. 2013-04-24 Andrew John Hughes * NEWS: Update release date. changeset abac38086e9f in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=abac38086e9f author: Andrew John Hughes date: Thu Apr 25 14:14:44 2013 +0100 Added tag icedtea6-1.11.11 for changeset d3fed928b8b9 changeset 272824be5054 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=272824be5054 author: Andrew John Hughes date: Thu Apr 25 14:16:00 2013 +0100 Start 1.11.12 release cycle. 2013-04-25 Andrew John Hughes * configure.ac: Bump to 1.12.6pre. * NEWS: Add section for 1.12.6. diffstat: .hgtags | 1 + ChangeLog | 18 + Makefile.am | 2 +- NEWS | 6 +- configure.ac | 2 +- patches/fix-font-layout-tck.patch | 12 - patches/openjdk/8009530-icu_kern_table_support_broken.patch | 332 ++++++++++++ 7 files changed, 357 insertions(+), 16 deletions(-) diffs (431 lines): diff -r 2a08fdbf2a11 -r 272824be5054 .hgtags --- a/.hgtags Tue Apr 23 10:50:52 2013 +0100 +++ b/.hgtags Thu Apr 25 14:16:00 2013 +0100 @@ -33,3 +33,4 @@ c529222b0628a112d53bfe3dafa7292df9d6e683 icedtea6-1.11.8 4892e006b2951600c9131e595096f8eceae5ffe8 icedtea6-1.11.9 f25e5db9397688f7268bb62aca5c63520b4bd08e icedtea6-1.11.10 +d3fed928b8b9d76d6153789ac6daec5dd02aab4d icedtea6-1.11.11 diff -r 2a08fdbf2a11 -r 272824be5054 ChangeLog --- a/ChangeLog Tue Apr 23 10:50:52 2013 +0100 +++ b/ChangeLog Thu Apr 25 14:16:00 2013 +0100 @@ -1,3 +1,21 @@ +2013-04-25 Andrew John Hughes + + * configure.ac: Bump to 1.11.12pre. + * NEWS: Add section for 1.11.12. + +2013-04-24 Andrew John Hughes + + * NEWS: Update release date. + +2013-04-24 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch, remove old. + * NEWS: Mention 8009530 backport. + * patches/openjdk/8009530-icu_kern_table_support_broken.patch: + Backported from 7u. + * patches/fix-font-layout-tck.patch: Removed. + 2013-04-22 Andrew John Hughes * Makefile.am: diff -r 2a08fdbf2a11 -r 272824be5054 Makefile.am --- a/Makefile.am Tue Apr 23 10:50:52 2013 +0100 +++ b/Makefile.am Thu Apr 25 14:16:00 2013 +0100 @@ -540,7 +540,7 @@ patches/aarch64.patch \ patches/jaxws-tempfiles-ioutils-6.patch \ patches/object-factory-cl-internal.patch \ - patches/fix-font-layout-tck.patch + patches/openjdk/8009530-icu_kern_table_support_broken.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 2a08fdbf2a11 -r 272824be5054 NEWS --- a/NEWS Tue Apr 23 10:50:52 2013 +0100 +++ b/NEWS Thu Apr 25 14:16:00 2013 +0100 @@ -11,17 +11,19 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.11.11 (2013-04-19): +New in release 1.11.12 (2013-06-XX): + +New in release 1.11.11 (2013-04-24): * Security fixes - RH952389: Temporary files created with insecure permissions * Backports - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) - S6657673: Issues with JAXP (include fragment dependent on S7133220) + - S8009530: ICU Kern table support broken * Bug fixes - PR1402: Support glibc < 2.17 with AArch64 patch - Give xalan/xerces access to their own internal packages. - - Fix offset problem in ICU LETableReference. New in release 1.11.10 (2013-04-17): diff -r 2a08fdbf2a11 -r 272824be5054 configure.ac --- a/configure.ac Tue Apr 23 10:50:52 2013 +0100 +++ b/configure.ac Thu Apr 25 14:16:00 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.11.11],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.11.12pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 2a08fdbf2a11 -r 272824be5054 patches/fix-font-layout-tck.patch --- a/patches/fix-font-layout-tck.patch Tue Apr 23 10:50:52 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -diff --git a/src/share/native/sun/font/layout/LETableReference.h b/src/share/native/sun/font/layout/LETableReference.h ---- openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h -+++ openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h -@@ -433,7 +433,7 @@ - */ - LEReferenceTo(const LETableReference &parent, LEErrorCode &success, const void* atPtr) - : LETableReference(parent, parent.ptrToOffset(atPtr, success), LE_UINTPTR_MAX, success) { -- verifyLength(parent.ptrToOffset(atPtr,success), LETableVarSizer::getSize(), success); -+ verifyLength(0, LETableVarSizer::getSize(), success); - if(LE_FAILURE(success)) clear(); - } - /** diff -r 2a08fdbf2a11 -r 272824be5054 patches/openjdk/8009530-icu_kern_table_support_broken.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8009530-icu_kern_table_support_broken.patch Thu Apr 25 14:16:00 2013 +0100 @@ -0,0 +1,332 @@ +# HG changeset patch +# User srl +# Date 1362581054 28800 +# Node ID c2fff439d91a73076268c1b7a997722fa1caef21 +# Parent 98ad2f1e25d13aca196ad77b2f227f85072c9b16 +8009530: ICU Kern table support broken +Reviewed-by: prr, vadim + +diff --git a/src/share/native/sun/font/layout/KernTable.cpp b/src/share/native/sun/font/layout/KernTable.cpp +--- openjdk/jdk/src/share/native/sun/font/layout/KernTable.cpp ++++ openjdk/jdk/src/share/native/sun/font/layout/KernTable.cpp +@@ -48,7 +48,7 @@ + le_int16 value; // fword, kern value in funits + }; + #define KERN_PAIRINFO_SIZE 6 +- ++LE_CORRECT_SIZE(PairInfo, KERN_PAIRINFO_SIZE) + struct Subtable_0 { + le_uint16 nPairs; + le_uint16 searchRange; +@@ -56,6 +56,7 @@ + le_uint16 rangeShift; + }; + #define KERN_SUBTABLE_0_HEADER_SIZE 8 ++LE_CORRECT_SIZE(Subtable_0, KERN_SUBTABLE_0_HEADER_SIZE) + + // Kern table version 0 only + struct SubtableHeader { +@@ -64,6 +65,7 @@ + le_uint16 coverage; + }; + #define KERN_SUBTABLE_HEADER_SIZE 6 ++LE_CORRECT_SIZE(SubtableHeader, KERN_SUBTABLE_HEADER_SIZE) + + // Version 0 only, version 1 has different layout + struct KernTableHeader { +@@ -71,6 +73,7 @@ + le_uint16 nTables; + }; + #define KERN_TABLE_HEADER_SIZE 4 ++LE_CORRECT_SIZE(KernTableHeader, KERN_TABLE_HEADER_SIZE) + + #define COVERAGE_HORIZONTAL 0x1 + #define COVERAGE_MINIMUM 0x2 +@@ -92,8 +95,8 @@ + * TODO: support multiple subtables + * TODO: respect header flags + */ +-KernTable::KernTable(const LETableReference &table, LEErrorCode &success) +- : pairs(table, success), pairsSwapped(NULL), fTable(table) ++KernTable::KernTable(const LETableReference& base, LEErrorCode &success) ++ : pairs(), pairsSwapped(NULL), fTable(base) + { + if(LE_FAILURE(success) || (fTable.isEmpty())) { + #if DEBUG +@@ -106,7 +109,7 @@ + #if DEBUG + // dump first 32 bytes of header + for (int i = 0; i < 64; ++i) { +- fprintf(stderr, "%0.2x ", ((const char*)tableData)[i]&0xff); ++ fprintf(stderr, "%0.2x ", ((const char*)header.getAlias())[i]&0xff); + if (((i+1)&0xf) == 0) { + fprintf(stderr, "\n"); + } else if (((i+1)&0x7) == 0) { +@@ -140,7 +143,14 @@ + #endif + + if(LE_SUCCESS(success) && nPairs>0) { +- pairs.setToOffsetInParent(table, KERN_SUBTABLE_0_HEADER_SIZE, nPairs, success); ++ // pairs is an instance member, and table is on the stack. ++ // set 'pairs' based on table.getAlias(). This will range check it. ++ ++ pairs = LEReferenceToArrayOf(fTable, // based on overall table ++ success, ++ (const PairInfo*)table.getAlias(), // subtable 0 + .. ++ KERN_SUBTABLE_0_HEADER_SIZE, // .. offset of header size ++ nPairs); // count + } + if (LE_SUCCESS(success) && pairs.isValid()) { + pairsSwapped = (PairInfo*)(malloc(nPairs*sizeof(PairInfo))); +@@ -152,6 +162,11 @@ + fTable.getFont()->setKernPairs((void*)pairsSwapped); // store it + } + ++#if 0 ++ fprintf(stderr, "coverage: %0.4x nPairs: %d pairs %p\n", coverage, nPairs, pairs.getAlias()); ++ fprintf(stderr, " searchRange: %d entrySelector: %d rangeShift: %d\n", searchRange, entrySelector, rangeShift); ++ fprintf(stderr, "[[ ignored font table entries: range %d selector %d shift %d ]]\n", SWAPW(table->searchRange), SWAPW(table->entrySelector), SWAPW(table->rangeShift)); ++#endif + #if DEBUG + fprintf(stderr, "coverage: %0.4x nPairs: %d pairs 0x%x\n", coverage, nPairs, pairs); + fprintf(stderr, +@@ -208,7 +223,8 @@ + + le_uint32 key = storage[0]; // no need to mask off high bits + float adjust = 0; +- for (int i = 1, e = storage.getGlyphCount(); i < e; ++i) { ++ ++ for (int i = 1, e = storage.getGlyphCount(); LE_SUCCESS(success)&& i < e; ++i) { + key = key << 16 | (storage[i] & 0xffff); + + // argh, to do a binary search, we need to have the pair list in sorted order +diff --git a/src/share/native/sun/font/layout/LETableReference.h b/src/share/native/sun/font/layout/LETableReference.h +--- openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h ++++ openjdk/jdk/src/share/native/sun/font/layout/LETableReference.h +@@ -1,4 +1,5 @@ + /* ++ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -20,7 +21,6 @@ + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. +- * + */ + + /* +@@ -52,7 +52,7 @@ + * defined in OpenTypeUtilities.cpp + * @internal + */ +-U_INTERNAL void U_EXPORT2 _debug_LETableReference(const char *f, int l, const char *msg, const LETableReference *what, const void *ptr, size_t len); ++extern void _debug_LETableReference(const char *f, int l, const char *msg, const LETableReference *what, const void *ptr, size_t len); + + #define LE_DEBUG_TR(x) _debug_LETableReference(__FILE__, __LINE__, x, this, NULL, 0); + #define LE_DEBUG_TR3(x,y,z) _debug_LETableReference(__FILE__, __LINE__, x, this, (const void*)y, (size_t)z); +@@ -204,18 +204,6 @@ + return fLength; + } + +- le_bool isSubsetOf(const LETableReference& base) const { +- if(this == &base) return true; +- if(fStart < base.fStart) return false; +- if(base.hasBounds()) { +- if(fStart >= base.fStart + base.fLength) return false; +- if(hasBounds()) { +- if(fStart + fLength > base.fStart + base.fLength) return false; +- } +- } +- return true; +- } +- + /** + * Change parent link to another + */ +@@ -278,6 +266,12 @@ + * dereferencing NULL is valid here because we never actually dereference it, just inside sizeof. + */ + #define LE_VAR_ARRAY(x,y) template<> inline size_t LETableVarSizer::getSize() { return sizeof(x) - (sizeof(((const x*)0)->y)); } ++/** ++ * \def LE_CORRECT_SIZE ++ * @param x type (T) ++ * @param y fixed size for T ++ */ ++#define LE_CORRECT_SIZE(x,y) template<> inline size_t LETableVarSizer::getSize() { return y; } + + /** + * Open a new entry based on an existing table +@@ -338,15 +332,7 @@ + using LETableReference::getAlias; + + const T *getAlias(le_uint32 i, LEErrorCode &success) const { +- if(LE_SUCCESS(success)&& i"); return (const T*)fStart; } +@@ -377,46 +363,6 @@ + LE_TRACE_TR("INFO: null RTAO") + } + +- /** +- * set this to point within our fParent, but based on 'base' as a subtable. +- */ +- void setToOffsetInParent(const LETableReference& base, size_t offset, le_uint32 count, LEErrorCode &success) { +-LE_TRACE_TR("INFO: sTOIP") +- if(LE_FAILURE(success)) return; +- if(!fParent->isSubsetOf(base)) { // Ensure that 'base' is containable within our parent. +- clear(); // otherwise, it's not a subtable of our parent. +- LE_DEBUG_TR("setToOffsetInParents called on non subsets"); +- success = LE_ILLEGAL_ARGUMENT_ERROR; return; +- } +- size_t baseOffset = fParent->ptrToOffset(((const le_uint8*)base.getAlias())+offset, success); +- if(LE_FAILURE(success)) return; // base was outside of parent's range +- if(fParent->hasBounds()) { +- if((baseOffset >= fParent->getLength()) || // start off end of parent +- (baseOffset+(count*LETableVarSizer::getSize()) >= fParent->getLength()) || // or off end of parent +- count > LE_UINTPTR_MAX/LETableVarSizer::getSize()) { // or more than would fit in memory +- LE_DEBUG_TR("setToOffsetInParent called with bad length"); +- success = LE_INDEX_OUT_OF_BOUNDS_ERROR; +- clear(); +- return; // start would go off end of parent +- } +- } +- fStart = (const le_uint8*)(fParent->getAlias()) + baseOffset; +- //fLength = count*LETableVarSizer::getSize(); - no- do not shrink fLength. +- if(fParent->hasBounds()) { +- fLength = (fParent->getLength() - (fStart-(const le_uint8*)fParent->getAlias())); // reduces fLength accordingly. +- } else { +- fLength = LE_UINTPTR_MAX; // unbounded +- } +- if((fStart < fParent->getAlias()) || +- (hasBounds()&&(fStart+fLength < fStart))) { // wrapped +- LE_DEBUG_TR("setToOffsetInParent called with bad length"); +- success = LE_INDEX_OUT_OF_BOUNDS_ERROR; +- clear(); +- return; // start would go off end of parent +- } +- fCount = count; +- } +- + private: + le_uint32 fCount; + }; +@@ -433,7 +379,7 @@ + */ + LEReferenceTo(const LETableReference &parent, LEErrorCode &success, const void* atPtr) + : LETableReference(parent, parent.ptrToOffset(atPtr, success), LE_UINTPTR_MAX, success) { +- verifyLength(parent.ptrToOffset(atPtr,success), LETableVarSizer::getSize(), success); ++ verifyLength(0, LETableVarSizer::getSize(), success); + if(LE_FAILURE(success)) clear(); + } + /** +diff --git a/test/java/awt/font/TextLayout/TestKerning.java b/test/java/awt/font/TextLayout/TestKerning.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/test/java/awt/font/TextLayout/TestKerning.java +@@ -0,0 +1,94 @@ ++/* ++ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* @test ++ * @summary Test Kerning is working. ++ * @bug 8009530 ++ */ ++ ++import java.applet.*; ++import java.awt.*; ++import java.awt.event.*; ++import java.awt.font.*; ++import java.util.Map; ++import java.util.HashMap; ++import java.util.Locale; ++ ++public class TestKerning extends Applet { ++ private Panel panel; ++ ++ static public void main(String[] args) { ++System.out.println(System.getProperty("os.name")); ++ ++ Applet test = new TestKerning(); ++ test.init(); ++ test.start(); ++ ++ Frame f = new Frame("Test Kerning"); ++ f.addWindowListener(new WindowAdapter() { ++ public void windowClosing(WindowEvent e) { ++ System.exit(0); ++ } ++ }); ++ f.add("Center", test); ++ f.pack(); ++ f.setVisible(true); ++ } ++ ++ public Dimension getPreferredSize() { ++ return new Dimension(500, 200); ++ } ++ ++ public Dimension getMaximumSize() { ++ return getPreferredSize(); ++ } ++ ++ private static final String testString = "To WAVA 1,45 office glyph."; ++ ++ public void paint(Graphics g) { ++ Graphics2D g2d = (Graphics2D)g; ++ Font f = new Font("Arial", Font.PLAIN, 36); ++ // testing Arial on Solaris. ++ if (!("SunOS".equals(System.getProperty("os.name")))) { ++ return; ++ } ++ if (!("Arial".equals(f.getFamily(Locale.ENGLISH)))) { ++ return; ++ } ++ Map m = new HashMap(); ++ m.put(TextAttribute.KERNING, TextAttribute.KERNING_ON); ++ Font kf = f.deriveFont(m); ++ g.setFont(f); ++ FontMetrics fm1 = g.getFontMetrics(); ++ int sw1 = fm1.stringWidth(testString); ++ g.drawString(testString, 10, 50); ++ g.setFont(kf); ++ FontMetrics fm2 = g.getFontMetrics(); ++ int sw2 = fm2.stringWidth(testString); ++ g.drawString(testString, 10, 90); ++ if (sw1 == sw2) { ++ System.out.println(sw1+" " + sw2); ++ throw new RuntimeException("No kerning"); ++ } ++ } ++} From adomurad at redhat.com Thu Apr 25 06:24:40 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 25 Apr 2013 09:24:40 -0400 Subject: Regression in itw from Tue Mar 26 In-Reply-To: <5178E6DF.2010605@redhat.com> References: <5167DCFD.1030305@redhat.com> <5168059E.3060606@redhat.com> <51680E0D.3010704@redhat.com> <51680F1D.8000304@redhat.com> <5170232B.2050805@redhat.com> <5175885E.6010709@redhat.com> <5176765E.8040702@redhat.com> <5176922B.10100@redhat.com> <5177D16D.1070104@redhat.com> <5177E078.8020207@redhat.com> <517807E6.5070007@redhat.com> <5178098F.3030603@redhat.com> <51780A3C.4050200@redhat.com> <51780B4F.5010508@redhat.com> <5178E6DF.2010605@redhat.com> Message-ID: <51792E98.7010208@redhat.com> On 04/25/2013 04:18 AM, Jiri Vanek wrote: > On 04/24/2013 06:41 PM, Adam Domurad wrote: >> On 04/24/2013 12:37 PM, Jiri Vanek wrote: >>> On 04/24/2013 06:34 PM, Adam Domurad wrote: >>>>> + @Test >>>>> + public void testNotNullJnlpFile(){ >>>>> + SecurityDesc securityDesc = new SecurityDesc(new >>>>> DummyJNLPFile(), >>>>> SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); >>>>> + Assert.assertNotNull("securityDesc should not be >>>>> ",securityDesc); >>>>> + >>>>> + } >>>> >>>> Huh. Why is this still in ? Sorry, I can't support superstitious >>>> coding. >>>> >>>> At least drop the assert if you want a constructor sanity check. >>> >>> No. I would like to keep it inside even with assert. >>> The code inside the constructor can change later. Eg some dummy jnl >>> file will be tried to be >>> created and used into if argument is null. >>> >>> I would like to have it recorded. >> >> Sorry, but this assert is really a no-op. How could the result of >> 'new' ever be null ? > > No ists not "no-op" Yes it is. > > It is testing that securityDesc was filled. Whta is somthing what will > not happened when exception is thrown from constructor. It is testing nothing because if an exception happened it would not occur by definition. > @Test > public void testNotNullJnlpFile(){ > Exception ex = null; > try{ > SecurityDesc securityDesc = new SecurityDesc(new > DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); > }catch(Exception exx){ > ex=exx; > } > Assert.assertNull("no exception expectd ",ex); > > } This is good. > > It is more verbose the same as what I'm testing. But more explicit. What you wrote is equivalent to this: @Test public void testNotNullJnlpFile(){ Assert.assertNotNull( new SecurityDesc(new DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!") ); } And it is *completely* equivalent to this: @Test public void testNotNullJnlpFile(){ new SecurityDesc(new DummyJNLPFile(), SecurityDesc.SANDBOX_PERMISSIONS, "hey!"); } The new operator will never return null. This is not more verbose. Add a comment and you have your 'exception check', because of the nature of JUnit. > > What will be in "t" and what in "tt" atetr main execution? > And .. If there "will be something"" will it be "working"? The fatal error in this class is leaking an incomplete 'this'. Even if this code could do this, I don't see the relevance. > > As solution you can see the result or run.. But solution is probably > obvious for you (no ironic, you know already java better then me). I know the dark parts well 8-) Push without this please, or the version that explicitly catches the exception. Otherwise take it up on IRC :-) Happy hacking, -Adam From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 06:30:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Apr 2013 13:30:58 +0000 Subject: [Bug 1336] [IcedTea6] Bootstrap failure on Fedora 17/18 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1336 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |VERIFIED -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/1d19c459/attachment.html From andrew at icedtea.classpath.org Thu Apr 25 07:14:23 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 25 Apr 2013 14:14:23 +0000 Subject: /hg/release/icedtea7-forest-2.3/hotspot: PR1378: Add AArch64 sup... Message-ID: changeset 332f7e24a493 in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=332f7e24a493 author: andrew date: Wed Apr 17 21:26:58 2013 +0100 PR1378: Add AArch64 support to Zero diffstat: src/os/linux/vm/os_linux.cpp | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diffs (34 lines): diff -r 849b7605f2ab -r 332f7e24a493 src/os/linux/vm/os_linux.cpp --- a/src/os/linux/vm/os_linux.cpp Wed Apr 17 13:52:15 2013 +0100 +++ b/src/os/linux/vm/os_linux.cpp Wed Apr 17 21:26:58 2013 +0100 @@ -129,6 +129,11 @@ #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF) #define LARGEPAGES_BIT (1 << 6) + +#ifndef EM_AARCH64 +#define EM_AARCH64 183 /* ARM AARCH64 */ +#endif + //////////////////////////////////////////////////////////////////////////////// // global variables julong os::Linux::_physical_memory = 0; @@ -1890,7 +1895,8 @@ {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, - {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ + {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/ + {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/ }; #if (defined IA32) @@ -1923,6 +1929,8 @@ static Elf32_Half running_arch_code=EM_68K; #elif (defined SH) static Elf32_Half running_arch_code=EM_SH; + #elif (defined AARCH64) + static Elf32_Half running_arch_code=EM_AARCH64; #else #error Method os::dll_load requires that one of following is defined:\ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 07:14:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Apr 2013 14:14:32 +0000 Subject: [Bug 1378] [IcedTea7] Add AArch64 support to Zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1378 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=332f7e24a493 author: andrew date: Wed Apr 17 21:26:58 2013 +0100 PR1378: Add AArch64 support to Zero -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130425/1ba2c2d5/attachment.html From adomurad at icedtea.classpath.org Thu Apr 25 07:33:01 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 25 Apr 2013 14:33:01 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 1da533f89607 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=1da533f89607 author: Adam Domurad date: Thu Apr 25 10:33:21 2013 -0400 Tests & test extensions for mocking the plugin input & output pipes. changeset b0bef68756a6 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b0bef68756a6 author: Adam Domurad date: Thu Apr 25 10:28:08 2013 -0400 Unit tests for AsyncCall test extension diffstat: ChangeLog | 18 ++ Makefile.am | 2 +- plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 3 +- tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java | 93 +++++++++++++++ 4 files changed, 113 insertions(+), 3 deletions(-) diffs (148 lines): diff -r ca33c41c9f69 -r b0bef68756a6 ChangeLog --- a/ChangeLog Thu Apr 25 14:25:45 2013 +0200 +++ b/ChangeLog Thu Apr 25 10:28:08 2013 -0400 @@ -1,3 +1,21 @@ +2013-04-25 Adam Domurad + + * tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java: Unit tests for + AsyncCall test extension. + +2013-04-25 Adam Domurad + + Tests & test extensions for mocking the plugin input & output pipes. + * Makefile.am + (stamps/test-extensions-compile.stamp): Make plugin classes available + to test extensions + * tests/test-extensions/net/sourceforge/jnlp/AsyncCall.java: New, helper + for doing asynchronous calls with an optional timeout. + * tests/netx/unit/sun/applet/PluginAppletViewerTest.java: New, uses + PluginPipeMock to test the javascript requests to the plugin. + * tests/test-extensions/sun/applet/mock/PluginPipeMock.java: New, helper + for getting the plugin requests and mocking the replies. + 2013-04-25 Jiri Vanek Locking disabled on windows machines diff -r ca33c41c9f69 -r b0bef68756a6 Makefile.am --- a/Makefile.am Thu Apr 25 14:25:45 2013 +0200 +++ b/Makefile.am Thu Apr 25 10:28:08 2013 -0400 @@ -760,7 +760,7 @@ ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK); $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TEST_EXTENSIONS_DIR) \ - -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \ + -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(abs_top_builddir)/liveconnect/lib/classes.jar \ @test-extensions-source-files.txt && \ mkdir -p stamps && \ touch $@ diff -r ca33c41c9f69 -r b0bef68756a6 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Apr 25 14:25:45 2013 +0200 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Apr 25 10:28:08 2013 -0400 @@ -62,8 +62,7 @@ private volatile boolean shuttingDown = false; - public PluginStreamHandler(InputStream inputstream, OutputStream outputstream) - throws MalformedURLException, IOException { + public PluginStreamHandler(InputStream inputstream, OutputStream outputstream) { PluginDebug.debug("Current context CL=", Thread.currentThread().getContextClassLoader()); diff -r ca33c41c9f69 -r b0bef68756a6 tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java Thu Apr 25 10:28:08 2013 -0400 @@ -0,0 +1,93 @@ +package net.sourceforge.jnlp; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.concurrent.Callable; + +import org.junit.Test; + +public class AsyncCallTest { + + @Test + public void timeOutTest() { + final boolean[] wasInterrupted = { false }; + + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + @Override + public synchronized Void call() { + try { + wait(); + } catch (InterruptedException ie) { + // Received on time-out + wasInterrupted[0] = true; + } + return null; + } + }, 100 /* 100 millisecond time-out */); + + boolean completedNormally = false; + + try { + call.join(); + completedNormally = true; + } catch (Exception e) { + ServerAccess.logErrorReprint(e.toString()); + assertTrue(e instanceof AsyncCall.TimeOutException); + } + + assertFalse(completedNormally); + assertTrue(wasInterrupted[0]); + } + + @Test + public void normalReturnTest() { + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + @Override + public Integer call() { + return 1; + } + }); + + Integer result = null; + boolean completedNormally = false; + + try { + result = call.join(); + completedNormally = true; + } catch (Exception e) { + ServerAccess.logErrorReprint(e.toString()); + } + + assertTrue(completedNormally); + assertEquals(Integer.valueOf(1), result); + } + + @Test + public void thrownExceptionTest() { + + @SuppressWarnings("serial") + class TestException extends RuntimeException { + } + + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + @Override + public Void call() { + throw new TestException(); + } + }); + + boolean completedNormally = false; + + try { + call.join(); + completedNormally = true; + } catch (Exception e) { + ServerAccess.logErrorReprint(e.toString()); + assertTrue(e instanceof TestException); + } + + assertFalse(completedNormally); + } +} \ No newline at end of file From jvanek at redhat.com Thu Apr 25 10:00:28 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Apr 2013 19:00:28 +0200 Subject: [rfc][icedtea-web] Fix regression in SpacesCanBeEveryWhere reproducer In-Reply-To: <51792A85.20208@redhat.com> References: <517832F1.908@redhat.com> <5178F165.9060600@redhat.com> <51792A85.20208@redhat.com> Message-ID: <5179612C.9020005@redhat.com> On 04/25/2013 03:07 PM, Adam Domurad wrote: > On 04/25/2013 05:03 AM, Jiri Vanek wrote: >> On 04/24/2013 09:30 PM, Adam Domurad wrote: >>> 2013-XX-XX Adam Domurad >>> >>> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> (getCacheFile): Use decodeUrlAsFile instead of toURI().getPath(). >>> * netx/net/sourceforge/jnlp/util/UrlUtils.java >>> (decodeUrlAsFile): New, tolerates ill-formed URLs. >>> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: >>> (testDecodeUrlAsFile): Test for (decodeUrlAsFile) >>> >>> Sorry this wasn't caught sooner, and thanks to Jiri for pointing it out. >>> The problem was that archives can't be guaranteed to be encoded URLs. >>> We instead use an encoding-tolerant function. >>> >>> Note that the headache is caused because Java allows essentially invalid URLs to be created (and, on >>> our side, that we allow them to be created). >>> >>> Happy hacking, >>> -Adam >>> >>> fix-paths-with-spaces-regression.patch >>> >>> >>> diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java >>> @@ -390,7 +390,7 @@ public class ResourceTracker { >>> return resource.localFile; >>> >>> if (location.getProtocol().equalsIgnoreCase("file")) { >>> - File file = new File(location.toURI().getPath()); >>> + File file = UrlUtils.decodeUrlAsFile(location); >>> if (file.exists()) >>> return file; >>> } >>> @@ -401,9 +401,6 @@ public class ResourceTracker { >>> ex.printStackTrace(); >>> >>> return null; // need an error exception to throw >>> - } catch (URISyntaxException e) { >>> - e.printStackTrace(); >>> - return null; >>> } >> >> >> Just ensuring about the removal of the exception: > > Which was added in a patch you reviewed a few days ago :-D > >> >> When decodeUrlQuietly "fails" it prints out exception (not throw) and return original url. >> So no NPE is thrown during the getCacheFile method propcessing. >> However returning of null was expected when url was wrong. However now "strange" url is returned.... > > This exception catch didn't exist before the last batch of changes. It's just noise introduced because of checked exceptions (Oh how I *hate* them :-). > I don't know what you mean by 'strange' URLs. In the case decodeUrlQuietly fails the code will be exactly like it was before (before the last batch of commits anyway), except print more exceptions. This is because it is a no-op when it fails, which renders it the same as the code that was there before the last batch of changes. As hoped, go on and push . > >> >> Checking the usage of getCacheFile it is probably more usfeul.. and we will recieve "some strange exception" instead of NPE... >> >> J. >> >> After this explained, looks good to go. >> >>> } >>> [..snipped..] > > Thanks again for catching it. Very sorry for the breakage. > -Adam From andrew at icedtea.classpath.org Thu Apr 25 10:19:17 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 25 Apr 2013 17:19:17 +0000 Subject: /hg/icedtea6: 3 new changesets Message-ID: changeset ffe30d3918c4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ffe30d3918c4 author: Andrew John Hughes date: Thu Apr 25 15:01:06 2013 +0100 Add backport of 7036559 and ConcurrentHashMap deserialization reliability fix for 8009063. changeset 0396c602f40d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0396c602f40d author: Andrew John Hughes date: Thu Apr 25 15:04:12 2013 +0100 Fix issues with previous commit. 2013-04-12 Andrew John Hughes * Makefile.am: (SECURITY_PATCHES): Correct path to 7036559; not a security patch but a backport to enable one to be applied. * patches/security/20130416/7036559.patch: Moved to... * patches/openjdk/7036559-concurrenthashmap_improvements.patch: ...here. 2013-04-11 Jon VanAlten * Makefile.am: (SECURITY_PATCHES): Add new patches. * patches/security/20130416/7036559.patch: Add backport. * patches/security/20130416/8009063.patch: Add security fix. changeset d5ea2fe9da2d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d5ea2fe9da2d author: Andrew John Hughes date: Thu Apr 25 18:18:04 2013 +0100 Use latest hs23 HEAD, bringing in security fixes and aarch64 patch. 2013-04-25 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Move aarch64.patch to original HotSpot only. * hotspot.map: Sync with latest hs23 HEAD. diffstat: ChangeLog | 24 + Makefile.am | 10 +- hotspot.map | 2 +- patches/openjdk/7036559-concurrenthashmap_improvements.patch | 1436 ++++++++++ patches/security/20130416/8009063.patch | 67 + 5 files changed, 1533 insertions(+), 6 deletions(-) diffs (truncated from 1578 to 500 lines): diff -r ceab4a096b50 -r d5ea2fe9da2d ChangeLog --- a/ChangeLog Mon Apr 22 18:11:11 2013 +0100 +++ b/ChangeLog Thu Apr 25 18:18:04 2013 +0100 @@ -1,3 +1,27 @@ +2013-04-25 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Move aarch64.patch to original + HotSpot only. + * hotspot.map: Sync with latest hs23 HEAD. + +2013-04-12 Andrew John Hughes + + * Makefile.am: + (SECURITY_PATCHES): Correct path to 7036559; not + a security patch but a backport to enable one to + be applied. + * patches/security/20130416/7036559.patch: Moved to... + * patches/openjdk/7036559-concurrenthashmap_improvements.patch: + ...here. + +2013-04-11 Jon VanAlten + + * Makefile.am: + (SECURITY_PATCHES): Add new patches. + * patches/security/20130416/7036559.patch: Add backport. + * patches/security/20130416/8009063.patch: Add security fix. + 2013-04-22 Andrew John Hughes PR1336: Bootstrap failure on Fedora 17/18 diff -r ceab4a096b50 -r d5ea2fe9da2d Makefile.am --- a/Makefile.am Mon Apr 22 18:11:11 2013 +0100 +++ b/Makefile.am Thu Apr 25 18:18:04 2013 +0100 @@ -301,7 +301,9 @@ patches/security/20130219/8007688.patch \ patches/security/20130304/8007014.patch \ patches/security/20130304/8007675.patch \ - patches/openjdk/8009641-8007675_build_fix.patch + patches/openjdk/8009641-8007675_build_fix.patch \ + patches/openjdk/7036559-concurrenthashmap_improvements.patch \ + patches/security/20130416/8009063.patch if !WITH_ALT_HSBUILD SECURITY_PATCHES += \ @@ -557,12 +559,10 @@ patches/hotspot/original/7197906-handle_32_bit_shifts.patch \ patches/hotspot/original/fix_get_stack_bounds_leak.patch \ patches/hotspot/original/jvmtiEnv.patch \ - patches/hotspot/original/6840152-jvm_crashes_with_heavyweight_monitors.patch + patches/hotspot/original/6840152-jvm_crashes_with_heavyweight_monitors.patch \ + patches/aarch64.patch endif -# Needs to be after the addition of SH support to the original HotSpot -ICEDTEA_PATCHES += patches/aarch64.patch - if WITH_RHINO ICEDTEA_PATCHES += \ patches/rhino.patch diff -r ceab4a096b50 -r d5ea2fe9da2d hotspot.map --- a/hotspot.map Mon Apr 22 18:11:11 2013 +0100 +++ b/hotspot.map Thu Apr 25 18:18:04 2013 +0100 @@ -1,2 +1,2 @@ # version url changeset sha256sum -hs23 http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot 23888f3dec52 6d77e26134d47e62621a35b259c70d8e98070724af9a718ec2b85cf84b954614 +hs23 http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot 332f7e24a493 da6f849e2b8c0e8c46de4171b9f14ec9d97bac76dd56006d9c33323b23f54f98 diff -r ceab4a096b50 -r d5ea2fe9da2d patches/openjdk/7036559-concurrenthashmap_improvements.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7036559-concurrenthashmap_improvements.patch Thu Apr 25 18:18:04 2013 +0100 @@ -0,0 +1,1436 @@ +# HG changeset patch +# User dl +# Date 1303139440 -3600 +# Node ID 005c0c85b0decf18a90ff6c9601d1b9a2c0a3fa4 +# Parent 603e70836e74e5c18fc32279f7e4df5b4c63e0b6 +7036559: ConcurrentHashMap footprint and contention improvements +Reviewed-by: chegar + +diff --git a/src/share/classes/java/util/concurrent/ConcurrentHashMap.java b/src/share/classes/java/util/concurrent/ConcurrentHashMap.java +--- openjdk/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java ++++ openjdk/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java +@@ -105,7 +105,25 @@ + + /* + * The basic strategy is to subdivide the table among Segments, +- * each of which itself is a concurrently readable hash table. ++ * each of which itself is a concurrently readable hash table. To ++ * reduce footprint, all but one segments are constructed only ++ * when first needed (see ensureSegment). To maintain visibility ++ * in the presence of lazy construction, accesses to segments as ++ * well as elements of segment's table must use volatile access, ++ * which is done via Unsafe within methods segmentAt etc ++ * below. These provide the functionality of AtomicReferenceArrays ++ * but reduce the levels of indirection. Additionally, ++ * volatile-writes of table elements and entry "next" fields ++ * within locked operations use the cheaper "lazySet" forms of ++ * writes (via putOrderedObject) because these writes are always ++ * followed by lock releases that maintain sequential consistency ++ * of table updates. ++ * ++ * Historical note: The previous version of this class relied ++ * heavily on "final" fields, which avoided some volatile reads at ++ * the expense of a large initial footprint. Some remnants of ++ * that design (including forced construction of segment 0) exist ++ * to ensure serialization compatibility. + */ + + /* ---------------- Constants -------------- */ +@@ -137,8 +155,15 @@ + static final int MAXIMUM_CAPACITY = 1 << 30; + + /** ++ * The minimum capacity for per-segment tables. Must be a power ++ * of two, at least two to avoid immediate resizing on next use ++ * after lazy construction. ++ */ ++ static final int MIN_SEGMENT_TABLE_CAPACITY = 2; ++ ++ /** + * The maximum number of segments to allow; used to bound +- * constructor arguments. ++ * constructor arguments. Must be power of two less than 1 << 24. + */ + static final int MAX_SEGMENTS = 1 << 16; // slightly conservative + +@@ -164,7 +189,7 @@ + final int segmentShift; + + /** +- * The segments, each of which is a specialized hash table ++ * The segments, each of which is a specialized hash table. + */ + final Segment[] segments; + +@@ -172,7 +197,65 @@ + transient Set> entrySet; + transient Collection values; + +- /* ---------------- Small Utilities -------------- */ ++ /** ++ * ConcurrentHashMap list entry. Note that this is never exported ++ * out as a user-visible Map.Entry. ++ */ ++ static final class HashEntry { ++ final int hash; ++ final K key; ++ volatile V value; ++ volatile HashEntry next; ++ ++ HashEntry(int hash, K key, V value, HashEntry next) { ++ this.hash = hash; ++ this.key = key; ++ this.value = value; ++ this.next = next; ++ } ++ ++ /** ++ * Sets next field with volatile write semantics. (See above ++ * about use of putOrderedObject.) ++ */ ++ final void setNext(HashEntry n) { ++ UNSAFE.putOrderedObject(this, nextOffset, n); ++ } ++ ++ // Unsafe mechanics ++ static final sun.misc.Unsafe UNSAFE; ++ static final long nextOffset; ++ static { ++ try { ++ UNSAFE = sun.misc.Unsafe.getUnsafe(); ++ Class k = HashEntry.class; ++ nextOffset = UNSAFE.objectFieldOffset ++ (k.getDeclaredField("next")); ++ } catch (Exception e) { ++ throw new Error(e); ++ } ++ } ++ } ++ ++ /** ++ * Gets the ith element of given table (if nonnull) with volatile ++ * read semantics. ++ */ ++ @SuppressWarnings("unchecked") ++ static final HashEntry entryAt(HashEntry[] tab, int i) { ++ return (tab == null) ? null : ++ (HashEntry) UNSAFE.getObjectVolatile ++ (tab, ((long)i << TSHIFT) + TBASE); ++ } ++ ++ /** ++ * Sets the ith element of given table, with volatile write ++ * semantics. (See above about use of putOrderedObject.) ++ */ ++ static final void setEntryAt(HashEntry[] tab, int i, ++ HashEntry e) { ++ UNSAFE.putOrderedObject(tab, ((long)i << TSHIFT) + TBASE, e); ++ } + + /** + * Applies a supplemental hash function to a given hashCode, which +@@ -193,104 +276,67 @@ + } + + /** +- * Returns the segment that should be used for key with given hash +- * @param hash the hash code for the key +- * @return the segment +- */ +- final Segment segmentFor(int hash) { +- return segments[(hash >>> segmentShift) & segmentMask]; +- } +- +- /* ---------------- Inner Classes -------------- */ +- +- /** +- * ConcurrentHashMap list entry. Note that this is never exported +- * out as a user-visible Map.Entry. +- * +- * Because the value field is volatile, not final, it is legal wrt +- * the Java Memory Model for an unsynchronized reader to see null +- * instead of initial value when read via a data race. Although a +- * reordering leading to this is not likely to ever actually +- * occur, the Segment.readValueUnderLock method is used as a +- * backup in case a null (pre-initialized) value is ever seen in +- * an unsynchronized access method. +- */ +- static final class HashEntry { +- final K key; +- final int hash; +- volatile V value; +- final HashEntry next; +- +- HashEntry(K key, int hash, HashEntry next, V value) { +- this.key = key; +- this.hash = hash; +- this.next = next; +- this.value = value; +- } +- +- @SuppressWarnings("unchecked") +- static final HashEntry[] newArray(int i) { +- return new HashEntry[i]; +- } +- } +- +- /** + * Segments are specialized versions of hash tables. This + * subclasses from ReentrantLock opportunistically, just to + * simplify some locking and avoid separate construction. + */ + static final class Segment extends ReentrantLock implements Serializable { + /* +- * Segments maintain a table of entry lists that are ALWAYS +- * kept in a consistent state, so can be read without locking. +- * Next fields of nodes are immutable (final). All list +- * additions are performed at the front of each bin. This +- * makes it easy to check changes, and also fast to traverse. +- * When nodes would otherwise be changed, new nodes are +- * created to replace them. This works well for hash tables +- * since the bin lists tend to be short. (The average length +- * is less than two for the default load factor threshold.) ++ * Segments maintain a table of entry lists that are always ++ * kept in a consistent state, so can be read (via volatile ++ * reads of segments and tables) without locking. This ++ * requires replicating nodes when necessary during table ++ * resizing, so the old lists can be traversed by readers ++ * still using old version of table. + * +- * Read operations can thus proceed without locking, but rely +- * on selected uses of volatiles to ensure that completed +- * write operations performed by other threads are +- * noticed. For most purposes, the "count" field, tracking the +- * number of elements, serves as that volatile variable +- * ensuring visibility. This is convenient because this field +- * needs to be read in many read operations anyway: +- * +- * - All (unsynchronized) read operations must first read the +- * "count" field, and should not look at table entries if +- * it is 0. +- * +- * - All (synchronized) write operations should write to +- * the "count" field after structurally changing any bin. +- * The operations must not take any action that could even +- * momentarily cause a concurrent read operation to see +- * inconsistent data. This is made easier by the nature of +- * the read operations in Map. For example, no operation +- * can reveal that the table has grown but the threshold +- * has not yet been updated, so there are no atomicity +- * requirements for this with respect to reads. +- * +- * As a guide, all critical volatile reads and writes to the +- * count field are marked in code comments. ++ * This class defines only mutative methods requiring locking. ++ * Except as noted, the methods of this class perform the ++ * per-segment versions of ConcurrentHashMap methods. (Other ++ * methods are integrated directly into ConcurrentHashMap ++ * methods.) These mutative methods use a form of controlled ++ * spinning on contention via methods scanAndLock and ++ * scanAndLockForPut. These intersperse tryLocks with ++ * traversals to locate nodes. The main benefit is to absorb ++ * cache misses (which are very common for hash tables) while ++ * obtaining locks so that traversal is faster once ++ * acquired. We do not actually use the found nodes since they ++ * must be re-acquired under lock anyway to ensure sequential ++ * consistency of updates (and in any case may be undetectably ++ * stale), but they will normally be much faster to re-locate. ++ * Also, scanAndLockForPut speculatively creates a fresh node ++ * to use in put if no node is found. + */ + + private static final long serialVersionUID = 2249069246763182397L; + + /** +- * The number of elements in this segment's region. ++ * The maximum number of times to tryLock in a prescan before ++ * possibly blocking on acquire in preparation for a locked ++ * segment operation. On multiprocessors, using a bounded ++ * number of retries maintains cache acquired while locating ++ * nodes. + */ +- transient volatile int count; ++ static final int MAX_SCAN_RETRIES = ++ Runtime.getRuntime().availableProcessors() > 1 ? 64 : 1; + + /** +- * Number of updates that alter the size of the table. This is +- * used during bulk-read methods to make sure they see a +- * consistent snapshot: If modCounts change during a traversal +- * of segments computing size or checking containsValue, then +- * we might have an inconsistent view of state so (usually) +- * must retry. ++ * The per-segment table. Elements are accessed via ++ * entryAt/setEntryAt providing volatile semantics. ++ */ ++ transient volatile HashEntry[] table; ++ ++ /** ++ * The number of elements. Accessed only either within locks ++ * or among other volatile reads that maintain visibility. ++ */ ++ transient int count; ++ ++ /** ++ * The total number of mutative operations in this segment. ++ * Even though this may overflows 32 bits, it provides ++ * sufficient accuracy for stability checks in CHM isEmpty() ++ * and size() methods. Accessed only either within locks or ++ * among other volatile reads that maintain visibility. + */ + transient int modCount; + +@@ -302,11 +348,6 @@ + transient int threshold; + + /** +- * The per-segment table. +- */ +- transient volatile HashEntry[] table; +- +- /** + * The load factor for the hash table. Even though this value + * is same for all segments, it is replicated to avoid needing + * links to outer object. +@@ -314,202 +355,94 @@ + */ + final float loadFactor; + +- Segment(int initialCapacity, float lf) { +- loadFactor = lf; +- setTable(HashEntry.newArray(initialCapacity)); ++ Segment(float lf, int threshold, HashEntry[] tab) { ++ this.loadFactor = lf; ++ this.threshold = threshold; ++ this.table = tab; + } + +- @SuppressWarnings("unchecked") +- static final Segment[] newArray(int i) { +- return new Segment[i]; ++ final V put(K key, int hash, V value, boolean onlyIfAbsent) { ++ HashEntry node = tryLock() ? null : ++ scanAndLockForPut(key, hash, value); ++ V oldValue; ++ try { ++ HashEntry[] tab = table; ++ int index = (tab.length - 1) & hash; ++ HashEntry first = entryAt(tab, index); ++ for (HashEntry e = first;;) { ++ if (e != null) { ++ K k; ++ if ((k = e.key) == key || ++ (e.hash == hash && key.equals(k))) { ++ oldValue = e.value; ++ if (!onlyIfAbsent) { ++ e.value = value; ++ ++modCount; ++ } ++ break; ++ } ++ e = e.next; ++ } ++ else { ++ if (node != null) ++ node.setNext(first); ++ else ++ node = new HashEntry(hash, key, value, first); ++ int c = count + 1; ++ if (c > threshold && first != null && ++ tab.length < MAXIMUM_CAPACITY) ++ rehash(node); ++ else ++ setEntryAt(tab, index, node); ++ ++modCount; ++ count = c; ++ oldValue = null; ++ break; ++ } ++ } ++ } finally { ++ unlock(); ++ } ++ return oldValue; + } + + /** +- * Sets table to new HashEntry array. +- * Call only while holding lock or in constructor. ++ * Doubles size of table and repacks entries, also adding the ++ * given node to new table + */ +- void setTable(HashEntry[] newTable) { +- threshold = (int)(newTable.length * loadFactor); +- table = newTable; +- } +- +- /** +- * Returns properly casted first entry of bin for given hash. +- */ +- HashEntry getFirst(int hash) { +- HashEntry[] tab = table; +- return tab[hash & (tab.length - 1)]; +- } +- +- /** +- * Reads value field of an entry under lock. Called if value +- * field ever appears to be null. This is possible only if a +- * compiler happens to reorder a HashEntry initialization with +- * its table assignment, which is legal under memory model +- * but is not known to ever occur. +- */ +- V readValueUnderLock(HashEntry e) { +- lock(); +- try { +- return e.value; +- } finally { +- unlock(); +- } +- } +- +- /* Specialized implementations of map methods */ +- +- V get(Object key, int hash) { +- if (count != 0) { // read-volatile +- HashEntry e = getFirst(hash); +- while (e != null) { +- if (e.hash == hash && key.equals(e.key)) { +- V v = e.value; +- if (v != null) +- return v; +- return readValueUnderLock(e); // recheck +- } +- e = e.next; +- } +- } +- return null; +- } +- +- boolean containsKey(Object key, int hash) { +- if (count != 0) { // read-volatile +- HashEntry e = getFirst(hash); +- while (e != null) { +- if (e.hash == hash && key.equals(e.key)) +- return true; +- e = e.next; +- } +- } +- return false; +- } +- +- boolean containsValue(Object value) { +- if (count != 0) { // read-volatile +- HashEntry[] tab = table; +- int len = tab.length; +- for (int i = 0 ; i < len; i++) { +- for (HashEntry e = tab[i]; e != null; e = e.next) { +- V v = e.value; +- if (v == null) // recheck +- v = readValueUnderLock(e); From gitne at excite.co.jp Thu Apr 25 11:15:18 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 03:15:18 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl0gQnVnOiBVbmFibGUgdG8gcmVtb3ZlIHBlcm1pc3Npb25zIG9uICVVU0VSUFJPRklMRSVcLmljZWR0ZWFcc2VjdXJpdHlcdHJ1c3RlZC5jYWNlcnRzLnRlbXAgb24gV2luZG93cw==?= Message-ID: <201304251815.r3PIFIJ5028670@mail-web01.excite.co.jp> "Jiri Vanek" wrote: > > > > -------- Original Message -------- > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > %USERPROFILE%.icedteasecuritytrusted.cacerts.temp on Windows > Date: Fri, 19 Apr 2013 17:57:49 +0200 > From: Jiri Vanek > To: Jacob Wisor , IcedTea Distro List > > On 04/10/2013 02:48 PM, Jiri Vanek wrote: > > Thank you for deep investigations. > >> From this log is clear that the fatal exception is from newest commmits ad thank you very much for > > reporting. > > > > I Will try to fix the handling of LockedFile and its exception (acually added by me and Adam few > > weeks ago :( ) asap (but I'm unfortunately quite bussy right now :-/) > > > > I'm quite agreeing with you on restricted file usefulness. But its removal/refactoreing will have to > > wait for 1.5. But for 1.4 this windows issue must be fixed(damn). > > > > Sorry for delaying you form better stuff, but give me few days! > > > > Best regards > > J. > > > > ps /me keeping you in mind! > > > > > > > > -------- Original Message -------- > > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > > %USERPROFILE%.icedteasecuritytrusted.cacerts.temp on Windows > > Date: Wed, 10 Apr 2013 21:00:41 +0900 > > From: Jacob Wisor > > To: JiriVanek, ""@excite.co.jp > > > > "Jiri Vanek" wrote: > >> On 04/09/2013 05:33 PM, Jacob Wisor wrote: > >>> "Jiri Vanek" wrote: > >>>> On 04/09/2013 02:00 PM, Jacob Wisor wrote: > >>>>> "Jiri Vanek" wrote: > >>>>>> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > >>>>>>> Hello there! > >>>>>>> > >>>>>>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > >>>>>>> I do not know whether this is reproducable on Linux systems. > >>>>>>> > >>>>>>> @Jiri: > >>>>>>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > >>>>>>> > >>>>>>> Regards, > >>>>>>> Jacob > >>>>>>> > >>>>>> > >>>>>> Hi again! > >>>>>> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > >>>>>> directory and set my home to read only, But I doubt that it is connected to recent patches. > >>>>>> > >>>>>> By studying the exception: > >>>>>> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > >>>>>> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > >>>>>> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > >>>>>> (translated as "The process can not access the file because another process has locked a portion") > >>>>>> * This happened immediately after start of itw-settings, and is moreover correct. No file to > >>>>>> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > >>>>>> "added by new patch"). > >>>>>> Then two more exceptions from old code arise: > >>>>>> java.lang.NullPointerException at > >>>>>> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > >>>>>> and > >>>>>> java.io.IOException: Removing execute permissions on file > >>>>>> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > >>>>>> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > >>>>>> * all three are unrelated in meaning each to each, but have same root - tehy can not create their > >>>>>> config files. > >>>>>> > >>>>>> > >>>>>> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > >>>>>> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > >>>>>> workarround to create %USERPROFILE%.icedtea manually? > >>>>>> > >>>>>> ANyway I will check once more when I got more free time. > >>>>>> > >>>>>> Thanx for checking, > >>>>>> J. > >>>>> > >>>>> Thank you for your timely response. > >>>>> The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > >>>>> > >>>>> %USERPROFILE%.icedtea > >>>>> %USERPROFILE%.icedteasecurity > >>>>> %USERPROFILE%.icedtea.appletTrustSettings > >>>>> %USERPROFILE%.icedteasecuritytrusted.cacerts.temp > >>>>> > >>>>> On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > >>>>> > >>>>> Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > >>>>> > >>>> > >>>> oook... I have attached patch which handles windows restricted files less strictly == tries to set > >>>> the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will > >>>> work. > >>>> > >>>> I think you can elaborate with it now. But this issue will need more investigations on my side > >>>> //me have tu make some windows machine around... > >>>> > >>>> Hope this helps, > >>>> J. > >>>> > >>>> > >>>> If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no > >>>> machine where to verify (work in progress) > >>>> If the issue will be only X flag, then I will sent official patch. > >>> > >>> Thank you for this prompt attempt. > >>> Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: > >>> > >>> %USERPROFILE%.icedtea > >>> %USERPROFILE%.icedteasecurity > >>> %USERPROFILE%.icedtea.appletTrustSettings > >>> %USERPROFILE%.icedteasecuritytrusted.cacerts > >>> > >>> It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) > >>> > >>> Thanks again for bothering :) > >>> Jacob > >>> > >> > >> > >> The attachment is missing :(( > >> /me curious > > > > Hello Jiri, > > > > Sorry, the web mailer is lausy. :( So, here we go again. > > > > I have played a little bit with J2SE's access permissions facility on Windows, that is > > java.io.File.setExecutable(boolean,boolean), java.io.File.setWriteable(boolean,boolean), and > > java.io.File.setReadable(boolean,boolean). They obviously have no effect on Windows, so one cannot > > rely on them. Besides, as far as I can tell the whole purpose of this fiddling with access > > permissions on files is to get a locked file. IMHO the > > net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(File,boolean,boolean) is redundant and > > totally misses the point. Actually, there is a file locking facility provided by J2SE via > > java.nio.channels.FileLock. Although the semantics of java.nio.channels.FileLock can characterized > > as best effort on varying platforms at best it probably should be used nevertheless. Infact, there > > is even a utility class net.sourceforge.jnlp.util.lockingfile.LockedFile in netx. So, I am a little > > bit confused. Why not use that? Correct me if I am wrong, but even if java.nio.c! > > hannels.FileLock does not provide the desired semantics - let's say perhaps on Linux - fiddling > > with file access permissions should not be the way to go. Instead, then the prefered way would be to > > use buffers from java.nio (to get some sort of memory-mapped file) or java.io.BufferdIn/OutputStream > > with java.io.PipedIn/OutputStream. This process of creating netx' data files should probably be > > revised and refactored. > > To cut a long story short, it still does not run on Windows. :D And, I probably will not have the > > time to refactor it. So it is nice of you to help me out. > > > > Regards, > > Jacob > > > > > Ok. I have reproduced this on windows, and the attached "fix" is > working. Okay cool! :) Thank you. So, I did not talk rubbish and was not doing anything wrong after all. :D > I myself consider locking file as little bit overpowered stuff, > designed fot case that one applet will write record, whether other > applet will in meantime read record, so I do not think there will > be any harm by disabling on windows (as applets are not known to > run on win(?)) Well, locking a file via a system's file locking mechanism is an acceptable way to achieve exclusion. But, maybe a global (JVM-wide) object lock would do as well, as long as all applets share the same JVM. I have not used objects (besides serialization) or locks across application domains in Java, and I do not know whether that is possible in Java after all, but probably is. It is definitely possible on the .net platform. > ps - how looks PL? O:) In the meantime, I have transfered the localized message properties to a Fedora VM and it works fine. But, there was not enough time to polish and streamline the PL messages. See my rfc please. Jacob From gitne at excite.co.jp Thu Apr 25 11:18:57 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 03:18:57 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl0gQnVnOiBVbmFibGUgdG8gcmVtb3ZlIHBlcm1pc3Npb25zIG9uICVVU0VSUFJPRklMRSVcLmljZWR0ZWFcc2VjdXJpdHlcdHJ1c3RlZC5jYWNlcnRzLnRlbXAgb24gV2luZG93cw==?= Message-ID: <201304251818.r3PIIvZi028742@mail-web01.excite.co.jp> "Pavel Tisnovsky" wrote: > Hi Jiri, > > it looks like a reasonable fallback for Windows boxes :-) It is not reasonable, it's merely a quick dirty fix to get things going for now, and should not be considered enterprise code quality. > Ok for HEAD. > > Cheers, > Pavel > > > > > > -------- Original Message -------- > > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > > %USERPROFILE%.icedteasecuritytrusted.cacerts.temp on Windows > > Date: Fri, 19 Apr 2013 17:57:49 +0200 > > From: Jiri Vanek > > To: Jacob Wisor , IcedTea Distro List > > > > On 04/10/2013 02:48 PM, Jiri Vanek wrote: > > > Thank you for deep investigations. > > >> From this log is clear that the fatal exception is from newest commmits ad thank you very much for > > > reporting. > > > > > > I Will try to fix the handling of LockedFile and its exception (acually added by me and Adam few > > > weeks ago :( ) asap (but I'm unfortunately quite bussy right now :-/) > > > > > > I'm quite agreeing with you on restricted file usefulness. But its removal/refactoreing will have to > > > wait for 1.5. But for 1.4 this windows issue must be fixed(damn). > > > > > > Sorry for delaying you form better stuff, but give me few days! > > > > > > Best regards > > > J. > > > > > > ps /me keeping you in mind! > > > > > > > > > > > > -------- Original Message -------- > > > Subject: Re: [icedtea-web] Bug: Unable to remove permissions on > > > %USERPROFILE%.icedteasecuritytrusted.cacerts.temp on Windows > > > Date: Wed, 10 Apr 2013 21:00:41 +0900 > > > From: Jacob Wisor > > > To: JiriVanek, ""@excite.co.jp > > > > > > "Jiri Vanek" wrote: > > >> On 04/09/2013 05:33 PM, Jacob Wisor wrote: > > >>> "Jiri Vanek" wrote: > > >>>> On 04/09/2013 02:00 PM, Jacob Wisor wrote: > > >>>>> "Jiri Vanek" wrote: > > >>>>>> On 04/09/2013 02:01 AM, Jacob Wisor wrote: > > >>>>>>> Hello there! > > >>>>>>> > > >>>>>>> I have come across a bug on Windows since the last patches on checks for absolutness of paths. Infact, I am not sure whether they are connected to this bug, hence I also do not want to make any asumption about the cause of it. Netx worked on Windows some recent patches before, and now it does not anymore. The application just exits with the attached stack trace and exceptions when no config exists in %USERPROFILE%.icedtea (that is running for the first time). The launching user has full permissions on all files and subfolders in his user profile folder. This bug persists when run as an administrator. It is definitly not a problem with incorrectly set permissions on trusted.cacerts.temp nor any inherited permissions. > > >>>>>>> I do not know whether this is reproducable on Linux systems. > > >>>>>>> > > >>>>>>> @Jiri: > > >>>>>>> Could you have a look into this (I would like to be able to test the pl localization with a running application as well)? Or, should I rather report it via Bugzilla and hope for the best? > > >>>>>>> > > >>>>>>> Regards, > > >>>>>>> Jacob > > >>>>>>> > > >>>>>> > > >>>>>> Hi again! > > >>>>>> Hmhmh, I can (partially - similar but not same chain of exceptions) reproduce when I remove .icedtea > > >>>>>> directory and set my home to read only, But I doubt that it is connected to recent patches. > > >>>>>> > > >>>>>> By studying the exception: > > >>>>>> - First -independent - exception is: Exception in thread "AWT-EventQueue-0" > > >>>>>> net.sourceforge.jnlp.util.lockingfile.StorageIoException: java.io.IOException: Proces nie moze > > >>>>>> uzyskac dostepu do pliku, poniewaz inny proces zablokowal jego czesc > > >>>>>> (translated as "The process can not access the file because another process has locked a portion") > > >>>>>> * This happened immediately after start of itw-settings, and is moreover correct. No file to > > >>>>>> read, nor possibility to create (no .icedtea dir) .. however start continues (this is the only > > >>>>>> "added by new patch"). > > >>>>>> Then two more exceptions from old code arise: > > >>>>>> java.lang.NullPointerException at > > >>>>>> net.sourceforge.jnlp.security.viewer.CertificatePane.readKeyStore(CertificatePane.java:263) > > >>>>>> and > > >>>>>> java.io.IOException: Removing execute permissions on file > > >>>>>> C:UsersJakob.icedteasecuritytrusted.cacerts.temp failed > > >>>>>> at net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(FileUtils.java:181) > > >>>>>> * all three are unrelated in meaning each to each, but have same root - tehy can not create their > > >>>>>> config files. > > >>>>>> > > >>>>>> > > >>>>>> So the underlying issue is definitely hidden in disability to create .icedtea directory. As fixing > > >>>>>> this can be pretty complicated, and may lead to bug in jdk itself do you think youcan live with > > >>>>>> workarround to create %USERPROFILE%.icedtea manually? > > >>>>>> > > >>>>>> ANyway I will check once more when I got more free time. > > >>>>>> > > >>>>>> Thanx for checking, > > >>>>>> J. > > >>>>> > > >>>>> Thank you for your timely response. > > >>>>> The thing is, that the .icedtea folder gets created. Infact, all files get created, but it fails when trying to tamper with access rights on trusted.cacerts.temp. The following files and folders get created: > > >>>>> > > >>>>> %USERPROFILE%.icedtea > > >>>>> %USERPROFILE%.icedteasecurity > > >>>>> %USERPROFILE%.icedtea.appletTrustSettings > > >>>>> %USERPROFILE%.icedteasecuritytrusted.cacerts.temp > > >>>>> > > >>>>> On subsequent launches the app fails with an "Cannot create file %USERPROFILE%.icedteasecuritytrusted.cacerts.temp" error, though the file exists. I guess trusted.cacerts.temp should have been a temp file and be deleted when the JVM terminates. There is a temp file facility in J2SE that might help to deal with that (I have not looked into the code yet). So it seams that's probably the crux of the matter. But, indeed it could also be a bug in the J2SE runtime. > > >>>>> > > >>>>> Unfortunatelly, I cannot work around it. The console portion of the app works fine, so I can review that. But, as you can see the major UI portion is out of reach for now. The localization is almost done and it is a little bit frustrating to not be able to review it with a running application. Lets hope this issue can be resolved before the next release date. ;) > > >>>>> > > >>>> > > >>>> oook... I have attached patch which handles windows restricted files less strictly == tries to set > > >>>> the permissions, but do not die if it can not. I have nowhere to test it right now so I hope it will > > >>>> work. > > >>>> > > >>>> I think you can elaborate with it now. But this issue will need more investigations on my side > > >>>> //me have tu make some windows machine around... > > >>>> > > >>>> Hope this helps, > > >>>> J. > > >>>> > > >>>> > > >>>> If this help, can you sent stderr? I think the issue will be only on X flag for _files_ but still no > > >>>> machine where to verify (work in progress) > > >>>> If the issue will be only X flag, then I will sent official patch. > > >>> > > >>> Thank you for this prompt attempt. > > >>> Unfortunatelly, it does not help :( or maybe sort of, but the GUI still does not pop up. I have attached the stderr log. The resulting files that I get now are: > > >>> > > >>> %USERPROFILE%.icedtea > > >>> %USERPROFILE%.icedteasecurity > > >>> %USERPROFILE%.icedtea.appletTrustSettings > > >>> %USERPROFILE%.icedteasecuritytrusted.cacerts > > >>> > > >>> It seems to me like the file permissions facility in J2SE is broken on Windows systems, since the access rights system on Windows which is based on ACLs works entirely different than on U*ix systems. Besides, it has been introduced only since Java 6. I will have a closer look into this issue later this evening, and I am going to try to build netx on my Fedora VM. Updating to the latest JRE on Windows may help, although I am sceptical. Maybe there is some hope afterall. ;) > > >>> > > >>> Thanks again for bothering :) > > >>> Jacob > > >>> > > >> > > >> > > >> The attachment is missing :(( > > >> /me curious > > > > > > Hello Jiri, > > > > > > Sorry, the web mailer is lausy. :( So, here we go again. > > > > > > I have played a little bit with J2SE's access permissions facility on Windows, that is > > > java.io.File.setExecutable(boolean,boolean), java.io.File.setWriteable(boolean,boolean), and > > > java.io.File.setReadable(boolean,boolean). They obviously have no effect on Windows, so one cannot > > > rely on them. Besides, as far as I can tell the whole purpose of this fiddling with access > > > permissions on files is to get a locked file. IMHO the > > > net.sourceforge.jnlp.util.FileUtils.createRestrictedFile(File,boolean,boolean) is redundant and > > > totally misses the point. Actually, there is a file locking facility provided by J2SE via > > > java.nio.channels.FileLock. Although the semantics of java.nio.channels.FileLock can characterized > > > as best effort on varying platforms at best it probably should be used nevertheless. Infact, there > > > is even a utility class net.sourceforge.jnlp.util.lockingfile.LockedFile in netx. So, I am a little > > > bit confused. Why not use that? Correct me if I am wrong, but even if java.nio.c! > > > hannels.FileLock does not provide the desired semantics - let's say perhaps on Linux - fiddling > > > with file access permissions should not be the way to go. Instead, then the prefered way would be to > > > use buffers from java.nio (to get some sort of memory-mapped file) or java.io.BufferdIn/OutputStream > > > with java.io.PipedIn/OutputStream. This process of creating netx' data files should probably be > > > revised and refactored. > > > To cut a long story short, it still does not run on Windows. :D And, I probably will not have the > > > time to refactor it. So it is nice of you to help me out. > > > > > > Regards, > > > Jacob > > > > > > > > Ok. I have reproduced this on windows, and the attached "fix" is working. > > I myself consider locking file as little bit overpowered stuff, designed fot case that one applet > > will write record, whether other applet will in meantime read record, so I do not think there will > > be any harm by disabling on windows (as applets are not known to run on win(?)) > > > > J. > > > > ps - how looks PL? O:) From adomurad at icedtea.classpath.org Thu Apr 25 14:01:46 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 25 Apr 2013 21:01:46 +0000 Subject: /hg/icedtea-web: Fix a dead-lock bug that can cause Firefox to h... Message-ID: changeset 142217481a51 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=142217481a51 author: Adam Domurad date: Thu Apr 25 10:53:44 2013 -0400 Fix a dead-lock bug that can cause Firefox to hang. diffstat: ChangeLog | 14 +++++++ netx/net/sourceforge/jnlp/NetxPanel.java | 15 +++---- plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 30 ++------------- 3 files changed, 24 insertions(+), 35 deletions(-) diffs (149 lines): diff -r b0bef68756a6 -r 142217481a51 ChangeLog --- a/ChangeLog Thu Apr 25 10:28:08 2013 -0400 +++ b/ChangeLog Thu Apr 25 10:53:44 2013 -0400 @@ -1,3 +1,17 @@ +2013-04-25 Adam Domurad + + Fix a dead-lock that can cause (namely) Firefox to hang. + * netx/net/sourceforge/jnlp/NetxPanel.java + (appletAlive): Remove flag. + (isAlive): Remove getter. + (initialized): New, explicit initialization flag. + (isInitialized): New, getter. + (runLoader): Set initialization flag when done (whether errored or not). + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java + (waitForAppletInit): Wait on initialization flag from NetxPanel. + (handleMessage): Remove redundant waiting for init. Respond properly to + GetJavaObject in case of error/time-out. + 2013-04-25 Adam Domurad * tests/netx/unit/net/sourceforge/jnlp/AsyncCallTest.java: Unit tests for diff -r b0bef68756a6 -r 142217481a51 netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Thu Apr 25 10:28:08 2013 -0400 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Thu Apr 25 10:53:44 2013 -0400 @@ -39,7 +39,7 @@ /** * This panel calls into netx to run an applet, and pipes the display - * into a panel from gcjwebplugin. + * into a panel from the icedtea-web browser plugin. * * @author Francis Kung */ @@ -48,7 +48,7 @@ private PluginBridge bridge = null; private AppletInstance appInst = null; private SplashController splashController; - private boolean appletAlive; + private volatile boolean initialized; // We use this so that we can create exactly one thread group // for all panels with the same uKey. @@ -70,6 +70,7 @@ super(documentURL, params.getUnderlyingHashtable()); this.parameters = params; + this.initialized = false; String uniqueKey = params.getUniqueKey(getCodeBase()); synchronized(TGMapMutex) { @@ -78,7 +79,6 @@ uKeyToTG.put(uniqueKey, tg); } } - this.appletAlive = true; } @Override @@ -124,7 +124,6 @@ validate(); } } catch (Exception e) { - this.appletAlive = false; status = APPLET_ERROR; e.printStackTrace(); replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); @@ -133,6 +132,7 @@ // so that the applet's event listeners are signaled. // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer can properly stop waiting // in PluginAppletViewer.waitForAppletInit + this.initialized = true; dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); } } @@ -170,8 +170,8 @@ return appInst.getClassLoader(); } - public boolean isAlive() { - return handler != null && handler.isAlive() && this.appletAlive; + public boolean isInitialized() { + return initialized; } public ThreadGroup getThreadGroup() { @@ -191,9 +191,6 @@ } } - - - public void setAppletViewerFrame(SplashController framePanel) { splashController=framePanel; } diff -r b0bef68756a6 -r 142217481a51 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Apr 25 10:28:08 2013 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Apr 25 10:53:44 2013 -0400 @@ -652,8 +652,7 @@ panelLock.lock(); try { - while (panel.getApplet() == null && - panel.isAlive() && + while (!panel.isInitialized() && maxTimeToSleep > 0) { PluginDebug.debug("Waiting for applet panel ", panel, " to initialize..."); maxTimeToSleep -= waitTillTimeout(panelLock, panelLive, maxTimeToSleep); @@ -731,37 +730,16 @@ // object should belong to? Object o; - // First, wait for panel to instantiate - // Next, wait for panel to come alive - long maxTimeToSleep = APPLET_TIMEOUT; - panelLock.lock(); - try { - while (panel == null || !panel.isAlive()) { - maxTimeToSleep -= waitTillTimeout(panelLock, panelLive, - maxTimeToSleep); - - /* we already waited till timeout, give up here directly, - * instead of waiting 180s again in below waitForAppletInit() - */ - if(maxTimeToSleep < 0) { - streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + "Initialization timed out"); - return; - } - } - } - finally { - panelLock.unlock(); - } - // Wait for the panel to initialize // (happens in a separate thread) waitForAppletInit(panel); - PluginDebug.debug(panel, " -- ", panel.getApplet(), " -- ", panel.isAlive()); + PluginDebug.debug(panel, " -- ", panel.getApplet(), " -- initialized: ", panel.isInitialized()); // Still null? if (panel.getApplet() == null) { - streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + "Initialization timed out"); + streamhandler.write("instance " + identifier + " reference " + -1 + " fatalError: " + "Initialization failed"); + streamhandler.write("context 0 reference " + reference + " Error"); return; } From adomurad at icedtea.classpath.org Thu Apr 25 14:05:48 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 25 Apr 2013 21:05:48 +0000 Subject: /hg/icedtea-web: Add accidentally not included files Message-ID: changeset 8515c529e29c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8515c529e29c author: Adam Domurad date: Thu Apr 25 17:05:31 2013 -0400 Add accidentally not included files diffstat: ChangeLog | 5 + tests/netx/unit/sun/applet/PluginAppletViewerTest.java | 249 ++++++++++++++ tests/test-extensions/net/sourceforge/jnlp/AsyncCall.java | 102 +++++ tests/test-extensions/sun/applet/mock/PluginPipeMock.java | 121 ++++++ 4 files changed, 477 insertions(+), 0 deletions(-) diffs (497 lines): diff -r 142217481a51 -r 8515c529e29c ChangeLog --- a/ChangeLog Thu Apr 25 10:53:44 2013 -0400 +++ b/ChangeLog Thu Apr 25 17:05:31 2013 -0400 @@ -1,3 +1,8 @@ +2013-04-25 Adam Domurad + + Add accidentally not included files from "Tests & test extensions for + mocking the plugin input & output pipes." + 2013-04-25 Adam Domurad Fix a dead-lock that can cause (namely) Firefox to hang. diff -r 142217481a51 -r 8515c529e29c tests/netx/unit/sun/applet/PluginAppletViewerTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/sun/applet/PluginAppletViewerTest.java Thu Apr 25 17:05:31 2013 -0400 @@ -0,0 +1,249 @@ +package sun.applet; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.Callable; + +import net.sourceforge.jnlp.AsyncCall; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import sun.applet.mock.PluginPipeMock; + +public class PluginAppletViewerTest { + + /************************************************************************** + * Test setup * + **************************************************************************/ + + ThreadGroup spawnedForTestThreadGroup; // Set up before each test + PluginPipeMock pipeMock; // Set up before each test + + /* By providing custom implementations of the input stream & output stream used by PluginStreamHandler, + * we are able to mock the C++-side of the plugin. We do this by sending the messages the Java-side expects + * to receive. Additionally, we able to test that the Java-side sends the correct requests. + * See PluginPipeMock for more details. + */ + private void installPipeMock() { + AppletSecurityContextManager.addContext(0, new PluginAppletSecurityContext(0, false /* no security */)); + + pipeMock = new PluginPipeMock(); + + PluginStreamHandler streamHandler = new PluginStreamHandler(pipeMock.getResponseInputStream(), pipeMock.getRequestOutputStream()); + PluginAppletViewer.setStreamhandler(streamHandler); + PluginAppletViewer.setPluginCallRequestFactory(new PluginCallRequestFactory()); + + streamHandler.startProcessing(); + } + + /* Call installPipeMock, wrapping the threads it creates in a ThreadGroup. + * This allows us to stop the message handling threads we spawn, while normally + * this would be difficult as they are meant to be alive at all times. + */ + @Before + public void setupMockedMessageHandling() throws Exception { + spawnedForTestThreadGroup = new ThreadGroup("PluginAppletViewerTestThreadGroup") { + public void uncaughtException(Thread t, Throwable e) { + // Silent death for plugin message handler threads + } + }; + // Do set-up in a thread so we can pass along our thread-group, used for clean-up. + Thread initThread = new Thread(spawnedForTestThreadGroup, "InstallPipeMockThread") { + @Override + public void run() { + installPipeMock(); + } + }; + initThread.start(); + initThread.join(); + } + + @After + @SuppressWarnings("deprecation") // 'stop' must be used, 'interrupt' is too gentle. + public void cleanUpMessageHandlingThreads() throws Exception { + spawnedForTestThreadGroup.stop(); + } + + /************************************************************************** + * Test cases * + * A PluginStreamHandler is installed for each, see 'installPipeMock'. * + **************************************************************************/ + + @Test + public void testJavascriptCall() throws Exception { + /* JS call parameters */ + final int jsObjectID = 0; + final String callName = "testfunction"; + final Object[] arguments = { "testargument", 1 }; // Arbitrary objects + + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + public Object call() { + return PluginAppletViewer.call(jsObjectID, callName, arguments); + } + }); + + String message = pipeMock.getNextRequest(); + Object expectedReturn = new Object(); + pipeMock.sendResponse("context 0 reference " + + parseAndCheckJSCall(message, jsObjectID, callName, arguments) + + " JavaScriptCall " + storeObject(expectedReturn)); + + assertEquals(expectedReturn, call.join()); + } + + @Test + public void testJavascriptEval() throws Exception { + /* JS eval parameters */ + final int jsObjectID = 0; + final String callName = "testfunction"; + + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + public Object call() { + return PluginAppletViewer.eval(jsObjectID, callName); + } + }); + + String message = pipeMock.getNextRequest(); + Object expectedReturn = new Object(); + pipeMock.sendResponse("context 0 reference " + + parseAndCheckJSEval(message, jsObjectID, callName) + + " JavaScriptEval " + storeObject(expectedReturn)); + + assertEquals(expectedReturn, call.join()); + } + + @Test + public void testJavascriptFinalize() throws Exception { + final int jsObjectID = 0; + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + public Void call() { + PluginAppletViewer.JavaScriptFinalize(jsObjectID); + return null; + } + }); + + String message = pipeMock.getNextRequest(); + pipeMock.sendResponse("context 0 reference " + + parseAndCheckJSFinalize(message, jsObjectID) + + " JavaScriptFinalize "); + + call.join(); + } + + @Test + public void testJavascriptToString() throws Exception { + final int jsObjectID = 0; + AsyncCall call = AsyncCall.startWithTimeOut(new Callable() { + public String call() { + return PluginAppletViewer.javascriptToString(jsObjectID); + } + }); + + String message = pipeMock.getNextRequest(); + + String expectedReturn = "testreturn"; + pipeMock.sendResponse("context 0 reference " + + parseAndCheckJSToString(message, jsObjectID) + + " JavaScriptToString " + storeObject(expectedReturn)); + + assertEquals(expectedReturn, call.join()); + } + + /************************************************************************** + * Test utilities * + **************************************************************************/ + + /* + * Helpers for manipulating the object mapping using to refer to objects in + * the plugin + */ + private static Object getStoredObject(int id) { + return PluginObjectStore.getInstance().getObject(id); + } + + private static int storeObject(Object obj) { + PluginObjectStore.getInstance().reference(obj); + return PluginObjectStore.getInstance().getIdentifier(obj); + } + + /* + * Asserts that the message is a valid javascript request and returns the + * reference number + */ + private static int parseAndCheckJSMessage(String message, int messageLength, + String messageType, int contextObjectID) { + System.out.println(message); + String[] parts = message.split(" "); + assertEquals(messageLength, parts.length); + + assertEquals("instance", parts[0]); + assertEquals("0", parts[1]); // JSCall's are prefixed with a dummy '0' instance + assertEquals("reference", parts[2]); + int reference = Integer.parseInt(parts[3]); + assertEquals(messageType, parts[4]); + + assertEquals(contextObjectID, Integer.parseInt(parts[5])); + return reference; + } + + /* + * Asserts that the message is a valid javascript request and returns the + * reference number + */ + private static int parseAndCheckJSMessage(String message, + String messageType, int contextObjectID, String stringArg, + Object[] arguments) { + int expectedLength = 7 + arguments.length; + int reference = parseAndCheckJSMessage(message, expectedLength, messageType, contextObjectID); + + String[] parts = message.split(" "); + assertEquals(stringArg, getStoredObject(Integer.parseInt(parts[6]))); + + for (int i = 0; i < arguments.length; i++) { + int objectID = Integer.parseInt(parts[7+i]); + assertEquals(arguments[i], getStoredObject(objectID)); + } + + return reference; + } + + /* + * Asserts that the message is a valid javascript method call request, and + * returns the reference number + */ + public static int parseAndCheckJSCall(String message, int contextObjectID, + String callName, Object[] arguments) { + return parseAndCheckJSMessage(message, "Call", contextObjectID, + callName, arguments); + } + + /* + * Asserts that the message is a valid javascript Eval request, and returns + * the reference number + */ + public static int parseAndCheckJSEval(String message, int contextObjectID, + String evalString) { + return parseAndCheckJSMessage(message, "Eval", contextObjectID, + evalString, new Object[] {}); + } + + /* + * Asserts that the message is a valid javascript Finalize request, and returns + * the reference number + */ + public static int parseAndCheckJSFinalize(String message, int contextObjectID) { + int expectedLength = 6; + return parseAndCheckJSMessage(message, expectedLength, "Finalize", contextObjectID); + } + + /* + * Asserts that the message is a valid javascript ToString request, and returns + * the reference number + */ + public static int parseAndCheckJSToString(String message, int contextObjectID) { + int expectedLength = 6; + return parseAndCheckJSMessage(message, expectedLength, "ToString", contextObjectID); + } +} \ No newline at end of file diff -r 142217481a51 -r 8515c529e29c tests/test-extensions/net/sourceforge/jnlp/AsyncCall.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extensions/net/sourceforge/jnlp/AsyncCall.java Thu Apr 25 17:05:31 2013 -0400 @@ -0,0 +1,102 @@ +package net.sourceforge.jnlp; + +import java.util.concurrent.Callable; + +/** + * A call that runs on a separate thread, with an optional timeout. It takes a runnable and allows + * joining. + * + * On join, throws any exceptions that occurred within the call, or a TimeOutException if + * it did not finish. Returns the value from the call. + */ +public class AsyncCall { + static public class TimeOutException extends RuntimeException { + public TimeOutException() { + super("Call did not finish within the allocated time."); + } + } + + private Thread handler; + private Callable callable; + private long timeout; + private T callResult; + + /* Captures exception from async call */ + private Exception asyncException = null; + + /* Create an AsyncCall with a given time-out */ + public AsyncCall(Callable callable, long timeout) { + this.callable = callable; + this.timeout = timeout; + this.handler = new HandlerThread(); + } + + /* Create an AsyncCall with (effectively) no time-out */ + public AsyncCall(Callable call) { + this(call, Long.MAX_VALUE); + } + + /* Chains construction + start for convenience */ + public static AsyncCall startWithTimeOut(Callable callable, long timeout) { + AsyncCall asyncCall = new AsyncCall(callable, timeout); + asyncCall.start(); + return asyncCall; + } + + /* Chains construction + start for convenience */ + public static AsyncCall startWithTimeOut(Callable callable) { + return startWithTimeOut(callable, 1000); // Default timeout of 1 second + } + + public void start() { + this.handler.start(); + } + + // Rethrows exceptions from handler thread, and throws TimeOutException in case of time-out. + public T join() throws Exception { + handler.join(); + if (asyncException != null) { + throw asyncException; + } + return callResult; + } + + /* The handler thread is responsible for timing-out the Callable thread. + * The resulting thread */ + private class HandlerThread extends Thread { + @Override + public void run() { + Thread thread = new Thread() { + @Override + public void run() { + try { + /* Capture result of the call */ + callResult = callable.call(); + } catch (Exception e) { + /* In case of exception, capture for re-throw */ + asyncException = e; + } + handler.interrupt(); // Finish early + } + }; + + thread.start(); + + try { + Thread.sleep(timeout); + } catch (InterruptedException e) { + // Finish early + return; + } + + if (thread.isAlive()) { + asyncException = new TimeOutException(); + } + + // Make sure the thread is finished + while (thread.isAlive()) { + thread.interrupt(); + } + } + } +} diff -r 142217481a51 -r 8515c529e29c tests/test-extensions/sun/applet/mock/PluginPipeMock.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extensions/sun/applet/mock/PluginPipeMock.java Thu Apr 25 17:05:31 2013 -0400 @@ -0,0 +1,121 @@ +package sun.applet.mock; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.StringReader; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +/** + * Helper for getting an input & output stream for use with PluginStreamHandler. + * Provides a convenient way of reading the Java requests and sending mocked + * plugin responses. + * + * The handling of these requests should be done on a different thread from the + * tested method, as icedtea-web will block waiting for a reply after sending a + * request. + */ +public class PluginPipeMock { + private ResponseInputPipeMock responseInputStream = new ResponseInputPipeMock(); + private RequestOutputPipeMock requestOutputStream = new RequestOutputPipeMock(); + + /* + * A queue of mocked responses that are sent as replies to icedtea-web + * Java-side requests. + */ + private BlockingQueue mockedResponseQueue = new LinkedBlockingQueue(); + + /* + * A queue of actual (ie, not mocked) requests that come from methods + * under test. + */ + private BlockingQueue requestQueue = new LinkedBlockingQueue(); + + public InputStream getResponseInputStream() { + return responseInputStream; + } + + public OutputStream getRequestOutputStream() { + return requestOutputStream; + } + + public String getNextRequest() { + try { + return requestQueue.take(); + } catch (InterruptedException e) { + // Nothing to do + return null; + } + } + + public void sendResponse(String response) { + try { + mockedResponseQueue.put(response); + } catch (InterruptedException e) { + // Nothing to do + } + } + + /** + * Queues mocked responses and sends them as replies to icedtea-web. A + * synchronized message queue is read from. Blocks until it gets the next + * message. + */ + private class ResponseInputPipeMock extends InputStream { + private StringReader reader = null; + + @Override + public int read() throws IOException { + try { + while (true) { + if (reader == null) { + reader = new StringReader(mockedResponseQueue.take() + '\n'); + } + int chr = reader.read(); + if (chr == -1) { + reader = null; + continue; + } + return chr; + } + } catch (InterruptedException e) { + // Nothing to do + return -1; + } + } + + /* Necessary for correct behaviour with BufferedReader! */ + @Override + public int read(byte b[], int off, int len) throws IOException { + if (len == 0) { + return 0; + } + b[off] = (byte) read(); + return 1; + } + } + + /** + * Outputs requests from icedtea-web as a stream of lines. A synchronized + * message queue is written to. + */ + private class RequestOutputPipeMock extends OutputStream { + private StringBuilder lineBuffer = new StringBuilder(); + + @Override + public synchronized void write(int b) throws IOException { + try { + char chr = (char) b; + if (chr == '\0') { + requestQueue.put(lineBuffer.toString()); + lineBuffer.setLength(0); + } else { + lineBuffer.append((char) b); + } + } catch (InterruptedException e) { + // Nothing to do + } + } + } +} From gitne at excite.co.jp Thu Apr 25 14:33:00 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 06:33:00 +0900 Subject: =?ISO-2022-JP?B?W2ljZWR0ZWEtd2ViXVtyZmNdIFBvbGlzaCBsb2NhbGl6YXRpb24gYW5kIG90aGVyIG1lc3NhZ2VzIGNsZWFudXA=?= Message-ID: <201304252133.r3PLX0MS021661@mail-web03.excite.co.jp> Hello there! Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. 2013-04-25 Jacob Wisor * netx/net/sourceforge/jnlp/resources/Messages.properties: Streamlined names, removed typos, removed unneccessary trailing white spaces, fixed inconsistencies * netx/net/sourceforge/jnlp/resources/Messages_de.properties: Applied all changes from modified source Polished and reformulated some messages to better fit the localization guide Made a few translation more precise or correct Syntactic adjustments * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: Added initial Polish localization Happy reviewing! ;) Jacob -------------- next part -------------- A non-text attachment was scrubbed... Name: Polish localization and message polishing.patch Type: text/x-patch Size: 80062 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/23a5e739/ISO-2022-JPBUG9saXNoIGxvY2FsaXphdGlvbiBhbmQgbWVzc2FnZSBwb2xpc2hpbmcucGF0Y2g.patch From gitne at excite.co.jp Thu Apr 25 17:20:31 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 09:20:31 +0900 Subject: =?ISO-2022-JP?B?W2ljZWR0ZWEtd2ViXVtyZmNdIGRlIGFuZCBwbCBsb2NhbGl6YXRpb25zIG9mIGl0d2ViLXNldHRpbmdzLmRlc2t0b3A=?= Message-ID: <201304260020.r3Q0KVQB020219@mail-web02.excite.co.jp> 2013-04-26 Jacob Wisor * itweb-settings.desktop.in: Added de and pl localized names and comments Added keywords Happy reviewing! ;) Jacob -------------- next part -------------- A non-text attachment was scrubbed... Name: itweb-settings.desktop.in.patch Type: text/x-patch Size: 716 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/75851e5f/ISO-2022-JPBaXR3ZWItc2V0dGluZ3MuZGVza3RvcC5pbi5wYXRjaA.patch From gitne at excite.co.jp Thu Apr 25 18:32:45 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 10:32:45 +0900 Subject: =?ISO-2022-JP?B?W2ljZWR0ZWEtd2ViXSBCdWlsZCBlcnJvcg==?= Message-ID: <201304260132.r3Q1Wjnf010199@mail-web01.excite.co.jp> Hello! I get a build error at [javac] netx\net\sourceforge\jnlp\runtime\JNLPClassLoader.java:897: closeSilently(java.io.Closeable) in net.sourceforge.jnlp.util.StreamUtils cannot be applied to (net.sourceforge.jnlp.util.JarFile) [javac] StreamUtils.closeSilently(mainJar); after rebuild. The error seems to be due to change 685:d5d3f8a62906. Sincerely, Jacob From andrew at icedtea.classpath.org Thu Apr 25 21:54:16 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 26 Apr 2013 04:54:16 +0000 Subject: /hg/icedtea6: 9 new changesets Message-ID: changeset c9be0d1330dc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c9be0d1330dc author: Andrew John Hughes date: Fri Apr 26 03:06:47 2013 +0100 Add 2013/04/16 security patches. 2013-04-17 Andrew John Hughes * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: Reapplied as a security patch pre-requisite. * patches/security/20130201/8001235.patch: Dropped as included in JAXP tarball used. * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. * Makefile.am: (JAXWS_DROP_URL): Removed. (JAXWS_DROP_ZIP): Likewise. (JAXWS_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAF_DROP_ZIP): Likewise. (JAF_DROP_SHA256SUM): Likewise. (JAF_DROP_URL): Likewise. (JAXP_DROP_URL): Likewise. (JAXP_DROP_ZIP): Likewise. (JAXP_DROP_SHA256SUM): Likewise. (DROP_PATCHES): Add patches providing code previously provided by drop zips. (SECURITY_PATCHES): Updated. (ICEDTEA_PATCHES): Add DROP_PATCHES. Remove 6669869 duplicate. (ICEDTEA_ENV): Remove ALT_DROPS_DIR. (download-jaxp-drop): Removed. (clean-download-jaxp-drop): Likewise. (download-jaf-drop): Likewise. (clean-download-jaf-drop): Likewise. (download-jaxws-drop): Likewise. (clean-download-jaxws-drop): Likewise. (download-drops): Likewise. (clean-drops): Likewise. (download): Don't depend on download-drops. (clean-download): Likewise for clean-drops. * NEWS: Add security issues, backports and mention drop move. * acinclude.m4: (IT_WITH_JAXP_DROP_ZIP): Removed. (IT_WITH_JAF_DROP_ZIP): Likewise. (IT_WITH_JAXWS_DROP_ZIP): Likewise. * configure.ac: Don't call removed macros above. * patches/ecj/override.patch: Add new cases introduced by security patches (sigh). * patches/libraries.patch, * patches/nomotif-6706121.patch: Regenerated against security patches. * patches/openjdk/5102804-memory_leak.patch, * patches/openjdk/6501644-icu_sync.patch: Backports for security patches. * patches/openjdk/6633275-shaped_translucent_windows.patch: Remove copyright notice changes broken by 8006790 security patch. * patches/openjdk/6669869-queries_per_appcontext.patch, * patches/openjdk/6886358-layout_update.patch, * patches/openjdk/6963811-deadlock_fix.patch, * patches/openjdk/7017324-kerning_crash.patch, * patches/openjdk/7064279-fixup.patch, * patches/openjdk/7064279-resource_release.patch, * patches/openjdk/8004302-soap_test_failure.patch: More backports for security patches. * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, * patches/openjdk/jaxp144_05.patch: Add drop zips in patch form. * patches/security/20130416/6657673-fixup.patch, * patches/security/20130416/6657673.patch, * patches/security/20130416/7200507.patch, * patches/security/20130416/8000724.patch, * patches/security/20130416/8001031.patch, * patches/security/20130416/8001040.patch, * patches/security/20130416/8001322.patch, * patches/security/20130416/8001329.patch, * patches/security/20130416/8003335.patch, * patches/security/20130416/8003445.patch, * patches/security/20130416/8003543.patch, * patches/security/20130416/8004261.patch, * patches/security/20130416/8004336.patch, * patches/security/20130416/8004986.patch, * patches/security/20130416/8005432.patch, * patches/security/20130416/8005943.patch, * patches/security/20130416/8006309.patch, * patches/security/20130416/8006435.patch, * patches/security/20130416/8006790.patch, * patches/security/20130416/8006795.patch, * patches/security/20130416/8007406.patch, * patches/security/20130416/8007617.patch, * patches/security/20130416/8009699.patch: Add security patches. * patches/xjc.patch: Regenerate JAXWS patch against sources, not drop system. 2013-04-12 Omair Majid * patches/security/20130416/8007667.patch, * patches/security/20130416/8007918.patch, * patches/security/20130416/8009305.patch, * patches/security/20130416/8009814.patch, * patches/security/20130416/8009857.patch: Add security patches. changeset 0115b40df976 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0115b40df976 author: Andrew John Hughes date: Fri Apr 26 03:10:41 2013 +0100 PR1402: Support glibc < 2.17 with AArch64 patch 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Fix to apply against older HotSpot. 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Define EM_AARCH64 for legacy systems with glibc earlier than 2.17. changeset 13cfe757d5ee in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=13cfe757d5ee author: Andrew John Hughes date: Fri Apr 26 03:15:18 2013 +0100 RH952389: Restrict temp file permissions. 2013-04-17 Andrew John Hughes * ChangeLog: Move Elliott's entry to correct position. * Makefile.am: (ICEDTEA_PATCHES): Fix path to previous patch. * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: Moved from here to... * patches/jaxws-tempfiles-ioutils-6.patch: ...here as not an upstream OpenJDK patch. 2013-04-17 Elliott Baron * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: Restrict temp file permissions. * Makefile.am: (ICEDTEA_PATCHES): Added new patch. changeset 2701f46e49a0 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2701f46e49a0 author: Andrew John Hughes date: Fri Apr 26 03:17:57 2013 +0100 Give xalan/xerces access to their own internal packages. 2013-04-18 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/object-factory-cl-internal.patch: Patch to give xalan/xerces access to their own internal packages. changeset 0bf8e7d60829 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0bf8e7d60829 author: Andrew John Hughes date: Fri Apr 19 11:38:18 2013 +0100 Fix patch to apply on RHEL 5. 2013-04-19 Jiri Vanek * patches/security/20130416/8007667.patch: Fix patch format to apply on RHEL 5. changeset c483fccf4758 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c483fccf4758 author: Andrew John Hughes date: Fri Apr 26 03:20:56 2013 +0100 Fix Backport from S6657673. 2013-04-19 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/security/20130416/6657673.patch: Removed {parser,transform}.FactoryFinder hunks. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Backported {parser,transform}.FactoryFinder fixes from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. changeset 4c03cba06c11 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4c03cba06c11 author: Elliott Baron date: Mon Apr 22 17:13:26 2013 -0400 Split 6657673-jaxp-backport-factoryfinder patch into two. 2013-04-22 Elliott Baron * Makefile.am: (ICEDTEA_PATCHES): Removed one patch, split it into two. * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: Removed. Split into patches below. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: First part of removed patch. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Second part of removed patch. changeset 797c2d24d89f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=797c2d24d89f author: Andrew John Hughes date: Fri Apr 26 03:31:01 2013 +0100 Cleanup from previous commit. 2013-04-24 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Rename patches. * NEWS: List backports in previous change correctly. * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: Moved to... * patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch: ...this. * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: Moved to.. * patches/security/20130416/6657673-factory_finder.patch: ...this. changeset 3e701dcab7d4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3e701dcab7d4 author: Andrew John Hughes date: Fri Apr 26 03:32:15 2013 +0100 S8009530: ICU Kern table support broken 2013-04-24 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/openjdk/8009530-icu_kern_table_support_broken.patch: Backported from 7u. diffstat: ChangeLog | 182 + INSTALL | 3 - Makefile.am | 179 +- acinclude.m4 | 63 - configure.ac | 3 - patches/aarch64.patch | 21 +- patches/ecj/override.patch | 59 + patches/jaxws-tempfiles-ioutils-6.patch | 176 + patches/libraries.patch | 252 +- patches/nomotif-6706121.patch | 218 +- patches/object-factory-cl-internal.patch | 384 + patches/openjdk/5102804-memory_leak.patch | 429 + patches/openjdk/6501644-icu_sync.patch | 8066 + patches/openjdk/6633275-shaped_translucent_windows.patch | 49 - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch | 346 - patches/openjdk/6669869-queries_per_appcontext.patch | 355 + patches/openjdk/6886358-layout_update.patch | 13847 + patches/openjdk/6963811-deadlock_fix.patch | 42 + patches/openjdk/7017324-kerning_crash.patch | 101 + patches/openjdk/7064279-fixup.patch | 71 + patches/openjdk/7064279-resource_release.patch | 436 + patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch | 298 + patches/openjdk/8004302-soap_test_failure.patch | 75 + patches/openjdk/8009530-icu_kern_table_support_broken.patch | 332 + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch | 449213 +++++++ patches/openjdk/jaxp144_05.patch | 595585 ++++++++++ patches/security/20130201/8001235.patch | 37 - patches/security/20130416/6657673-factory_finder.patch | 54 + patches/security/20130416/6657673-fixup.patch | 229 + patches/security/20130416/6657673.patch | 9494 + patches/security/20130416/7200507.patch | 230 + patches/security/20130416/8000724.patch | 1368 + patches/security/20130416/8001031.patch | 5457 + patches/security/20130416/8001040.patch | 113 + patches/security/20130416/8001322.patch | 61 + patches/security/20130416/8001329.patch | 32 + patches/security/20130416/8003335.patch | 63 + patches/security/20130416/8003445.patch | 77 + patches/security/20130416/8003543.patch | 236 + patches/security/20130416/8004261.patch | 142 + patches/security/20130416/8004336.patch | 29 + patches/security/20130416/8004986.patch | 374 + patches/security/20130416/8005432.patch | 518 + patches/security/20130416/8005943.patch | 202 + patches/security/20130416/8006309.patch | 22 + patches/security/20130416/8006435.patch | 76 + patches/security/20130416/8006790.patch | 166 + patches/security/20130416/8006795.patch | 35 + patches/security/20130416/8007406.patch | 31 + patches/security/20130416/8007617.patch | 376 + patches/security/20130416/8007667.patch | 579 + patches/security/20130416/8007918.patch | 357 + patches/security/20130416/8009305.patch | 68 + patches/security/20130416/8009699.patch | 25 + patches/security/20130416/8009814.patch | 27 + patches/security/20130416/8009857.patch | 66 + patches/xjc.patch | 56 +- 57 files changed, 1090488 insertions(+), 897 deletions(-) diffs (truncated from 1093138 to 500 lines): diff -r d5ea2fe9da2d -r 3e701dcab7d4 ChangeLog --- a/ChangeLog Thu Apr 25 18:18:04 2013 +0100 +++ b/ChangeLog Fri Apr 26 03:32:15 2013 +0100 @@ -1,3 +1,185 @@ +2013-04-24 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/openjdk/8009530-icu_kern_table_support_broken.patch: + Backported from 7u. + +2013-04-24 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Rename patches. + correctly. + * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: + Moved to... + * patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch: + ...this. + * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: + Moved to.. + * patches/security/20130416/6657673-factory_finder.patch: + ...this. + +2013-04-22 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Removed one patch, split it into two. + * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: + Removed. Split into patches below. + * patches/openjdk/7133220-factory-finder-parser-transform-useBSClassLoader.patch: + First part of removed patch. + * patches/openjdk/6657673-factory-finder-parser-transform-internal-packages.patch: + Second part of removed patch. + +2013-04-19 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/security/20130416/6657673.patch: + Removed {parser,transform}.FactoryFinder hunks. + * patches/security/20130416/6657673-jaxp-backport-factoryfinder.patch: + Backported {parser,transform}.FactoryFinder fixes + from jdk7u-dev changesets: 4a61ac055189 & 38d4d23d167c. + +2013-04-19 Jiri Vanek + + * patches/security/20130416/8007667.patch: + Fix patch format to apply on RHEL 5. + +2013-04-18 Elliott Baron + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/object-factory-cl-internal.patch: + Patch to give xalan/xerces access to their own internal + packages. + +2013-04-17 Andrew John Hughes + + * ChangeLog: + Move Elliott's entry to correct position. + * Makefile.am: + (ICEDTEA_PATCHES): Fix path to previous patch. + * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: + Moved from here to... + * patches/jaxws-tempfiles-ioutils-6.patch: + ...here as not an upstream OpenJDK patch. + +2013-04-17 Elliott Baron + + * patches/openjdk/jaxws-tempfiles-ioutils-6.patch: + Restrict temp file permissions. + * Makefile.am: + (ICEDTEA_PATCHES): Added new patch. + +2013-04-17 Andrew John Hughes + + * patches/aarch64.patch: + Fix to apply against older HotSpot. + +2013-04-17 Andrew John Hughes + + PR1402: Support glibc < 2.17 with AArch64 patch + * patches/aarch64.patch: + Define EM_AARCH64 for legacy systems + with glibc earlier than 2.17. + +2013-04-17 Andrew John Hughes + + * patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch: + Reapplied as a security patch pre-requisite. + * patches/security/20130201/8001235.patch: + Dropped as included in JAXP tarball used. + * INSTALL: Remove --with-{jaxp,jaf,jaxws}-drop-zip documentation. + * Makefile.am: + (JAXWS_DROP_URL): Removed. + (JAXWS_DROP_ZIP): Likewise. + (JAXWS_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAF_DROP_ZIP): Likewise. + (JAF_DROP_SHA256SUM): Likewise. + (JAF_DROP_URL): Likewise. + (JAXP_DROP_URL): Likewise. + (JAXP_DROP_ZIP): Likewise. + (JAXP_DROP_SHA256SUM): Likewise. + (DROP_PATCHES): Add patches providing code + previously provided by drop zips. + (SECURITY_PATCHES): Updated. + (ICEDTEA_PATCHES): Add DROP_PATCHES. Remove + 6669869 duplicate. + (ICEDTEA_ENV): Remove ALT_DROPS_DIR. + (download-jaxp-drop): Removed. + (clean-download-jaxp-drop): Likewise. + (download-jaf-drop): Likewise. + (clean-download-jaf-drop): Likewise. + (download-jaxws-drop): Likewise. + (clean-download-jaxws-drop): Likewise. + (download-drops): Likewise. + (clean-drops): Likewise. + (download): Don't depend on download-drops. + (clean-download): Likewise for clean-drops. + * acinclude.m4: + (IT_WITH_JAXP_DROP_ZIP): Removed. + (IT_WITH_JAF_DROP_ZIP): Likewise. + (IT_WITH_JAXWS_DROP_ZIP): Likewise. + * configure.ac: Don't call removed macros above. + * patches/ecj/override.patch: Add new cases introduced + by security patches (sigh). + * patches/libraries.patch, + * patches/nomotif-6706121.patch: + Regenerated against security patches. + * patches/openjdk/5102804-memory_leak.patch, + * patches/openjdk/6501644-icu_sync.patch: + Backports for security patches. + * patches/openjdk/6633275-shaped_translucent_windows.patch: + Remove copyright notice changes broken by 8006790 security patch. + * patches/openjdk/6669869-queries_per_appcontext.patch, + * patches/openjdk/6886358-layout_update.patch, + * patches/openjdk/6963811-deadlock_fix.patch, + * patches/openjdk/7017324-kerning_crash.patch, + * patches/openjdk/7064279-fixup.patch, + * patches/openjdk/7064279-resource_release.patch, + * patches/openjdk/8004302-soap_test_failure.patch: + More backports for security patches. + * patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch, + * patches/openjdk/jaxp144_05.patch: + Add drop zips in patch form. + * patches/security/20130416/6657673-fixup.patch, + * patches/security/20130416/6657673.patch, + * patches/security/20130416/7200507.patch, + * patches/security/20130416/8000724.patch, + * patches/security/20130416/8001031.patch, + * patches/security/20130416/8001040.patch, + * patches/security/20130416/8001322.patch, + * patches/security/20130416/8001329.patch, + * patches/security/20130416/8003335.patch, + * patches/security/20130416/8003445.patch, + * patches/security/20130416/8003543.patch, + * patches/security/20130416/8004261.patch, + * patches/security/20130416/8004336.patch, + * patches/security/20130416/8004986.patch, + * patches/security/20130416/8005432.patch, + * patches/security/20130416/8005943.patch, + * patches/security/20130416/8006309.patch, + * patches/security/20130416/8006435.patch, + * patches/security/20130416/8006790.patch, + * patches/security/20130416/8006795.patch, + * patches/security/20130416/8007406.patch, + * patches/security/20130416/8007617.patch, + * patches/security/20130416/8009699.patch: + Add security patches. + * patches/xjc.patch: + Regenerate JAXWS patch against sources, not + drop system. + +2013-04-12 Omair Majid + + * patches/security/20130416/8007667.patch, + * patches/security/20130416/8007918.patch, + * patches/security/20130416/8009305.patch, + * patches/security/20130416/8009814.patch, + * patches/security/20130416/8009857.patch: + Add security patches. + 2013-04-25 Andrew John Hughes * Makefile.am: diff -r d5ea2fe9da2d -r 3e701dcab7d4 INSTALL --- a/INSTALL Thu Apr 25 18:18:04 2013 +0100 +++ b/INSTALL Fri Apr 26 03:32:15 2013 +0100 @@ -145,9 +145,6 @@ * --with-openjdk-src-zip: Specify the location of the OpenJDK tarball to avoid downloading. * --with-hotspot-src-zip: Specify the location of the HotSpot tarball to avoid downloading. * --with-alt-jar: Use the specified jar binary in the second stage rather than the one just built. -* --with-jaxp-drop-zip: Specify the location of the JAXP source drop zip file to avoid downloading. -* --with-jaf-drop-zip: Specify the location of the JAF source drop zip file to avoid downloading. -* --with-jaxws-drop-zip: Specify the location of the JAXWS source drop zip file to avoid downloading. * --with-cacao-home: Specify the location of an installed CACAO to use rather than downloading and building one. * --with-cacao-src-zip: Specify the location of a CACAO tarball to avoid downloading. diff -r d5ea2fe9da2d -r 3e701dcab7d4 Makefile.am --- a/Makefile.am Thu Apr 25 18:18:04 2013 +0100 +++ b/Makefile.am Fri Apr 26 03:32:15 2013 +0100 @@ -17,15 +17,6 @@ JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz -JAXWS_DROP_URL = http://icedtea.classpath.org/download/drops -JAXWS_DROP_ZIP = jdk6-jaxws2_1_6-2011_06_13.zip -JAXWS_DROP_SHA256SUM = 229040544e791f44906e8e7b6f6faf503c730a5d854275135f3925490d5c3be3 -JAF_DROP_URL = http://icedtea.classpath.org/download/drops -JAF_DROP_ZIP = jdk6-jaf-b20.zip -JAF_DROP_SHA256SUM = 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 -JAXP_DROP_URL = http://icedtea.classpath.org/download/drops -JAXP_DROP_ZIP = jaxp144_04.zip -JAXP_DROP_SHA256SUM = 490f696218c1fed9cb180680af883fe309b414fec232e9cec19645e12ad0b43c OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk6/jdk6 HOTSPOT_SRC_ZIP = hotspot.tar.gz @@ -266,6 +257,10 @@ ICEDTEA_FSG_PATCHES = +DROP_PATCHES = \ + patches/openjdk/jaf-b20_jaxws2-1_6_2011_06_13.patch \ + patches/openjdk/jaxp144_05.patch + SECURITY_PATCHES = \ patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch \ patches/security/20130201/7201068.patch \ @@ -295,7 +290,6 @@ patches/security/20130201/8001242.patch \ patches/security/20130201/8001972.patch \ patches/security/20130201/8002325.patch \ - patches/security/20130201/8001235.patch \ patches/security/20130219/8006446.patch \ patches/security/20130219/8006777.patch \ patches/security/20130219/8007688.patch \ @@ -303,16 +297,56 @@ patches/security/20130304/8007675.patch \ patches/openjdk/8009641-8007675_build_fix.patch \ patches/openjdk/7036559-concurrenthashmap_improvements.patch \ - patches/security/20130416/8009063.patch + patches/security/20130416/8009063.patch \ + patches/openjdk/8004302-soap_test_failure.patch \ + patches/security/20130416/6657673.patch \ + patches/security/20130416/6657673-fixup.patch \ + patches/openjdk/7133220-factory_finder_parser_transform_useBSClassLoader.patch \ + patches/security/20130416/6657673-factory_finder.patch \ + patches/openjdk/6669869-queries_per_appcontext.patch \ + patches/openjdk/5102804-memory_leak.patch \ + patches/openjdk/6963811-deadlock_fix.patch \ + patches/openjdk/7064279-resource_release.patch \ + patches/openjdk/7064279-fixup.patch \ + patches/security/20130416/7200507.patch \ + patches/security/20130416/8000724.patch \ + patches/security/20130416/8004986.patch \ + patches/openjdk/6501644-icu_sync.patch \ + patches/openjdk/6886358-layout_update.patch \ + patches/security/20130416/8001031.patch \ + patches/openjdk/7017324-kerning_crash.patch \ + patches/security/20130416/8001040.patch \ + patches/security/20130416/8001322.patch \ + patches/security/20130416/8001329.patch \ + patches/security/20130416/8003335.patch \ + patches/security/20130416/8003445.patch \ + patches/security/20130416/8003543.patch \ + patches/security/20130416/8004261.patch \ + patches/security/20130416/8005432.patch \ + patches/security/20130416/8005943.patch \ + patches/security/20130416/8006435.patch \ + patches/security/20130416/8006790.patch \ + patches/security/20130416/8006795.patch \ + patches/security/20130416/8007406.patch \ + patches/security/20130416/8007617.patch \ + patches/security/20130416/8007667.patch \ + patches/security/20130416/8007918.patch \ + patches/security/20130416/8009305.patch \ + patches/security/20130416/8009814.patch \ + patches/security/20130416/8009857.patch if !WITH_ALT_HSBUILD SECURITY_PATCHES += \ - patches/security/20130201/8001307.patch + patches/security/20130201/8001307.patch \ + patches/security/20130416/8004336.patch \ + patches/security/20130416/8006309.patch \ + patches/security/20130416/8009699.patch endif SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch ICEDTEA_PATCHES = \ + $(DROP_PATCHES) \ $(SECURITY_PATCHES) \ patches/openjdk/4993545-nativeinlightfixer.patch \ patches/openjdk/6637796-set_bounds.patch \ @@ -459,7 +493,6 @@ patches/openjdk/6390045-error_cannot_access_java_lang_void.patch \ patches/openjdk/6752638-preferLocaleFonts_throws_NPE.patch \ patches/openjdk/5047314-Collator_compare_runs_indefinitely.patch \ - patches/openjdk/6669869-Beans_isDesignTime_should_be_per-AppContext.patch \ patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch \ patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch \ patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch \ @@ -508,7 +541,10 @@ patches/openjdk/7046929-fix_t6397104_test_failure.patch \ patches/openjdk/7024568-long_method_resolution_oom_error.patch \ patches/openjdk/7003595-incompatibleclasschangeerror.patch \ - patches/openjdk/6500343-bad_code_from_conditionals.patch + patches/openjdk/6500343-bad_code_from_conditionals.patch \ + patches/jaxws-tempfiles-ioutils-6.patch \ + patches/object-factory-cl-internal.patch \ + patches/openjdk/8009530-icu_kern_table_support_broken.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ @@ -718,7 +754,6 @@ DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ DEBUG_CLASSFILES="true" \ DEBUG_BINARIES="true" \ - ALT_DROPS_DIR="$(abs_top_builddir)/drops" \ VERBOSE="$(VERBOSE)" \ ALT_OUTPUTDIR="$(BUILD_OUTPUT_DIR)" \ STATIC_CXX="false" @@ -913,98 +948,6 @@ clean-hgforest: rm -f stamps/hgforest.stamp -stamps/download-jaxp-drop.stamp: - mkdir -p drops -if USE_ALT_JAXP_DROP_ZIP - ln -sf $(ALT_JAXP_DROP_ZIP) drops/$(JAXP_DROP_ZIP) -endif - if ! echo "$(JAXP_DROP_SHA256SUM) drops/$(JAXP_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if test "x$(enable_downloading)" = "xyes"; then \ - if [ -f drops/$(JAXP_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAXP_DROP_ZIP) drops/$(JAXP_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAXP_DROP_URL)/$(JAXP_DROP_ZIP) -O drops/$(JAXP_DROP_ZIP); \ - if ! echo "$(JAXP_DROP_SHA256SUM) drops/$(JAXP_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaxp drop zip"; false; \ - fi; \ - else \ - echo "ERROR: No up-to-date JAXP drop zip available"; exit -1; \ - fi ; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaxp-drop: - rm -f drops/$(JAXP_DROP_ZIP) - rm -f stamps/download-jaxp-drop.stamp - -stamps/download-jaf-drop.stamp: - mkdir -p drops -if USE_ALT_JAF_DROP_ZIP - ln -sf $(ALT_JAF_DROP_ZIP) drops/$(JAF_DROP_ZIP) -endif - if ! echo "$(JAF_DROP_SHA256SUM) drops/$(JAF_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if test "x$(enable_downloading)" = "xyes"; then \ - if [ -f drops/$(JAF_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAF_DROP_ZIP) drops/$(JAF_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAF_DROP_URL)/$(JAF_DROP_ZIP) -O drops/$(JAF_DROP_ZIP); \ - if ! echo "$(JAF_DROP_SHA256SUM) drops/$(JAF_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaf drop zip"; false; \ - fi; \ - else \ - echo "ERROR: No up-to-date JAF drop zip available"; exit -1; \ - fi; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaf-drop: - rm -f drops/$(JAF_DROP_ZIP) - rm -f stamps/download-jaf-drop.stamp - -stamps/download-jaxws-drop.stamp: - mkdir -p drops -if USE_ALT_JAXWS_DROP_ZIP - ln -sf $(ALT_JAXWS_DROP_ZIP) drops/$(JAXWS_DROP_ZIP) -endif - if ! echo "$(JAXWS_DROP_SHA256SUM) drops/$(JAXWS_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then \ - if test "x$(enable_downloading)" = "xyes"; then \ - if [ -f drops/$(JAXWS_DROP_ZIP) ] ; \ - then \ - mv drops/$(JAXWS_DROP_ZIP) drops/$(JAXWS_DROP_ZIP).old ; \ - fi ; \ - $(WGET) $(JAXWS_DROP_URL)/$(JAXWS_DROP_ZIP) -O drops/$(JAXWS_DROP_ZIP); \ - if ! echo "$(JAXWS_DROP_SHA256SUM) drops/$(JAXWS_DROP_ZIP)" \ - | $(SHA256SUM) --check ; \ - then echo "ERROR: Bad download of jaxws drop zip"; false; \ - fi; \ - else \ - echo "ERROR: No up-to-date JAXWS drop zip available"; exit -1; \ - fi; \ - fi ; - mkdir -p stamps - touch $@ - -clean-download-jaxws-drop: - rm -f drops/$(JAXWS_DROP_ZIP) - rm -f stamps/download-jaxws-drop.stamp - -stamps/download-drops.stamp: stamps/download-jaxp-drop.stamp \ - stamps/download-jaxws-drop.stamp stamps/download-jaf-drop.stamp - mkdir -p stamps - touch $@ - stamps/download-cacao.stamp: if BUILD_CACAO if !USE_SYSTEM_CACAO @@ -1067,14 +1010,6 @@ rm -f $(JAMVM_SRC_ZIP) rm -f stamps/download-jamvm.stamp -clean-drops: clean-download-jaxp-drop clean-download-jaf-drop \ - clean-download-jaxws-drop - if [ -e drops ] ; then \ - rm -f drops/*.old ; \ - rmdir drops ; \ - fi - rm -f stamps/download-drops.stamp - stamps/download-openjdk.stamp: stamps/hgforest.stamp if USE_HG if WITH_HGREV @@ -1148,11 +1083,11 @@ rm -f $(HOTSPOT_SRC_ZIP) rm -f stamps/download-hotspot.stamp -stamps/download.stamp: stamps/download-drops.stamp stamps/download-cacao.stamp \ - stamps/download-jamvm.stamp stamps/download-openjdk.stamp stamps/download-hotspot.stamp +stamps/download.stamp: stamps/download-cacao.stamp stamps/download-jamvm.stamp \ + stamps/download-openjdk.stamp stamps/download-hotspot.stamp touch stamps/download.stamp -clean-download: clean-drops clean-download-cacao clean-download-jamvm \ +clean-download: clean-download-cacao clean-download-jamvm \ clean-download-openjdk clean-download-hotspot rm -f stamps/download.stamp @@ -2774,18 +2709,10 @@ download-cacao: stamps/download-cacao.stamp -download-drops: stamps/download-drops.stamp - download-hotspot: stamps/download-hotspot.stamp download-jamvm: stamps/download-jamvm.stamp -download-jaf-drop: stamps/download-jaf-drop.stamp - -download-jaxp-drop: stamps/download-jaxp-drop.stamp - -download-jaxws-drop: stamps/download-jaxws-drop.stamp - download-openjdk: stamps/download-openjdk.stamp extract: stamps/extract.stamp diff -r d5ea2fe9da2d -r 3e701dcab7d4 acinclude.m4 --- a/acinclude.m4 Thu Apr 25 18:18:04 2013 +0100 +++ b/acinclude.m4 Fri Apr 26 03:32:15 2013 +0100 @@ -1014,69 +1014,6 @@ AC_SUBST(ALT_HOTSPOT_SRC_ZIP) ]) -AC_DEFUN([IT_WITH_JAXP_DROP_ZIP], -[ - AC_MSG_CHECKING([for a JAXP drop zip]) - AC_ARG_WITH([jaxp-drop-zip], - [AS_HELP_STRING(--with-jaxp-drop-zip,specify the location of the JAXP drop zip)], - [ - ALT_JAXP_DROP_ZIP=${withval} - if test "x${ALT_JAXP_DROP_ZIP}" = "xno"; then - ALT_JAXP_DROP_ZIP="not specified" - elif ! test -f ${ALT_JAXP_DROP_ZIP} ; then - AC_MSG_ERROR([Invalid JAXP drop zip specified: ${ALT_JAXP_DROP_ZIP}]) - fi - ], - [ - ALT_JAXP_DROP_ZIP="not specified" - ]) - AM_CONDITIONAL(USE_ALT_JAXP_DROP_ZIP, test "x${ALT_JAXP_DROP_ZIP}" != "xnot specified") - AC_MSG_RESULT(${ALT_JAXP_DROP_ZIP}) From bugzilla-daemon at icedtea.classpath.org Thu Apr 25 21:54:45 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 26 Apr 2013 04:54:45 +0000 Subject: [Bug 1402] [IcedTea6] Support glibc < 2.17 with AArch64 patch In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1402 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=0115b40df976 author: Andrew John Hughes date: Fri Apr 26 03:10:41 2013 +0100 PR1402: Support glibc < 2.17 with AArch64 patch 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Fix to apply against older HotSpot. 2013-04-17 Andrew John Hughes * patches/aarch64.patch: Define EM_AARCH64 for legacy systems with glibc earlier than 2.17. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/81df74e6/attachment.html From stefan at complang.tuwien.ac.at Thu Apr 25 22:23:14 2013 From: stefan at complang.tuwien.ac.at (Stefan Ring) Date: Fri, 26 Apr 2013 07:23:14 +0200 Subject: [icedtea-web][rfc] de and pl localizations of itweb-settings.desktop In-Reply-To: <201304260020.r3Q0KVQB020219@mail-web02.excite.co.jp> References: <201304260020.r3Q0KVQB020219@mail-web02.excite.co.jp> Message-ID: On Fri, Apr 26, 2013 at 2:20 AM, Jacob Wisor wrote: > 2013-04-26 Jacob Wisor > > * itweb-settings.desktop.in: > Added de and pl localized names and comments > Added keywords > > Happy reviewing! ;) I ACK the german strings. From jvanek at redhat.com Thu Apr 25 23:27:32 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 08:27:32 +0200 Subject: [icedtea-web] Build error In-Reply-To: <201304260132.r3Q1Wjnf010199@mail-web01.excite.co.jp> References: <201304260132.r3Q1Wjnf010199@mail-web01.excite.co.jp> Message-ID: <517A1E54.2060903@redhat.com> On 04/26/2013 03:32 AM, Jacob Wisor wrote: > Hello! > > I get a build error at > > [javac] netx\net\sourceforge\jnlp\runtime\JNLPClassLoader.java:897: closeSilently(java.io.Closeable) in net.sourceforge.jnlp.util.StreamUtils cannot be applied to (net.sourceforge.jnlp.util.JarFile) > [javac] StreamUtils.closeSilently(mainJar); > > after rebuild. The error seems to be due to change 685:d5d3f8a62906. My suspicions are going more to 684:d5d3f8a62906 (Ensure JarFile handles do not leak) , as it was designed BEFORE(net.sourceforge.jnlp.util.JarFile) the 675:e866698141e(added but applied AFTER it. CC Adam as 684:d5d3f8a62906 author, but I have build today both on JDK6, and JDK7 and can not reproduce:( > Sincerely, > Jacob From jvanek at redhat.com Thu Apr 25 23:52:36 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 08:52:36 +0200 Subject: [icedtea-web][rfc] de and pl localizations of itweb-settings.desktop In-Reply-To: References: <201304260020.r3Q0KVQB020219@mail-web02.excite.co.jp> Message-ID: <517A2434.3080307@redhat.com> On 04/26/2013 07:23 AM, Stefan Ring wrote: > On Fri, Apr 26, 2013 at 2:20 AM, Jacob Wisor wrote: >> 2013-04-26 Jacob Wisor >> >> * itweb-settings.desktop.in: >> Added de and pl localized names and comments >> Added keywords >> >> Happy reviewing! ;) > > I ACK the german strings. Aaah good idea :) Polish translations give sense to me. I will add also CZ parts and push. Thanx for review Stefan! Thanx for transaltion Jacob! J. From ptisnovs at icedtea.classpath.org Fri Apr 26 00:20:25 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 26 Apr 2013 07:20:25 +0000 Subject: /hg/rhino-tests: Updated four tests in ScriptEngineManagerClassT... Message-ID: changeset 4af92415b07c in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=4af92415b07c author: Pavel Tisnovsky date: Fri Apr 26 09:23:44 2013 +0200 Updated four tests in ScriptEngineManagerClassTest for (Open)JDK8 API: getConstructor, getDeclaredConstructor, getConstructors and getDeclaredConstructors. diffstat: ChangeLog | 7 ++ src/org/RhinoTests/ScriptEngineManagerClassTest.java | 66 ++++++++++++++++++- 2 files changed, 69 insertions(+), 4 deletions(-) diffs (127 lines): diff -r 61e408523e1b -r 4af92415b07c ChangeLog --- a/ChangeLog Thu Apr 25 10:11:25 2013 +0200 +++ b/ChangeLog Fri Apr 26 09:23:44 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-26 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Updated four tests in ScriptEngineManagerClassTest for (Open)JDK8 API: + getConstructor, getDeclaredConstructor, getConstructors and + getDeclaredConstructors. + 2013-04-25 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineFactoryClassTest.java: diff -r 61e408523e1b -r 4af92415b07c src/org/RhinoTests/ScriptEngineManagerClassTest.java --- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Thu Apr 25 10:11:25 2013 +0200 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Fri Apr 26 09:23:44 2013 +0200 @@ -288,6 +288,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); testedConstructors_jdk6.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); @@ -295,8 +296,21 @@ testedConstructors_jdk7.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); testedConstructors_jdk7.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + testedConstructors_jdk8.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + testedConstructors_jdk8.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all constructors for this class Constructor[] constructors = this.scriptEngineManagerClass.getConstructors(); @@ -321,6 +335,7 @@ Map testedConstructors = null; Map testedConstructors_jdk6 = new HashMap(); Map testedConstructors_jdk7 = new HashMap(); + Map testedConstructors_jdk8 = new HashMap(); testedConstructors_jdk6.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); testedConstructors_jdk6.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); @@ -328,8 +343,21 @@ testedConstructors_jdk7.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); testedConstructors_jdk7.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + testedConstructors_jdk8.put("public javax.script.ScriptEngineManager(java.lang.ClassLoader)", "javax.script.ScriptEngineManager"); + testedConstructors_jdk8.put("public javax.script.ScriptEngineManager()", "javax.script.ScriptEngineManager"); + // get the right map containing constructor signatures - testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + switch (getJavaVersion()) { + case 6: + testedConstructors = testedConstructors_jdk6; + break; + case 7: + testedConstructors = testedConstructors_jdk7; + break; + case 8: + testedConstructors = testedConstructors_jdk8; + break; + } // get all declared constructors for this class Constructor[] declaredConstructors = this.scriptEngineManagerClass.getDeclaredConstructors(); @@ -359,7 +387,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.ScriptEngineManager", new Class[] {}); constructorsThatShouldExist_jdk7.put("javax.script.ScriptEngineManager", new Class[] {java.lang.ClassLoader.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptEngineManager", new Class[] {java.lang.ClassLoader.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptEngineManager", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { @@ -393,7 +436,22 @@ constructorsThatShouldExist_jdk7.put("javax.script.ScriptEngineManager", new Class[] {}); constructorsThatShouldExist_jdk7.put("javax.script.ScriptEngineManager", new Class[] {java.lang.ClassLoader.class}); - Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + Map constructorsThatShouldExist_jdk8 = new TreeMap(); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptEngineManager", new Class[] {java.lang.ClassLoader.class}); + constructorsThatShouldExist_jdk8.put("javax.script.ScriptEngineManager", new Class[] {}); + + Map constructorsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + constructorsThatShouldExist = constructorsThatShouldExist_jdk6; + break; + case 7: + constructorsThatShouldExist = constructorsThatShouldExist_jdk7; + break; + case 8: + constructorsThatShouldExist = constructorsThatShouldExist_jdk8; + break; + } // check if all required constructors really exist for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { From ptisnovs at icedtea.classpath.org Fri Apr 26 00:31:01 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 26 Apr 2013 07:31:01 +0000 Subject: /hg/gfx-test: Added two new kernels and ROPs associated with tho... Message-ID: changeset 8e663e0cfd11 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8e663e0cfd11 author: Pavel Tisnovsky date: Fri Apr 26 09:34:20 2013 +0200 Added two new kernels and ROPs associated with those kernels. diffstat: ChangeLog | 5 ++ src/org/gfxtest/testsuites/BitBltConvolveOp.java | 42 +++++++++++++++++------ 2 files changed, 35 insertions(+), 12 deletions(-) diffs (111 lines): diff -r d366cf824497 -r 8e663e0cfd11 ChangeLog --- a/ChangeLog Thu Apr 25 09:59:09 2013 +0200 +++ b/ChangeLog Fri Apr 26 09:34:20 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-26 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltConvolveOp.java: + Added two new kernels and ROPs associated with those kernels. + 2013-04-25 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltBasicTests.java: diff -r d366cf824497 -r 8e663e0cfd11 src/org/gfxtest/testsuites/BitBltConvolveOp.java --- a/src/org/gfxtest/testsuites/BitBltConvolveOp.java Thu Apr 25 09:59:09 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltConvolveOp.java Fri Apr 26 09:34:20 2013 +0200 @@ -74,7 +74,22 @@ @Zoom(1) public class BitBltConvolveOp extends GfxTest { - private static final Kernel NoOpKernel = new Kernel(1, 1, new float[] {1}); + private static final Kernel NoOpKernel1x1 = new Kernel(1, 1, new float[] {1}); + + private static final Kernel NoOpKernel3x3 = new Kernel(3, 3, new float[] { + 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f + }); + + private static final Kernel NoOpKernel5x5 = new Kernel(5, 5, new float[] { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + }); + private static final Kernel SmoothingKernel2x2 = new Kernel(2, 2, new float[] { 1/4f, 1/4f, 1/4f, 1/4f @@ -94,7 +109,10 @@ 1/25f, 1/25f, 1/25f, 1/25f, 1/25f, }); - private static final ConvolveOp noopROP = new ConvolveOp(NoOpKernel); + private static final ConvolveOp noopKernel1x1ROP = new ConvolveOp(NoOpKernel1x1); + private static final ConvolveOp noopKernel3x3ROP = new ConvolveOp(NoOpKernel3x3); + private static final ConvolveOp noopKernel5x5ROP = new ConvolveOp(NoOpKernel5x5); + private static final ConvolveOp smoothingKernel2x2ROP = new ConvolveOp(SmoothingKernel2x2); private static final ConvolveOp smoothingKernel3x3ROP = new ConvolveOp(SmoothingKernel3x3); private static final ConvolveOp smoothingKernel5x5ROP = new ConvolveOp(SmoothingKernel5x5); @@ -197,9 +215,9 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundNoOpKernel1x1ROP(TestImage image, Graphics2D graphics2d) { - return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, noopROP); + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, noopKernel1x1ROP); } /** @@ -253,9 +271,9 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltCheckerBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltCheckerBufferedImageType3ByteBGRbackgroundNoOpKernel1x1ROP(TestImage image, Graphics2D graphics2d) { - return doBitBltCheckerBufferedImageType3ByteRGB(image, graphics2d, noopROP); + return doBitBltCheckerBufferedImageType3ByteRGB(image, graphics2d, noopKernel1x1ROP); } /** @@ -309,9 +327,9 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltDiagonalCheckerBufferedImageType3ByteBGRbackgroundNoOpKernel1x1ROP(TestImage image, Graphics2D graphics2d) { - return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, noopROP); + return doBitBltDiagonalCheckerBufferedImageType3ByteRGB(image, graphics2d, noopKernel1x1ROP); } /** @@ -365,9 +383,9 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltGridBufferedImageType3ByteBGRbackgroundNoOpKernel1x1ROP(TestImage image, Graphics2D graphics2d) { - return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, noopROP); + return doBitBltGridBufferedImageType3ByteRGB(image, graphics2d, noopKernel1x1ROP); } /** @@ -421,9 +439,9 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundNoOpROP(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltDiagonalGridBufferedImageType3ByteBGRbackgroundNoOpKernel1x1ROP(TestImage image, Graphics2D graphics2d) { - return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, noopROP); + return doBitBltDiagonalGridBufferedImageType3ByteRGB(image, graphics2d, noopKernel1x1ROP); } /** From jvanek at redhat.com Fri Apr 26 00:40:27 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 09:40:27 +0200 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <201304252133.r3PLX0MS021661@mail-web03.excite.co.jp> References: <201304252133.r3PLX0MS021661@mail-web03.excite.co.jp> Message-ID: <517A2F6B.7020004@redhat.com> On 04/25/2013 11:33 PM, Jacob Wisor wrote: > Hello there! > > Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. > I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. > > 2013-04-25 Jacob Wisor > > * netx/net/sourceforge/jnlp/resources/Messages.properties: > Streamlined names, removed typos, removed unneccessary trailing white spaces, > fixed inconsistencies > > * netx/net/sourceforge/jnlp/resources/Messages_de.properties: > Applied all changes from modified source > Polished and reformulated some messages to better fit the localization guide > Made a few translation more precise or correct > Syntactic adjustments > > * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: > Added initial Polish localization > > Happy reviewing! ;) > > Jacob thank you very much. I will add the tests let Adam to watch over a bit the text itself. Then I will push for you. The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. Thank you very much for this work! J. From gitne at excite.co.jp Fri Apr 26 01:15:19 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 17:15:19 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl1bcmZjXSBkZSBhbmQgcGwgbG9jYWxpemF0aW9ucyBvZiBpdHdlYi1zZXR0aW5ncy5kZXNrdG9w?= Message-ID: <201304260815.r3Q8FJpZ013096@mail-web02.excite.co.jp> "Jiri Vanek" wrote: > On 04/26/2013 07:23 AM, Stefan Ring wrote: > > On Fri, Apr 26, 2013 at 2:20 AM, Jacob Wisor wrote: > >> 2013-04-26 Jacob Wisor > >> > >> * itweb-settings.desktop.in: > >> Added de and pl localized names and comments > >> Added keywords > >> > >> Happy reviewing! ;) > > > > I ACK the german strings. > > Aaah good idea :) > > Polish translations give sense to me. I will add also CZ parts and push. Great! I am looking forward to it. :) > Thanx for review Stefan! > Thanx for transaltion Jacob! > > J. From gitne at excite.co.jp Fri Apr 26 01:28:08 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 17:28:08 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl1bcmZjXSBQb2xpc2ggbG9jYWxpemF0aW9uIGFuZCBvdGhlciBtZXNzYWdlcyBjbGVhbnVw?= Message-ID: <201304260828.r3Q8S8jX022689@mail-web03.excite.co.jp> "Jiri Vanek" wrote: > On 04/25/2013 11:33 PM, Jacob Wisor wrote: > > Hello there! > > > > Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. > > I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. > > > > 2013-04-25 Jacob Wisor > > > > * netx/net/sourceforge/jnlp/resources/Messages.properties: > > Streamlined names, removed typos, removed unneccessary trailing white spaces, > > fixed inconsistencies > > > > * netx/net/sourceforge/jnlp/resources/Messages_de.properties: > > Applied all changes from modified source > > Polished and reformulated some messages to better fit the localization guide > > Made a few translation more precise or correct > > Syntactic adjustments > > > > * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: > > Added initial Polish localization > > > > Happy reviewing! ;) > > > > Jacob > thank you very much. I will add the tests let Adam to watch over a bit the text itself. > Then I will push for you. > > The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). > As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. > > > Thank you very much for this work! > > J. Thank you for reviewing. While writing the rfc, I forgot to ask you to run that test on complete messages since I have manually added some messages to my pl working document after I started working on it, that is there have been English messages added during the course of my translation. So please, could you see to it that I have not missed anything? Thank you. Have a nice day! Jacob From jvanek at redhat.com Fri Apr 26 01:40:59 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 10:40:59 +0200 Subject: [icedtea-web] Build error In-Reply-To: <517A1E54.2060903@redhat.com> References: <201304260132.r3Q1Wjnf010199@mail-web01.excite.co.jp> <517A1E54.2060903@redhat.com> Message-ID: <517A3D9B.5080908@redhat.com> On 04/26/2013 08:27 AM, Jiri Vanek wrote: > On 04/26/2013 03:32 AM, Jacob Wisor wrote: >> Hello! >> >> I get a build error at >> >> [javac] netx\net\sourceforge\jnlp\runtime\JNLPClassLoader.java:897: closeSilently(java.io.Closeable) in net.sourceforge.jnlp.util.StreamUtils cannot be applied to (net.sourceforge.jnlp.util.JarFile) >> [javac] StreamUtils.closeSilently(mainJar); >> >> after rebuild. The error seems to be due to change 685:d5d3f8a62906. > > My suspicions are going more to 684:d5d3f8a62906 (Ensure JarFile handles do not leak) , as it was designed BEFORE(net.sourceforge.jnlp.util.JarFile) the 675:e866698141e(added but applied AFTER it. > > CC Adam as 684:d5d3f8a62906 author, but I have build today both on JDK6, and JDK7 and can not reproduce:( Taking back. It is really reproducible on JDK6. I have been working on wrong copy of repository. Fix should be simple. Thax for leting us know! > >> Sincerely, >> Jacob > From bugzilla-daemon at icedtea.classpath.org Fri Apr 26 02:01:34 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 26 Apr 2013 09:01:34 +0000 Subject: [Bug 1413] New: IcedTea 3; OpenJDK 8 undefined reference to libz during link of unpack200 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1413 Bug ID: 1413 Summary: IcedTea 3; OpenJDK 8 undefined reference to libz during link of unpack200 Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: xerxes at zafena.se CC: unassigned at icedtea.classpath.org built on: Ubuntu 12.04 32bit icedtea rev de5854f8197d Suggested fix: The build breakage can be fixed by placing -lz inside the LDFLAGS_SUFFIX during link of unpack200 Output: [2] SRC:=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack [3] EXCLUDE_FILES:=jni.cpp [4] LANG:=C [5] OPTIMIZATION:=LOW [6] CFLAGS:=-DSYSTEM_ZLIB -W -Wall -Wno-unused -Wno-parentheses -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LITTLE_ENDIAN -DLINUX -DNDEBUG -DARCH='"i586"' -Di586 -DRELEASE='""' -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include/linux -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/common -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/native/common -DFULL [7] CFLAGS_release:=-DPRODUCT [8] CFLAGS_linux:=-fPIC [9] CFLAGS_solaris:=-KPIC [10] CFLAGS_macosx:=-fPIC [11] MAPFILE:=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/makefiles/mapfiles/libunpack/mapfile-vers-unpack200 [12] LDFLAGS:=-lz [13] LDFLAGS_windows:=-W -Wall -Wno-unused -Wno-parentheses -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LITTLE_ENDIAN -DLINUX -DNDEBUG -DARCH='"i586"' -Di586 -DRELEASE='""' -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include/linux -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/common -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/native/common [14] LDFLAGS_posix:=-Xlinker --hash-style=both -Xlinker -z -Xlinker defs -Xlinker -O1 -Xlinker --allow-shlib-undefined -Xlinker -soname=libunpack.so -Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$$ORIGIN [15] LDFLAGS_linux:=-lc [16] LDFLAGS_solaris:= -lc [17] LDFLAGS_SUFFIX:=-lstdc++ [18] OBJECT_DIR:=/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe [19] OUTPUT_DIR:=/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe [20] PROGRAM:=unpack200 [21] VERSIONINFO_RESOURCE:=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/windows/resource/version.rc [22] RC_FLAGS:= -D "JDK_FNAME=unpack200.exe" -D "JDK_INTERNAL_NAME=unpack200" -D "JDK_FTYPE=0x1L" [23] DEBUG_SYMBOLS:=true [24] MANIFEST:=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/windows/resource/unpack200_proto.exe.manifest SetupNativeCompilation(BUILD_JEXEC) [2] SRC:=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/bin [3] INCLUDE_FILES:=jexec.c [4] LANG:=C [5] OPTIMIZATION := LOW [6] CFLAGS:=-W -Wall -Wno-unused -Wno-parentheses -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LITTLE_ENDIAN -DLINUX -DNDEBUG -DARCH='"i586"' -Di586 -DRELEASE='""' -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include -I/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/include/linux -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/javavm/export -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/common -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/solaris/native/common -fno-strict-aliasing -I/home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/bin [7] CFLAGS_linux:=-fPIC [8] CFLAGS_solaris:=-KPIC [9] LDFLAGS:=-Xlinker --hash-style=both -Xlinker -z -Xlinker defs -Xlinker -O1 -Xlinker --allow-shlib-undefined -Xlinker -soname=lib.so [10] OBJECT_DIR:=/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/jexec_obj [11] OUTPUT_DIR:=/home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/lib [12] DEBUG_SYMBOLS:=true [13] PROGRAM:=jexec make[3]: Entering directory `/home/xranby/icedtea-8-b80/openjdk-boot/jdk/makefiles' echo "Linking executable unpack200" Linking executable unpack200 /usr/bin/gcc-4.6 -lz -Xlinker --hash-style=both -Xlinker -z -Xlinker defs -Xlinker -O1 -Xlinker --allow-shlib-undefined -Xlinker -soname=libunpack.so -Xlinker -z -Xlinker origin -Xlinker -rpath -Xlinker \$ORIGIN -lc -Xlinker -version-script=/home/xranby/icedtea-8-b80/openjdk-boot/jdk/makefiles/mapfiles/libunpack/mapfile-vers-unpack200 -o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/unpack200 /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/bands.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/bytes.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/coding.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/main.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/unpack.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/utils.o /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o -lstdc++ /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o: In function `jar::deflate_bytes(bytes&, bytes&)': /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:367: undefined reference to `deflateInit2_' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:410: undefined reference to `deflate' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:416: undefined reference to `deflateEnd' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:424: undefined reference to `deflateEnd' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:405: undefined reference to `deflate' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:420: undefined reference to `deflateEnd' /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o: In function `jar::get_crc32(unsigned int, unsigned char*, unsigned int)': /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined reference to `crc32' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined reference to `crc32' /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:61: undefined reference to `crc32' /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o: In function `gunzip::free()': /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:547: undefined reference to `inflateEnd' /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o: In function `read_input_via_gzip': /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:450: undefined reference to `inflate' /home/xranby/icedtea-8-b80/openjdk.build-boot/jdk/objs/unpackexe/zip.o: In function `gunzip::start(int)': /home/xranby/icedtea-8-b80/openjdk-boot/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp:539: undefined reference to `inflateInit2_' collect2: ld returned 1 exit status make[3]: Leaving directory `/home/xranby/icedtea-8-b80/openjdk-boot/jdk/makefiles' -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/7bf9f804/attachment.html From jvanek at redhat.com Fri Apr 26 02:51:25 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 11:51:25 +0200 Subject: Fwd: Re: ITW tranlsation Message-ID: <517A4E1D.1000702@redhat.com> Forwarding Alexander's "new" cz_CS transaltion. I will do review, merge and push. No new code is epxected. J. -------- Original Message -------- Subject: Re: ITW tranlsation Date: Fri, 26 Apr 2013 09:12:15 +0200 From: skolnag at gmail.com To: Jiri Vanek Ahoj, OK, tak tady to m??. Nen? p?elo?eno to pov?d?n?. To dod?l?m jindy, te? na to nebyl ?as. ?au Sa?a -------------- next part -------------- A non-text attachment was scrubbed... Name: Messages_cs_CZ.7z Type: application/octet-stream Size: 15731 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/ef03af01/Messages_cs_CZ.7z From ptisnovs at redhat.com Fri Apr 26 03:00:18 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 26 Apr 2013 06:00:18 -0400 (EDT) Subject: Reviewer needed: two new JTreg tests for IcedTea6 HEAD Message-ID: <1266320108.2735528.1366970418872.JavaMail.root@redhat.com> Hi everyone, I'd like to add two new JTreg tests into IcedTea6 HEAD. These tests check the basic behavior of TextLayout class and the font-subengine itself (btw it's been altered by some recent security patches). ChangeLog entry: 2013-04-26 Pavel Tisnovsky * Makefile.am: (ICEDTEA_PATCHES): Add two new patches. * patches/textLayoutGetCharacterCount.patch: * patches/textLayoutLimits.patch: Two JTreg tests for checking TextLayout class behaviour. Can anybody please review this change? Thank you in advance, Pavel Tisnovsky -------------- next part -------------- A non-text attachment was scrubbed... Name: hg.diff Type: text/x-patch Size: 5132 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/7ca1cc89/hg.diff From jvanek at icedtea.classpath.org Fri Apr 26 03:54:44 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 10:54:44 +0000 Subject: /hg/icedtea-web: 4 new changesets Message-ID: changeset 0e170a31770d in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0e170a31770d author: Jiri Vanek date: Fri Apr 26 11:29:04 2013 +0200 Fixed regressed unittest and "cause", Fixed compilation under jdk6, Silenced unittests changeset 8fc56ffa5be0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8fc56ffa5be0 author: Jiri Vanek date: Fri Apr 26 11:38:22 2013 +0200 Added DE and PL localisation of itw-settings desktop file changeset 32511feef2bc in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=32511feef2bc author: Jiri Vanek date: Fri Apr 26 11:45:19 2013 +0200 Added cs localisation for itw-settings desktop file changeset 3b2833a879f0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=3b2833a879f0 author: Jiri Vanek date: Fri Apr 26 12:57:41 2013 +0200 Improved and completed CZ localisation diffstat: ChangeLog | 45 ++ itweb-settings.desktop.in | 11 +- netx/net/sourceforge/jnlp/NullJnlpFileException.java | 42 +- netx/net/sourceforge/jnlp/SecurityDesc.java | 3 + netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties | 183 +++++++-- netx/net/sourceforge/jnlp/util/JarFile.java | 6 +- netx/net/sourceforge/jnlp/util/StreamUtils.java | 4 +- tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java | 4 +- tests/netx/unit/net/sourceforge/jnlp/SecurityDescTest.java | 70 +++ tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java | 182 +++------ tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/impl/UnsignedAppletActionStorageImplTest.java | 2 +- tests/netx/unit/sun/applet/PluginAppletViewerTest.java | 5 +- tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFile.java | 77 ++++ 13 files changed, 449 insertions(+), 185 deletions(-) diffs (truncated from 961 to 500 lines): diff -r 8515c529e29c -r 3b2833a879f0 ChangeLog --- a/ChangeLog Thu Apr 25 17:05:31 2013 -0400 +++ b/ChangeLog Fri Apr 26 12:57:41 2013 +0200 @@ -1,3 +1,48 @@ +2013-04-26 Jiri Vanek + Alexandr Kolouch + + Added CZ localization of itw-settings Xdesktop configuration file + * itweb-settings.desktop.in: added Name[cs] and Name[cs] keys with values. + +2013-04-26 Jiri Vanek + Jacob Wisor + + Added DE and PL localization of itw-settings Xdesktop configuration file + * itweb-settings.desktop.in: added Name[de], Name[pl], Comment[de], Comment[pl] + keys with values. Added Keywords key with values. + +2013-04-26 Jiri Vanek + + Silenced unittests + * tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/impl/UnsignedAppletActionStorageImplTest.java: and + * tests/netx/unit/sun/applet/PluginAppletViewerTest.java: + System.out.println replaced by ServerAccess.logOutputReprint + +2013-04-26 Jiri Vanek + + Fixed compilation under jdk6 + * netx/net/sourceforge/jnlp/util/JarFile.java: + is now implementing Closeable + +2013-04-26 Jiri Vanek + + Fixed regressed unittest and "cause" + * /netx/net/sourceforge/jnlp/NullJnlpFileException.java: + fixed header + * netx/net/sourceforge/jnlp/SecurityDesc.java: (SecurityDesc) is now + throwing NullJnlpFileException in case of null jnlp file. + * tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java: is now using + correct DummyJnlpFile + * tests/netx/unit/net/sourceforge/jnlp/SecurityDescTest.java: new testfile. + (testNotNullJnlpFile) (testNullJnlpFile) testing the behavior for null + jnlp file and for existing jnlpfile. + * tests/netx/unit/net/sourceforge/jnlp/runtime/CodeBaseClassLoaderTest.java: + (DummyJnlpFile) extracted to test-extensions and have removed incorrect have security + (testNullFileSecurityDescApplet) and (testNullFileSecurityDesc) is now expecting + NullJnlpFileException instead of results + * tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFile.java: new + reusable dummy jnlp file + 2013-04-25 Adam Domurad Add accidentally not included files from "Tests & test extensions for diff -r 8515c529e29c -r 3b2833a879f0 itweb-settings.desktop.in --- a/itweb-settings.desktop.in Thu Apr 25 17:05:31 2013 -0400 +++ b/itweb-settings.desktop.in Fri Apr 26 12:57:41 2013 +0200 @@ -1,8 +1,15 @@ [Desktop Entry] -Name=IcedTea Web Control Panel -Comment=Configure IcedTea Web (javaws and plugin) +Name=IcedTea-Web Control Panel +Name[de]=IcedTea-Web Systemsteuerung +Name[pl]=Panel sterowania IcedTea-Web +Name[cs]=Ovl??dac?? panel IcedTea-Web +Comment=Configure IcedTea-Web (javaws and plugin) +Comment[de]=Konfiguriert IcedTea-Web (javaws und Plug-in) +Comment[pl]=Konfiguruj IcedTea-Web (javaws i wtyczk??) +Comment[cs]=Konfigurace aplikace IcedTea-Web (javaws a z??suvn?? modul) Exec=PATH_TO_ITWEB_SETTINGS Icon=javaws Terminal=false Type=Application Categories=Settings; +Keywords=IcedTea;IcedTea-Web;java;javaws;web;start;webstart;jnlp; diff -r 8515c529e29c -r 3b2833a879f0 netx/net/sourceforge/jnlp/NullJnlpFileException.java --- a/netx/net/sourceforge/jnlp/NullJnlpFileException.java Thu Apr 25 17:05:31 2013 -0400 +++ b/netx/net/sourceforge/jnlp/NullJnlpFileException.java Fri Apr 26 12:57:41 2013 +0200 @@ -1,14 +1,42 @@ package net.sourceforge.jnlp; -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. +/* +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. */ -/** - * - * @author jvanek - */ public class NullJnlpFileException extends NullPointerException { public NullJnlpFileException() { diff -r 8515c529e29c -r 3b2833a879f0 netx/net/sourceforge/jnlp/SecurityDesc.java --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Thu Apr 25 17:05:31 2013 -0400 +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Fri Apr 26 12:57:41 2013 +0200 @@ -149,6 +149,9 @@ * @param downloadHost the download host (can always connect to) */ public SecurityDesc(JNLPFile file, Object type, String downloadHost) { + if (file == null) { + throw new NullJnlpFileException(); + } this.file = file; this.type = type; this.downloadHost = downloadHost; diff -r 8515c529e29c -r 3b2833a879f0 netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Thu Apr 25 17:05:31 2013 -0400 +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Fri Apr 26 12:57:41 2013 +0200 @@ -51,11 +51,11 @@ LNullUpdatePolicy=Pravidla pro aktualizaci nesm\u00ed b\u00fdt pr\u00e1zdn\u00e1. LThreadInterrupted=Vl\u00e1kno bylo p\u0159eru\u0161eno p\u0159i \u010dek\u00e1n\u00ed na spu\u0161t\u011bn\u00ed souboru. -LThreadInterruptedInfo=Toto m\u016f\u017ee v\u00e1st k zamrznut\u00ed nebo nedefinovan\u00e9mu chov\u00e1n\u00ed chov\u00e1n\u00ed aplikace. Restartuje apliakci/prohl\u00ed\u017ee\u010d. +LThreadInterruptedInfo=To m\u016f\u017ee v\u00e9st k zablokov\u00e1n\u00ed nebo v\u00e9st k jin\u00e9mu po\u0161kozen\u00ed p\u0159i spou\u0161t\u011bn\u00ed. Restartujte aplikaci/prohl\u00ed\u017ee\u010d. LCouldNotLaunch=Nelze spustit soubor JNLP. -LCouldNotLaunchInfo=Apliakce nebyla inicializov\u00e1na, pro v\u00edce informac\u00ed spus\u0165te javaws/prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a za\u0161lete n\u00e1m chybovou zpr\u00e1vu. +LCouldNotLaunchInfo=Aplikace nebyla inicializov\u00e1na. V\u00edce informac\u00ed z\u00edsk\u00e1te spu\u0161t\u011bn\u00edm p\u0159\u00edkazu javaws/prohl\u00ed\u017ee\u010de z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky. LCantRead=Nelze \u010d\u00edst nebo analyzovat soubor JNLP. -LCantReadInfo=Zkuste tento JNLP soubor st\u00e1hnout ru\u010dn\u011b, a posalt z\u00e1rove\u0148 s hl\u00e1\u0161en\u00edm chyby t\u00fdmu IcedTea-Web. +LCantReadInfo=M\u016f\u017eete se pokusit st\u00e1hnout tento soubor ru\u010dn\u011b a poslat ho jako hl\u00e1\u0161en\u00ed o chyb\u011b t\u00fdmu IcedTea-Web. LNullLocation=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru JNLP. LNullLocationInfo=Byl u\u010din\u011bn pokus o spu\u0161t\u011bn\u00ed souboru JNLP v jin\u00e9m prost\u0159ed\u00ed JVM, av\u0161ak soubor nebyl nalezen. Chcete-li spustit extern\u00ed prost\u0159ed\u00ed JVM, modul runtime mus\u00ed b\u00fdt schopen nal\u00e9zt soubor .jnlp v lok\u00e1ln\u00edm souborov\u00e9m syst\u00e9mu nebo na serveru. LNetxJarMissing=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru netx.jar. @@ -69,17 +69,20 @@ LNoInstallers=Instal\u00e1tory nejsou podporov\u00e1ny. LNoInstallersInfo=Instal\u00e1tory JNLP je\u0161t\u011b nejsou podporov\u00e1ny. LInitApplet=Nelze inicializovat applet. -LInitAppletInfo=Pro v\u00edce informac\u00ed klikn\u011bte na tla\u010d\u00edtko pro v\u00edce informac\u00ed\u00e9. +LInitAppletInfo=Chcete-li v\u00edce informac\u00ed, klikn\u011bte na tla\u010d\u00edtko Dal\u0161\u00ed informace... LInitApplication=Nelze inicializovat aplikaci. -LInitApplicationInfo=Apliakce nebyla inicializov\u00e1na, pro v\u00edce informac\u00ed spus\u0165te javaws z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky. +LInitApplicationInfo=Aplikace nebyla inicializov\u00e1na. V\u00edce informac\u00ed z\u00edsk\u00e1te spu\u0161t\u011bn\u00edm p\u0159\u00edkazu javaws z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky. LNotLaunchable=Nejedn\u00e1 se o spustiteln\u00fd soubor JNLP. LNotLaunchableInfo=Soubor mus\u00ed b\u00fdt aplikac\u00ed, appletem nebo instal\u00e1torem JNLP. LCantDetermineMainClass=Nezn\u00e1m\u00e1 t\u0159\u00edda Main-Class. LCantDetermineMainClassInfo=Nelze ur\u010dit t\u0159\u00eddu main class pro tuto aplikaci. LUnsignedJarWithSecurity=Nelze ud\u011blit opr\u00e1vn\u011bn\u00ed nepodepsan\u00fdm soubor\u016fm JAR. LUnsignedJarWithSecurityInfo=Aplikace po\u017e\u00e1dala o bezpe\u010dnostn\u00ed opr\u00e1vn\u011bn\u00ed, av\u0161ak soubory JAR nejsou podeps\u00e1ny. -LSignedJNLPAppDifferentCerts=JNLP aplikace nen\u00ed pln\u011b podeps\u00e1na jedin\u00fdm cectifik\u00e1tem -LSignedJNLPAppDifferentCertsInfo=JNLP aplikace m\u00e1 podeps\u00e1ny v\u0161echny komponenty, ale jednotliv\u00e9 certifik\u00e1ty se li\u0161\u00ed. +LSignedJNLPAppDifferentCerts=Aplikace JNLP nen\u00ed kompletn\u011b podepsan\u00e1 jednou certifika\u010dn\u00ed autoritou. +LSignedJNLPAppDifferentCertsInfo=Jednotliv\u00e9 komponenty aplikace JNLP jsou individu\u00e1ln\u011b podeps\u00e1ny, nicm\u00e9n\u011b pro v\u0161echny polo\u017eky mus\u00ed b\u00fdt jeden spole\u010dn\u00fd podepisovatel. +LUnsignedApplet=Applet nebyl podepsan\u00fd. +LUnsignedAppletPolicyDenied=Applet nebyl podepsan\u00fd a bezpe\u010dnostn\u00ed pravidla zabr\u00e1nila jeho spu\u0161t\u011bn\u00ed. +LUnsignedAppletUserDenied=Applet nebyl podepsan\u00fd a byl vyhodnocen jako ned\u016fv\u011bryhodn\u00fd. LSignedAppJarUsingUnsignedJar=Podepsan\u00e1 aplikace pou\u017e\u00edvaj\u00edc\u00ed nepodepsan\u00e9 soubory JAR. LSignedAppJarUsingUnsignedJarInfo=Hlavn\u00ed soubor JAR aplikace je podepsan\u00fd, av\u0161ak n\u011bkter\u00e9 z dal\u0161\u00edch pou\u017e\u00edvan\u00fdch soubor\u016f JAR nejsou podeps\u00e1ny. LSignedJNLPFileDidNotMatch=Podepsan\u00fd soubor JNLP se neshoduje se spou\u0161t\u011bn\u00fdm souborem JNLP. @@ -96,28 +99,28 @@ LNotVerified=Soubory JAR nebyly ov\u011b\u0159eny. LCancelOnUserRequest=Zru\u0161eno u\u017eivatelem. LFatalVerification=P\u0159i ov\u011b\u0159ov\u00e1n\u00ed soubor\u016f JAR do\u0161lo k z\u00e1va\u017en\u00e9 chyb\u011b. -LFatalVerificationInfo=Byla odchycena v\u00fdjimka z mechanismu ov\u011b\u0159ov\u00e1n\u00ed certifik\u00e1t\u016f. Mo\u017en\u00fd zdroj m\u016f\u017ee b\u00fdt nemo\u017enost p\u0159e\u010d\u00edst cacerts nebi trusted.certs soubory. +LFatalVerificationInfo=Do\u0161lo k v\u00fdjimce ve t\u0159\u00edd\u011b JarCertVerifier. P\u0159\u00ed\u010dinou t\u00e9to v\u00fdjimky m\u016f\u017ee b\u00fdt neschopnost \u010d\u00edst soubory cacerts nebo trusted.certs. LNotVerifiedDialog=Nemohly b\u00fdt ov\u011b\u0159eny v\u0161echny soubory JAR. LAskToContinue=Chcete p\u0159esto pokra\u010dovat ve spou\u0161t\u011bn\u00ed t\u00e9to aplikace? # Parser -PInvalidRoot=Ko\u0159enov\u00fd uzel nen\u00ed uzel jnlp. +PInvalidRoot=Element \u201eroot\u201c nen\u00ed elementem jnlp. PNoResources=Nen\u00ed definov\u00e1n element \u201eresources\u201c. PUntrustedNative=Nelze deklarovat element \u201enativelib\u201c, ani\u017e by bylo po\u017e\u00e1d\u00e1no o p\u0159\u00edslu\u0161n\u00e1 opr\u00e1vn\u011bn\u00ed. PExtensionHasJ2SE=V souboru roz\u0161\u00ed\u0159en\u00ed nelze deklarovat element \u201ej2se\u201c. PInnerJ2SE=Uvnit\u0159 elementu \u201ej2se\u201c nelze deklarovat dal\u0161\u00ed element \u201ej2se\u201c. -PTwoMains=V elementu \u201eresources\u201c je duplicitn\u011b definov\u00e1n hlavn\u00ed soubor JAR (lze definovat pouze jeden). -PNativeHasMain=Nelze specifikovat hlavn\u00ed atribut u nativn\u00edch soubor\u016f JAR. +PTwoMains=V elementu \u201eresources\u201c je duplicitn\u011b definov\u00e1n atribut \u201emain\u201c (lze definovat pouze jeden). +PNativeHasMain=V r\u00e1mci elementu \u201enativelib\u201c nelze deklarovat atribut \u201emain\u201c. PNoInfoElement=Nen\u00ed definov\u00e1n element \u201einformation\u201c. PMissingTitle=N\u00e1zev PMissingVendor=Dodavatel -PMissingElement=Pro va\u0161e n\u00e1rodn\u00ed prost\u0159ed\u00ed nebyla definov\u00e1na sekce {0}, ani neexistuje v\u00fdchoz\u00ed hodnota v souboru JNLP. -PTwoDescriptions=Duplicitn\u00ed popis typu {0} +PMissingElement=Pro va\u0161e n\u00e1rodn\u00ed prost\u0159ed\u00ed nebyla zad\u00e1na sekce {0}, ani neexistuje v\u00fdchoz\u00ed hodnota v souboru JNLP. +PTwoDescriptions=Duplicitn\u00ed elementy \u201edescription\u201c typu {0} jsou neplatn\u00e9. PSharing=Element \u201esharing-allowed\u201c je neplatn\u00fd ve standardn\u00edm souboru JNLP. PTwoSecurity=V ka\u017ed\u00e9m souboru JNLP m\u016f\u017ee b\u00fdt pouze jeden element \u201esecurity\u201c. PEmptySecurity=Element \u201esecurity\u201c je definov\u00e1n, av\u0161ak neobsahuje element \u201epermissions\u201c. -PTwoDescriptors=V ka\u017ed\u00e9m souboru JNLP m\u016f\u017ee b\u00fdt pouze jeden element \u201eapplication\u201c. +PTwoDescriptors=V ka\u017ed\u00e9m souboru JNLP m\u016f\u017ee b\u00fdt pouze jeden element \u201eapplication-desc\u201c. PTwoDesktops=Je povolen pouze jeden element \u201edesktop\u201c. PTwoMenus=Je povolen pouze jeden element \u201emenu\u201c. PTwoTitles=Je povolen pouze jeden element \u201etitle\u201c. @@ -126,8 +129,8 @@ PUnknownApplet=Nezn\u00e1m\u00fd applet PBadWidth=Neplatn\u00e1 \u0161\u00ed\u0159ka appletu PBadHeight=Neplatn\u00e1 v\u00fd\u0161ka appletu -PUrlNotInCodebase=Relativn\u00ed adresa URL neuv\u00e1d\u00ed podadres\u00e1\u0159 se z\u00e1kladn\u00ed adresou (codebase). (uzel (node)={0}, odkaz (href)={1}, z\u00e1kladn\u00ed adresa (codebase)={2}) -PBadRelativeUrl=Neplatn\u00e1 relativn\u00ed adresa URL (uzel (node)={0}, odkaz (href)={1}, z\u00e1kladn\u00ed adresa (codebase)={2}) +PUrlNotInCodebase=Relativn\u00ed adresa URL neuv\u00e1d\u00ed podadres\u00e1\u0159 se z\u00e1kladnou k\u00f3du (codebase). (uzel (node)={0}, odkaz (href)={1}, z\u00e1kladna k\u00f3du (codebase)={2}) +PBadRelativeUrl=Neplatn\u00e1 relativn\u00ed adresa URL (uzel (node)={0}, odkaz (href)={1}, z\u00e1kladna k\u00f3du (codebase)={2}) PBadNonrelativeUrl=Neplatn\u00e1 absolutn\u00ed adresa URL (uzel (node)={0}, odkaz (href)={1}) PNeedsAttribute=Element {0} mus\u00ed deklarovat atribut {1}. PBadXML=Neplatn\u00e1 syntax dokumentu XML @@ -141,7 +144,7 @@ BBadProp=Neplatn\u00fd form\u00e1t vlastnosti {0} (platn\u00fd form\u00e1t: kl\u00ed\u010d=hodnota) BBadParam=Neplatn\u00fd form\u00e1t parametru {0} (platn\u00fd form\u00e1t: n\u00e1zev=hodnota) BNoDir=Adres\u00e1\u0159 {0} neexistuje. -BNoCodeOrObjectApplet=Zna\u010dka applet mus\u00ed m\u00edt defnov\u00e1n k\u00f3d nebo objekt - atributy 'code' nebo 'object' chyb\u00ed. +BNoCodeOrObjectApplet=Zna\u010dka appletu mus\u00ed deklarovat atribut \u201ecode\u201c nebo \u201eobject\u201c. RNoResource=Chyb\u011bj\u00edc\u00ed zdroj: {0} RShutdown=Tato v\u00fdjimka zabra\u0148uje ukon\u010den\u00ed prost\u0159ed\u00ed JVM, av\u0161ak proces byl ukon\u010den. RExitTaken=T\u0159\u00edda exit class m\u016f\u017ee b\u00fdt nastavena pouze jednou a pouze ta pak m\u016f\u017ee ukon\u010dit prost\u0159ed\u00ed JVM. @@ -177,7 +180,7 @@ BOArg= P\u0159id\u00e1 p\u0159ed spu\u0161t\u011bn\u00edm parametr aplikace. BOParam= P\u0159id\u00e1 p\u0159ed spu\u0161t\u011bn\u00edm parametr appletu. BOProperty= P\u0159ed spu\u0161t\u011bn\u00edm nastav\u00ed syst\u00e9movou vlastnost. -BOUpdate= Kontrola aktualizac\u00ed po X sek. od posledn\u00ed kontroly. +BOUpdate= Zkontroluje aktualizace. BOLicense= Zobraz\u00ed licenci GPL a ukon\u010d\u00ed aplikaci. BOVerbose= Zapne podrobn\u00fd v\u00fdstup. BOAbout= Uk\u00e1\u017ee vzorovou aplikaci. @@ -188,7 +191,7 @@ BOViewer= Zobraz\u00ed prohl\u00ed\u017ee\u010d d\u016fv\u011bryhodn\u00fdch certifik\u00e1t\u016f. BXnofork= Zak\u00e1\u017ee vytv\u00e1\u0159en\u00ed jin\u00fdch prost\u0159ed\u00ed JVM. BXclearcache= Vy\u010dist\u00ed vyrovn\u00e1vac\u00ed pam\u011b\u0165 aplikace JNLP. -BXignoreheaders= Nebude prov\u00e1d\u011bt verifikaci hlavi\u010dek soubor\u016f jar. +BXignoreheaders= Vynech\u00e1 ov\u011b\u0159ov\u00e1n\u00ed hlavi\u010dky souboru JAR. BOHelp= Vyp\u00ed\u0161e zadanou zpr\u00e1vu do konzole a ukon\u010d\u00ed aplikaci. # Cache @@ -221,6 +224,14 @@ SUnverified=(neov\u011b\u0159eno) SAlwaysTrustPublisher=V\u017edy d\u016fv\u011b\u0159ovat obsahu od tohoto vydavatele SHttpsUnverified=Certifik\u00e1t HTTPS webu nelze ov\u011b\u0159it. +SRememberOption=Zapamatovat si tuto volbu? +SRememberAppletOnly=Pro applet +SRememberCodebase=Pro web {0} +SUnsignedSummary=Do\u0161lo k pokusu o spu\u0161t\u011bn\u00ed nepodepsan\u00e9 aplikace Java. +SUnsignedDetail=Do\u0161lo k pokusu o spu\u0161t\u011bn\u00ed nepodepsan\u00e9 aplikace z n\u00e1sleduj\u00edc\u00edho um\u00edst\u011bn\u00ed:
    \u00a0\u00a0{0}
    Str\u00e1nka, kter\u00e1 p\u0159edala tento po\u017eadavek:
    \u00a0\u00a0{1}

    Doporu\u010dujeme, abyste spou\u0161t\u011bli aplikace pouze z web\u016f, kter\u00fdm d\u016fv\u011b\u0159ujete. +SUnsignedAllowedBefore=Tento applet jste ji\u017e d\u0159\u00edve povolili. +SUnsignedRejectedBefore=Tento applet jste ji\u017e d\u0159\u00edve odm\u00edtli. +SUnsignedQuestion=Povolit spu\u0161t\u011bn\u00ed appletu? SNotAllSignedSummary=Podeps\u00e1ny jsou jen \u010d\u00e1sti k\u00f3du t\u00e9to aplikace. SNotAllSignedDetail=Tato aplikace obsahuje podepsan\u00fd i nepodepsan\u00fd k\u00f3d. Podepsan\u00fd k\u00f3d je bezpe\u010dn\u00fd, pokud d\u016fv\u011b\u0159ujete poskytovateli tohoto k\u00f3du. Nepodepsan\u00e9 \u010d\u00e1sti mohou obsahovat k\u00f3d, kter\u00fd nen\u00ed pod kontrolou d\u016fv\u011bryhodn\u00e9ho poskytovatele. SNotAllSignedQuestion=Chcete p\u0159esto pokra\u010dovat a spustit aplikaci? @@ -284,7 +295,7 @@ # Value Validator messages. Messages should follow "Possible values ..." VVPossibleValues=Mo\u017en\u00e9 hodnoty {0} VVPossibleBooleanValues=jsou {0} nebo {1}. -VVPossibleFileValues=obsahuj\u00ed absolutn\u00ed um\u00edst\u011bn\u00ed souboru (mus\u00ed za\u010d\u00ednat znakem /). +VVPossibleFileValues=obsahuj\u00ed absolutn\u00ed um\u00edst\u011bn\u00ed souboru. VVPossibleRangedIntegerValues=jsou v rozmez\u00ed {0} a\u017e {1} (v\u010detn\u011b). VVPossibleUrlValues=obsahuj\u00ed jakoukoliv platnou adresu URL (nap\u0159. http://icedtea.classpath.org/hg/). @@ -301,7 +312,31 @@ CPSecurityDescription=Konfigurace nastaven\u00ed zabezpe\u010den\u00ed CPDebuggingDescription=Zapnut\u00ed mo\u017enost\u00ed pom\u00e1haj\u00edc\u00edch p\u0159i lad\u011bn\u00ed CPDesktopIntegrationDescription=Nastaven\u00ed, zda m\u00e1 b\u00fdt povoleno vytvo\u0159en\u00ed z\u00e1stupce na plo\u0161e -CPJVMPluginArguments = Nastavit argumenty JVM pro plugin. +CPJVMPluginArguments=Nastaven\u00ed parametr\u016f prost\u0159ed\u00ed JVM pro z\u00e1suvn\u00fd modul. +CPJVMitwExec=Nastaven\u00ed prost\u0159ed\u00ed JVM pro aplikaci IcedTea-Web (pracuje nejl\u00e9pe s prost\u0159ed\u00edm OpenJDK) +CPJVMitwExecValidation=Ov\u011b\u0159en\u00ed prost\u0159ed\u00ed JVM pro aplikaci IcedTea-Web +CPJVMPluginSelectExec=Volba prost\u0159ed\u00ed JVM pro aplikaci IcedTea-Web +CPJVMnone=\u017d\u00e1dn\u00e9 v\u00fdsledky ov\u011b\u0159en\u00ed pro cestu +CPJVMvalidated=V\u00fdsledky ov\u011b\u0159en\u00ed pro cestu +CPJVMvalueNotSet=Hodnota nen\u00ed nastavena. Bude pou\u017eito p\u0159edvolen\u00e9 prost\u0159ed\u00ed JVM. +CPJVMnotLaunched=Chyba: proces nebyl spu\u0161t\u011bn. V\u00edce informac\u00ed naleznete ve v\u00fdstupu konzole. +CPJVMnoSuccess=Chyba: proces nebyl \u00fasp\u011b\u0161n\u011b ukon\u010den. Podrobnosti naleznete ve v\u00fdstupu konzole, av\u0161ak va\u0161e prost\u0159ed\u00ed Java nen\u00ed spr\u00e1vn\u011b nastaveno. +CPJVMopenJdkFound=Excelentn\u00ed! Bylo detekov\u00e1no prost\u0159ed\u00ed OpenJDK. +CPJVMoracleFound=V\u00fdborn\u011b! Bylo detekov\u00e1no prost\u0159ed\u00ed Oracle Java. +CPJVMibmFound=Dob\u0159e! Bylo detekov\u00e1no prost\u0159ed\u00ed IBM Java. +CPJVMgijFound=Varov\u00e1n\u00ed! Bylo detekov\u00e1no prost\u0159ed\u00ed gij. +CPJVMstrangeProcess=Zadan\u00e1 cesta je spustiteln\u00fd proces, ov\u0161em nebyl rozpozn\u00e1n jako aplikace Java. Ve v\u00fdstupu konzole ov\u011b\u0159te verzi prost\u0159ed\u00ed Java. +CPJVMnotDir=Chyba: cesta, kterou jste vybrali, nen\u00ed adres\u00e1\u0159. +CPJVMisDir=OK, cesta, kterou jste vybrali, je adres\u00e1\u0159. +CPJVMnoJava=Chyba: adres\u00e1\u0159, kter\u00fd jste vybrali, neobsahuje podadres\u00e1\u0159 a soubor \u201ebin/java\u201c. +CPJVMjava=OK, adres\u00e1\u0159, kter\u00fd jste vybrali, obsahuje podadres\u00e1\u0159 a soubor \u201ebin/java\u201c. +CPJVMnoRtJar=Chyba: adres\u00e1\u0159, kter\u00fd jste vybrali, neobsahuje podadres\u00e1\u0159 a soubor \u201elib/rt.jar\u201c. +CPJVMrtJar=OK, adres\u00e1\u0159, kter\u00fd jste vybrali, obsahuje podadres\u00e1\u0159 a soubor \u201elib/rt.jar\u201c. +CPJVMPluginAllowTTValidation=Povolit ov\u011b\u0159ov\u00e1n\u00ed v pr\u016fb\u011bhu psan\u00ed +CPJVMNotokMessage1=Zadali jste neplatnou hodnotu ({0}) prost\u0159ed\u00ed JDK. Chybov\u00e1 zpr\u00e1va: +CPJVMNotokMessage2=Tuto zpr\u00e1vu vid\u00edte pravd\u011bpodobn\u011b proto\u017ee:
    * V\u00e1\u0161 syst\u00e9m nepro\u0161el n\u011bkter\u00fdm z ov\u011b\u0159ovac\u00edch test\u016f
    * Bylo detekov\u00e1no jin\u00e9 prost\u0159ed\u00ed ne\u017e OpenJDK
    S neplatn\u00fdm prost\u0159ed\u00edm JDK nebude se pravd\u011bpodobn\u011b nebude aplikace IcedTea-Web schopna spustit.
    Budete muset upravit nebo odstranit vlastnost {0} ve va\u0161em konfigura\u010dn\u00edm souboru {1}.
    M\u011bli byste ve sv\u00e9m syst\u00e9mu nal\u00e9zt prost\u0159ed\u00ed OpenJDK, nebo byste m\u011bli dob\u0159e v\u011bd\u011bt, co d\u011bl\u00e1te. +CPJVMconfirmInvalidJdkTitle=Potvrzen\u00ed neplatn\u00e9ho prost\u0159ed\u00ed JDK +CPJVMconfirmReset=Obnovit v\u00fdchoz\u00ed nastaven\u00ed? # Control Panel - Buttons CPButAbout=O aplikaci IcedTea-Web @@ -311,16 +346,16 @@ CPButCertificates=Certifik\u00e1ty... # Control Panel - Headers -CPHead=Ovl\u00e1dac\u00ed panel IcedTea Web -CPHeadAbout=O aplikaci IcedTea-Web -CPHeadNetworkSettings=Nastaven\u00ed proxy server\u016f s\u00edt\u011b -CPHeadTempInternetFiles=Do\u010dasn\u00e9 soubory Internetu -CPHeadJRESettings=Nastaven\u00ed prost\u0159ed\u00ed Java Runtime Environment -CPHeadCertificates=Certifik\u00e1ty -CPHeadDebugging=Nastaven\u00ed lad\u011bn\u00ed -CPHeadDesktopIntegration=Integrace s pracovn\u00ed plochou -CPHeadSecurity=Nastaven\u00ed zabezpe\u010den\u00ed -CPHeadJVMSettings=Nastaven\u00ed JVM +CPHead=Ovl\u00e1dac\u00ed panel IcedTea-Web +CPHeadAbout=\u00a0O aplikaci IcedTea-Web\u00a0 +CPHeadNetworkSettings=\u00a0Nastaven\u00ed proxy server\u016f s\u00edt\u011b\u00a0 +CPHeadTempInternetFiles=\u00a0Do\u010dasn\u00e9 soubory Internetu\u00a0 +CPHeadJRESettings=\u00a0Nastaven\u00ed prost\u0159ed\u00ed Java Runtime Environment\u00a0 +CPHeadCertificates=\u00a0Certifik\u00e1ty\u00a0 +CPHeadDebugging=\u00a0Nastaven\u00ed lad\u011bn\u00ed\u00a0 +CPHeadDesktopIntegration=\u00a0Integrace s pracovn\u00ed plochou\u00a0 +CPHeadSecurity=\u00a0Nastaven\u00ed zabezpe\u010den\u00ed\u00a0 +CPHeadJVMSettings=\u00a0Nastaven\u00ed JVM\u00a0 # Control Panel - Tabs CPTabAbout=O aplikaci IcedTea-Web @@ -403,10 +438,10 @@ # Control Panel - TemporaryInternetFilesPanel TIFPEnableCache=Uchov\u00e1vat do\u010dasn\u00e9 soubory v po\u010d\u00edta\u010di -TIFPLocation=Um\u00edst\u011bn\u00ed +TIFPLocation=\u00a0Um\u00edst\u011bn\u00ed\u00a0 TIFPLocationLabel=Vyberte um\u00edst\u011bn\u00ed, kde maj\u00ed b\u00fdt do\u010dasn\u00e9 soubory uchov\u00e1v\u00e1ny. TIFPChange=Zm\u011bnit -TIFPDiskSpace=M\u00edsto na disku +TIFPDiskSpace=\u00a0M\u00edsto na disku\u00a0 TIFPCompressionLevel=Vyberte \u00farove\u0148 komprese pro soubory JAR TIFPNone=\u017d\u00e1dn\u00e1 TIFPMax=Maxim\u00e1ln\u00ed @@ -443,10 +478,10 @@ CLListDescription=Zobraz\u00ed seznam v\u0161ech n\u00e1zv\u016f vlastnost\u00ed a hodnot, kter\u00e9 jsou vyu\u017e\u00edv\u00e1ny aplikac\u00ed IcedTea-Web. CLGetDescription=Zobraz\u00ed hodnoty pro n\u00e1zev vlastnosti. CLSetDescription=P\u0159i\u0159ad\u00ed hodnotu k n\u00e1zvu vlastnosti (pokud je to mo\u017en\u00e9). Kontrola platnosti hodnoty - pokud spr\u00e1vce vlastnost uzamkl, tato funkce nebude m\u00edt \u017e\u00e1dn\u00fd efekt. -CLResetDescription=Resetuje hodnotu n\u00e1zvu vlastnosti na v\u00fdchoz\u00ed hodnotu. +CLResetDescription=Resetuje hodnotu n\u00e1zvu vlastnosti na v\u00fdchoz\u00ed hodnotu.\nVolba \u201eall\u201c resetuje v\u0161echny vlastnosti rozpoznan\u00e9 aplikac\u00ed IcedTea-Web na jejich v\u00fdchoz\u00ed hodnoty. CLInfoDescription=Zobraz\u00ed dal\u0161\u00ed informace o dan\u00e9 vlastnosti. -CLCheckDescription=Zobraz\u00ed v\u0161echny vlastnosti, kter\u00e9 byly definov\u00e1ny, av\u0161ak nebyly rozpozn\u00e1ny aplikac\u00ed IcedTea Web. -CLHelpDescription=N\u00e1stroj itweb-setting umo\u017e\u0148uje u\u017eivateli upravovat, prohl\u00ed\u017eet a kontrolovat nastaven\u00ed. \nChcete-li pou\u017e\u00edt grafick\u00e9 rozhran\u00ed, nezad\u00e1vejte \u017e\u00e1dn\u00e9 parametry. Chcete-li pou\u017e\u00edt p\u0159\u00edkazovou \u0159\u00e1dku, zadejte pat\u0159i\u010dn\u00fd p\u0159\u00edkaz a parametry. Pot\u0159ebujete-li pomoc s konkr\u00e9tn\u00edm p\u0159\u00edkazem, zkuste zadat p\u0159\u00edkaz {0} s parametrem help. +CLCheckDescription=Zobraz\u00ed v\u0161echny vlastnosti, kter\u00e9 byly definov\u00e1ny, av\u0161ak nebyly rozpozn\u00e1ny aplikac\u00ed IcedTea-Web. +CLHelpDescription=N\u00e1stroj itweb-setting umo\u017e\u0148uje u\u017eivateli upravovat, prohl\u00ed\u017eet a kontrolovat nastaven\u00ed.\nChcete-li pou\u017e\u00edt grafick\u00e9 rozhran\u00ed, nezad\u00e1vejte \u017e\u00e1dn\u00e9 parametry. Chcete-li pou\u017e\u00edt p\u0159\u00edkazovou \u0159\u00e1dku, zadejte pat\u0159i\u010dn\u00fd p\u0159\u00edkaz a parametry. Pot\u0159ebujete-li pomoc s konkr\u00e9tn\u00edm p\u0159\u00edkazem, zkuste zadat p\u0159\u00edkaz {0} s parametrem help. # splash screen related SPLASHerror= Podrobnosti z\u00edsk\u00e1te kliknut\u00edm zde. Do\u0161lo k z\u00e1va\u017en\u00e9 v\u00fdjimce. @@ -457,21 +492,83 @@ SPLASHdescription= Popis SPLASHClose= Zav\u0159\u00edt SPLASHclosewAndCopyException= Zav\u0159\u00edt a zkop\u00edrovat v\u00fdpis trasov\u00e1n\u00ed z\u00e1sobn\u00edku do schr\u00e1nky -SPLASHexOccured= Omlouv\u00e1me se, do\u0161lo k z\u00e1va\u017en\u00e9 v\u00fdjimce... +SPLASHexOccured= Do\u0161lo k z\u00e1va\u017en\u00e9 v\u00fdjimce... SPLASHHome= Dom\u016f SPLASHcantCopyEx= Nelze kop\u00edrovat v\u00fdjimku. SPLASHnoExRecorded= Nebyla zaznamen\u00e1na \u017e\u00e1dn\u00e1 v\u00fdjimka. SPLASHmainL1= Je\u0161t\u011b v\u00edce informac\u00ed naleznete na webu {0}. Postupujte dle uveden\u00fdch krok\u016f, abyste z\u00edskali informace nebo nahl\u00e1sili chybu. SPLASHurl= http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs SPLASHurlLooks= http://icedtea.classpath.org/wiki/IcedTea-Web -SPLASHmainL3= Omlouv\u00e1me se, nejsou dostupn\u00e9 dal\u0161\u00ed informace. Zkuste spustit prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a pro\u010d\u00edst v\u00fdstup. +SPLASHmainL3= Nejsou dostupn\u00e9 \u017e\u00e1dn\u00e9 dal\u0161\u00ed informace. Zkuste spustit prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a analyzovat v\u00fdstup. SPLASHcloseAndCopyShorter= Zav\u0159\u00edt a kop\u00edrovat do schr\u00e1nky -SPLASHmainL4= Byla zaznamen\u00e1na v\u00fdjimka vypsan\u00e1 n\u00ed\u017ee. Chcete-li je\u0161t\u011b v\u00edce informac\u00ed, zkuste spustit prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a pro\u010d\u00edst v\u00fdstup. +SPLASHmainL4= Do\u0161lo k n\u00e1sleduj\u00edc\u00ed v\u00fdjimce. Chcete-li v\u00edce informac\u00ed, zkuste spustit prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a analyzovat v\u00fdstup. SPLASHexWas= Zaznamenan\u00e1 v\u00fdjimka: SPLASHcfl= Nelze \u010d\u00edst odkaz SPLASHvendorsInfo= Informace od dodavatele va\u0161\u00ed aplikace SPLASHanotherInfo= Dal\u0161\u00ed dostupn\u00e9 informace -SPLASHdefaultHomepage = Nespecifikovan\u00e1 domovsk\u00e1 st\u00e1nka, je doporu\u010deno zkontrolovat zdroj -SPLASHerrorInInformation = Chyba na\u010d\u00edt\u00e1n\u00ed informa\u010dn\u00edho elementu, je doporu\u010deno zkontrolovat zdroj -SPLASHmissingInformation = Informa\u010dn\u00ed element chyb\u00fd, je doporu\u010deno zkontrolovat zdroj -SPLASHchainWas = N\u00ed\u017ee je seznam v\u00fdjimek, kter\u00e9 prov\u00e1zely start appeltu. Tento seznam ale m\u016f\u017er poch\u00e1zet z n\u011bkolik\u00e1 r\u016fzn\u00fdch applet\u016f. Pro dob\u00e9 chybo\u00e9 hl\u00e1\u0161en\u00ed stoj\u00e9 za to pustit applet izolovane. \ No newline at end of file +SPLASHdefaultHomepage= Nen\u00ed definov\u00e1n atribut \u201ehomepage\u201c, rad\u011bji ov\u011b\u0159te zdroj. +SPLASHerrorInInformation= Chyba p\u0159i na\u010d\u00edt\u00e1n\u00ed elementu \u201einformation\u201c, rad\u011bji ov\u011b\u0159te zdroj. +SPLASHmissingInformation= Chyb\u00ed element \u201einformation\u201c, rad\u011bji ov\u011b\u0159te zdroj. +SPLASHchainWas= Toto je seznam v\u00fdjimek, ke kter\u00fdm do\u0161lo p\u0159i spou\u0161t\u011bn\u00ed appletu. Vezm\u011bte na v\u011bdom\u00ed, \u017ee zdroji uveden\u00fdch v\u00fdjimek m\u016f\u017ee b\u00fdt v\u00edce r\u016fzn\u00fdch applet\u016f. Abyste mohli vytvo\u0159it u\u017eite\u010dn\u00e9 hl\u00e1\u0161en\u00ed o chyb\u011b, ujist\u011bte se, \u017ee b\u011b\u017e\u00ed pouze jeden applet. + +APPEXTSECappletSecurityLevelExtraHighId=Vypn\u011bte b\u011bh v\u0161ech applet\u016f prost\u0159ed\u00ed Java. +APPEXTSECappletSecurityLevelVeryHighId=Velmi vysok\u00e1 \u00farove\u0148 zabezpe\u010den\u00ed +APPEXTSECappletSecurityLevelHighId=Vysok\u00e1 \u00farove\u0148 zabezpe\u010den\u00ed +APPEXTSECappletSecurityLevelLowId=N\u00edzk\u00e1 \u00farove\u0148 zabezpe\u010den\u00ed +APPEXTSECappletSecurityLevelExtraHighExplanation=Nebude spu\u0161t\u011bn \u017e\u00e1dn\u00fd applet. +APPEXTSECappletSecurityLevelVeryHighExplanation=Nebude spu\u0161t\u011bn \u017e\u00e1dn\u00fd nepodepsan\u00fd applet. +APPEXTSECappletSecurityLevelHighExplanation=U\u017eivatel bude dot\u00e1z\u00e1n na spu\u0161t\u011bn\u00ed ka\u017ed\u00e9ho nepodepsan\u00e9ho appletu. +APPEXTSECappletSecurityLevelLowExplanation=Budou spu\u0161t\u011bny v\u0161echny applety (dokonce i ty nepodepsan\u00e9). +APPEXTSECunsignedAppletActionAlways=V\u017edy d\u016fv\u011b\u0159ovat t\u011bmto (odpov\u00eddaj\u00edc\u00edm) applet\u016fm +APPEXTSECunsignedAppletActionNever=Nikdy ned\u016fv\u011b\u0159ovat t\u011bmto (odpov\u00eddaj\u00edc\u00edm) applet\u016fm +APPEXTSECunsignedAppletActionYes=Tento applet byl zhl\u00e9dnut a povolen. +APPEXTSECunsignedAppletActionNo=Tento applet byl zhl\u00e9dnut a odm\u00edtnut. +APPEXTSECControlPanelExtendedAppletSecurityTitle=Roz\u0161\u00ed\u0159en\u00e9 zabezpe\u010den\u00ed applet\u016f +APPEXTSECguiTableModelTableColumnAction=Akce +APPEXTSECguiTableModelTableColumnDateOfAction=Datum akce +APPEXTSECguiTableModelTableColumnDocumentBase=Z\u00e1kladn\u00ed adresa (document-base) +APPEXTSECguiTableModelTableColumnCodeBase=Z\u00e1kladna k\u00f3du (code-base) +APPEXTSECguiTableModelTableColumnArchives=Arch\u00edvy +APPEXTSECguiPanelAppletInfoHederPart1={0} {1} +APPEXTSECguiPanelAppletInfoHederPart2={0} z {1} +APPEXTSECguiPanelConfirmDeletionOf=Skute\u010dn\u011b chcete odstranit n\u00e1sleduj\u00edc\u00ed po\u010det polo\u017eek: {0}? +APPEXTSECguiPanelHelpButton=N\u00e1pov\u011bda +APPEXTSECguiPanelSecurityLevel=\u00darove\u0148 zabezpe\u010den\u00ed +APPEXTSECguiPanelGlobalBehaviourCaption=Nastaven\u00ed glob\u00e1ln\u00edho chov\u00e1n\u00ed applet\u016f +APPEXTSECguiPanelDeleteMenuSelected=vybran\u00e9 +APPEXTSECguiPanelDeleteMenuAllA=v\u0161echny povolen\u00e9 (A) +APPEXTSECguiPanelDeleteMenuAllN=v\u0161echny zak\u00e1zan\u00e9 (N) +APPEXTSECguiPanelDeleteMenuAlly=v\u0161echny schv\u00e1len\u00e9 (y) +APPEXTSECguiPanelDeleteMenuAlln=v\u0161echny odm\u00edtnut\u00e9 (n) +APPEXTSECguiPanelDeleteMenuAllAll=\u00fapln\u011b v\u0161echny +APPEXTSECguiPanelDeleteButton=Vymazat +APPEXTSECguiPanelDeleteButtonToolTip=V pr\u016fb\u011bhu proch\u00e1zen\u00ed tabulky m\u016f\u017eete stisknout kl\u00e1vesu Delete. T\u00edm provedete akci odstranit vybran\u00e9. +APPEXTSECguiPanelTestUrlButton=Otestovat URL +APPEXTSECguiPanelAddRowButton=P\u0159idat \u0159\u00e1dek +APPEXTSECguiPanelValidateTableButton=Ov\u011b\u0159it tabulku +APPEXTSECguiPanelAskeforeActionBox=P\u0159ed akc\u00ed se dot\u00e1zat +APPEXTSECguiPanelShowRegExesBox=Uk\u00e1zat \u00fapln\u00e9 regul\u00e1rn\u00ed v\u00fdrazy +APPEXTSECguiPanelInverSelection=P\u0159evr\u00e1tit v\u00fdb\u011br +APPEXTSECguiPanelMoveRowUp=Posunout \u0159\u00e1dek nahoru +APPEXTSECguiPanelMoveRowDown=Posunout \u0159\u00e1dek dol\u016f +APPEXTSECguiPanelCustomDefs=Vlastn\u00ed definice +APPEXTSECguiPanelGlobalDefs=Glob\u00e1ln\u00ed definice +APPEXTSECguiPanelDocTest=Zadejte URL z\u00e1kladn\u00ed adresy (document base) +APPEXTSECguiPanelCodeTest=Zadejte URL z\u00e1kladny k\u00f3du (code base) +APPEXTSECguiPanelNoMatch=\u017d\u00e1dn\u00e1 shoda +APPEXTSECguiPanelMatchingNote=Vezm\u011bte na v\u011bdom\u00ed, \u017ee jako v\u00fdsledek bude br\u00e1n pouze prvn\u00ed shodn\u00fd v\u00fdskyt. +APPEXTSECguiPanelMatched=Shody +APPEXTSECguiPanelMatchingError=Chyba p\u0159i hled\u00e1n\u00ed shody: {0} +APPEXTSECguiPanelCanNotValidate=Nelze ov\u011b\u0159it, nebo nelze vytvo\u0159it soubor tmp \u2013 {0}. +APPEXTSECguiPanelEmptyDoc=V\u0161echny z\u00e1kladn\u00ed adresy (document-bases) musej\u00ed b\u00fdt vypln\u011bny. +APPEXTSECguiPanelEmptyCode=V\u0161echny z\u00e1kladny k\u00f3du (code-bases) musej\u00ed b\u00fdt vypln\u011bny. +APPEXTSECguiPanelTableValid=Zd\u00e1 se, \u017ee tabulka je v po\u0159\u00e1dku. +APPEXTSECguiPanelTableInvalid=Tabulka je neplatn\u00e1. Chyba: {0} +APPEXTSECguiPanelShowOnlyPermanent=Zobrazit pouze trval\u00e9 z\u00e1znamy +APPEXTSECguiPanelShowOnlyTemporal=Zobrazit pouze ji\u017e d\u0159\u00edve do\u010dasn\u011b povolen\u00e9 nebo zak\u00e1zan\u00e9 z\u00e1znamy +APPEXTSECguiPanelShowAll=Zobrazit v\u0161echny z\u00e1znamy +APPEXTSECguiPanelShowOnlyPermanentA=Zobrazit pouze povolen\u00e9 trval\u00e9 z\u00e1znamy +APPEXTSECguiPanelShowOnlyPermanentN=Zobrazit pouze zak\u00e1zan\u00e9 trval\u00e9 z\u00e1znamy +APPEXTSECguiPanelShowOnlyTemporalY=Zobrazit pouze d\u0159\u00edve povolen\u00e9 z\u00e1znamy applet\u016f +APPEXTSECguiPanelShowOnlyTemporalN=Zobrazit pouze d\u0159\u00edve zak\u00e1zan\u00e9 z\u00e1znamy applet\u016f +APPEXTSEChelpHomeDialogue=Odstavec o dialogu \ No newline at end of file diff -r 8515c529e29c -r 3b2833a879f0 netx/net/sourceforge/jnlp/util/JarFile.java --- a/netx/net/sourceforge/jnlp/util/JarFile.java Thu Apr 25 17:05:31 2013 -0400 +++ b/netx/net/sourceforge/jnlp/util/JarFile.java Fri Apr 26 12:57:41 2013 +0200 @@ -36,14 +36,16 @@ exception statement from your version. */ package net.sourceforge.jnlp.util; +import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.util.zip.ZipFile; import net.sourceforge.jnlp.runtime.JNLPRuntime; -public class JarFile extends java.util.jar.JarFile { +//in jdk6 java.util.jar.JarFile is not Closeable - fixing +//overwritening class can add duplicate occurence of interface so this should be perfectly safe +public class JarFile extends java.util.jar.JarFile implements Closeable{ public JarFile(String name) throws IOException { super(name); diff -r 8515c529e29c -r 3b2833a879f0 netx/net/sourceforge/jnlp/util/StreamUtils.java --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Apr 25 17:05:31 2013 -0400 +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Fri Apr 26 12:57:41 2013 +0200 @@ -73,8 +73,8 @@ } } } - - + + public static String readStreamAsString(InputStream stream) throws IOException { InputStreamReader is = new InputStreamReader(stream); StringBuilder sb = new StringBuilder(); diff -r 8515c529e29c -r 3b2833a879f0 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java --- a/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Thu Apr 25 17:05:31 2013 -0400 +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Fri Apr 26 12:57:41 2013 +0200 @@ -40,6 +40,8 @@ From jvanek at icedtea.classpath.org Fri Apr 26 03:57:00 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 10:57:00 +0000 Subject: /hg/icedtea-web: Added missing changelog for CZ localisation Message-ID: changeset 96618e0eb11b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=96618e0eb11b author: Jiri Vanek date: Fri Apr 26 13:00:26 2013 +0200 Added missing changelog for CZ localisation diffstat: ChangeLog | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diffs (14 lines): diff -r 3b2833a879f0 -r 96618e0eb11b ChangeLog --- a/ChangeLog Fri Apr 26 12:57:41 2013 +0200 +++ b/ChangeLog Fri Apr 26 13:00:26 2013 +0200 @@ -1,3 +1,10 @@ +2013-04-26 Jiri Vanek + Alexandr Kolouch + + Improved and completed CZ localisation + * netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties: + Added missing items, some fixes + 2013-04-26 Jiri Vanek Alexandr Kolouch From gitne at excite.co.jp Fri Apr 26 03:57:14 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 19:57:14 +0900 Subject: =?ISO-2022-JP?B?UmU6IElUVyB0cmFubHNhdGlvbg==?= Message-ID: <201304261057.r3QAvE2N009493@mail-web01.excite.co.jp> "Jiri Vanek" wrote: > Forwarding Alexander's "new" cz_CS transaltion. > I will do review, merge and push. No new code is epxected. > > J. > > -------- Original Message -------- > Subject: Re: ITW tranlsation > Date: Fri, 26 Apr 2013 09:12:15 +0200 > From: skolnag at gmail.com > To: Jiri Vanek > > > > Ahoj, > > OK, tak tady to máš. Není přeloženo to povídání. To dodělám jindy, teď na to nebyl čas. > > Čau > Saša I have just one minor note on the cs_CZ localization. Would you consider renaming Messages_cs_CZ.properties to Messages_cs.properties, as long there are no specifics to the Czech Republic in it? This would solve the problem for minorities using the Czech language outside of the Czech Republic or users who's computers are configured for a country other than the Czech Republic but use Czech language. As far as I can tell, with cs_CZ one is going to get Czech messages only if the location or country of the computer is the Czech Republic as well (although I am not entirely sure about that). Regards, Jacob From jvanek at redhat.com Fri Apr 26 04:13:17 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 13:13:17 +0200 Subject: [rfc] [icedtea-web] renaming Messages_cs_CZ to Messages_cs (was Re: ITW tranlsation) In-Reply-To: <201304261057.r3QAvE2N009493@mail-web01.excite.co.jp> References: <201304261057.r3QAvE2N009493@mail-web01.excite.co.jp> Message-ID: <517A614D.7050609@redhat.com> On 04/26/2013 12:57 PM, Jacob Wisor wrote: > "Jiri Vanek" wrote: >> Forwarding Alexander's "new" cz_CS transaltion. >> I will do review, merge and push. No new code is epxected. >> >> J. >> >> -------- Original Message -------- >> Subject: Re: ITW tranlsation >> Date: Fri, 26 Apr 2013 09:12:15 +0200 >> From: skolnag at gmail.com >> To: Jiri Vanek >> >> >> >> Ahoj, >> >> OK, tak tady to máš. Není přeloženo to povídání. To dodělám jindy, teď na to nebylčas. >> >> Čau >> Saša > > I have just one minor note on the cs_CZ localization. Would you consider renaming Messages_cs_CZ.properties to Messages_cs.properties, as long there are no specifics to the Czech Republic in it? This would solve the problem for minorities using the Czech language outside of the Czech Republic or users who's computers are configured for a country other than the Czech Republic but use Czech language. As far as I can tell, with cs_CZ one is going to get Czech messages only if the location or country of the computer is the Czech Republic as well (although I am not entirely sure about that). I'm not sure if this is even possible. Czech language is used only In Czech republic. But the same could one say about pl... Damn I have no idea :) Imho there does not exists any enhacning locale for cs (aas do for de eg) there is just cs_CZ, nothing else. Eg for de there is: de de_CH de_AT .... For Poland i think there is also *only* pl_PL. Nothing else Some googling suggest that cs only and pl only should be supported and valaid... Thanx, J. From jvanek at redhat.com Fri Apr 26 04:45:42 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 13:45:42 +0200 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <201304260828.r3Q8S8jX022689@mail-web03.excite.co.jp> References: <201304260828.r3Q8S8jX022689@mail-web03.excite.co.jp> Message-ID: <517A68E6.5010508@redhat.com> On 04/26/2013 10:28 AM, Jacob Wisor wrote: > "Jiri Vanek" wrote: >> On 04/25/2013 11:33 PM, Jacob Wisor wrote: >>> Hello there! >>> >>> Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. >>> I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. >>> >>> 2013-04-25 Jacob Wisor >>> >>> * netx/net/sourceforge/jnlp/resources/Messages.properties: >>> Streamlined names, removed typos, removed unneccessary trailing white spaces, >>> fixed inconsistencies >>> >>> * netx/net/sourceforge/jnlp/resources/Messages_de.properties: >>> Applied all changes from modified source >>> Polished and reformulated some messages to better fit the localization guide >>> Made a few translation more precise or correct >>> Syntactic adjustments >>> >>> * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: >>> Added initial Polish localization >>> >>> Happy reviewing! ;) >>> >>> Jacob >> thank you very much. I will add the tests let Adam to watch over a bit the text itself. >> Then I will push for you. >> >> The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). >> As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. >> >> >> Thank you very much for this work! >> >> J. > > Thank you for reviewing. > > While writing the rfc, I forgot to ask you to run that test on complete messages since I have manually added some messages to my pl working document after I started working on it, that is there have been English messages added during the course of my translation. So please, could you see to it that I have not missed anything? Thank you. > Ok, here is the result, The Error! means that items is missing in translation. if you are willing you can add missing keys. In meantime,I will continue in integration of those. Thank you very much! J. Checking for same items between de x unknown_so_default_UNKNOWN_SO_DEFAULT (should be de x default) Error! Items equals for: SUnsignedQuestion = Allow the applet to run? Error! Items equals for: SRememberAppletOnly = For applet Error! Items equals for: LUnsignedAppletUserDenied = The applet was unsigned, and was not trusted. Error! Items equals for: LUnsignedApplet = The applet was unsigned. Error! Items equals for: CPJVMitwExecValidation = Validate JVM for icedtea-web Error! Items equals for: CPJVMisDir = Ok, the path you chose is a directory. Error! Items equals for: CPJVMconfirmReset = Reset to default? Error! Items equals for: CPJVMopenJdkFound = Excellent, OpenJDK detected Error! Items equals for: SUnsignedSummary = An unsigned Java application wants to run Error! Items equals for: CPJVMgijFound = Warning, gij detected Error! Items equals for: CPJVMibmFound = Good, IBM java detected Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation Error! Items equals for: CPJVMoracleFound = Great, Oracle java detected Error! Items equals for: SRememberCodebase = For site {0} Error! Items equals for: CPJVMjava = Ok, the directory you chose contains bin/java. Error! Items equals for: CPJVMitwExec = Set JVM for icedtea-web - working best with OpenJDK Error! Items equals for: CPJVMvalueNotSet = Value is not set. Hardcoded JVM will be used. Error! Items equals for: CPJVMPluginSelectExec = Select JVM for icedtea-web Error! Items equals for: SUnsignedDetail = An unsigned application from the following location wants to run:
      {0}
    The page which made the request was:
      {1}

    It is recommended you only run applications from sites you trust. Error! Items equals for: CPJVMstrangeProcess = Your path had an executable process, but it was not recognized. Verify the Java version in the console output. Error! Items equals for: CPJVMnoSuccess = Error, process have not ended successfully, see output for details, but your java is not set correctly. Error! Items equals for: BXignoreheaders = Skip jar header verification. Error! Items equals for: CPJVMvalidated = Validation result for Error! Items equals for: CPJVMnone = No validation result for Error! Items equals for: CPJVMnotLaunched = Error, process was not launched, see console output for more info. Error! Items equals for: SUnsignedRejectedBefore = You have rejected this applet previously. Error! Items equals for: CPJVMconfirmInvalidJdkTitle = Confirm invalid JDK Error! Items equals for: SRememberOption = Remember this option? Error! Items equals for: CPJVMnoJava = Error, the directory you chose does not contain bin/java. Error! Items equals for: CPJVMnotDir = Error, The path you chose is not a directory. Error! Items equals for: SUnsignedAllowedBefore = You have accepted this applet previously. Error! Items equals for: LUnsignedAppletPolicyDenied = The applet was unsigned, and the security policy prevented it from running. Error! Items equals for: CPJVMnoRtJar = Error, the directory you chose does not contain lib/rt.jar Error! Items equals for: CPJVMNotokMessage2 = You might be seeing this message because:
    * Some validation has not been passed
    * Non-OpenJDK is detected
    With invalid JDK IcedTea-Web will probably not be able to start.
    You will have to modify or remove {0} property in your configuration file {1}.
    You should try to search for OpenJDK in your system or be sure you know what you are doing. Error! Items equals for: CPJVMNotokMessage1 = You have entered invalid JDK value ({0}) with following error message: Error! Items equals for: CPJVMrtJar = Ok, the directory you chose contains lib/rt.jar. 36 errors allResourcesAreReallyDifferent fo de x default Checking for same items between pl x unknown_so_default_UNKNOWN_SO_DEFAULT (should be pl x default) Error! Items equals for: SUnsignedQuestion = Allow the applet to run? Error! Items equals for: SRememberAppletOnly = For applet Error! Items equals for: LUnsignedAppletUserDenied = The applet was unsigned, and was not trusted. Error! Items equals for: LUnsignedApplet = The applet was unsigned. Error! Items equals for: CPJVMitwExecValidation = Validate JVM for icedtea-web Error! Items equals for: CPJVMisDir = Ok, the path you chose is a directory. Error! Items equals for: CPJVMconfirmReset = Reset to default? Error! Items equals for: CPJVMopenJdkFound = Excellent, OpenJDK detected Error! Items equals for: SUnsignedSummary = An unsigned Java application wants to run Error! Items equals for: CPJVMgijFound = Warning, gij detected Error! Items equals for: CPJVMibmFound = Good, IBM java detected Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation Error! Items equals for: CPJVMoracleFound = Great, Oracle java detected Error! Items equals for: SRememberCodebase = For site {0} Error! Items equals for: CPJVMjava = Ok, the directory you chose contains bin/java. Error! Items equals for: CPJVMitwExec = Set JVM for icedtea-web - working best with OpenJDK Error! Items equals for: CPJVMvalueNotSet = Value is not set. Hardcoded JVM will be used. Error! Items equals for: CPJVMPluginSelectExec = Select JVM for icedtea-web Error! Items equals for: SUnsignedDetail = An unsigned application from the following location wants to run:
      {0}
    The page which made the request was:
      {1}

    It is recommended you only run applications from sites you trust. Error! Items equals for: CPJVMstrangeProcess = Your path had an executable process, but it was not recognized. Verify the Java version in the console output. Error! Items equals for: CPJVMnoSuccess = Error, process have not ended successfully, see output for details, but your java is not set correctly. Error! Items equals for: BXignoreheaders = Skip jar header verification. Error! Items equals for: CPJVMvalidated = Validation result for Error! Items equals for: CPJVMnone = No validation result for Error! Items equals for: CPJVMnotLaunched = Error, process was not launched, see console output for more info. Error! Items equals for: SUnsignedRejectedBefore = You have rejected this applet previously. Error! Items equals for: CPJVMconfirmInvalidJdkTitle = Confirm invalid JDK Error! Items equals for: SRememberOption = Remember this option? Error! Items equals for: CPJVMnoJava = Error, the directory you chose does not contain bin/java. Error! Items equals for: CPJVMnotDir = Error, The path you chose is not a directory. Error! Items equals for: SUnsignedAllowedBefore = You have accepted this applet previously. Error! Items equals for: LUnsignedAppletPolicyDenied = The applet was unsigned, and the security policy prevented it from running. Error! Items equals for: CPJVMnoRtJar = Error, the directory you chose does not contain lib/rt.jar Error! Items equals for: CPJVMNotokMessage2 = You might be seeing this message because:
    * Some validation has not been passed
    * Non-OpenJDK is detected
    With invalid JDK IcedTea-Web will probably not be able to start.
    You will have to modify or remove {0} property in your configuration file {1}.
    You should try to search for OpenJDK in your system or be sure you know what you are doing. Error! Items equals for: CPJVMNotokMessage1 = You have entered invalid JDK value ({0}) with following error message: Error! Items equals for: CPJVMrtJar = Ok, the directory you chose contains lib/rt.jar. 36 errors allResourcesAreReallyDifferent fo pl x default They are same for DE and PL Checking for same items between pl x de (should be pl x de) 0 errors allResourcesAreReallyDifferent fo pl x de ;) J. From gitne at excite.co.jp Fri Apr 26 05:01:57 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 21:01:57 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtyZmNdIFtpY2VkdGVhLXdlYl0gcmVuYW1pbmcgTWVzc2FnZXNfY3NfQ1ogdG8gTWVzc2FnZXNfY3MgKHdhcyBSZTpJVFcgdHJhbmxzYXRpb24p?= Message-ID: <201304261201.r3QC1vcq014525@mail-web01.excite.co.jp> "Jiri Vanek" wrote: > On 04/26/2013 12:57 PM, Jacob Wisor wrote: > > "Jiri Vanek" wrote: > >> Forwarding Alexander's "new" cz_CS transaltion. > >> I will do review, merge and push. No new code is epxected. > >> > >> J. > >> > >> -------- Original Message -------- > >> Subject: Re: ITW tranlsation > >> Date: Fri, 26 Apr 2013 09:12:15 +0200 > >> From: skolnag at gmail.com > >> To: Jiri Vanek > >> > >> > >> > >> Ahoj, > >> > >> OK, tak tady to máš. Není přeloženo to povídání. To dodělám jindy, teď na to nebylčas. > >> > >> Čau > >> Saša > > > > I have just one minor note on the cs_CZ localization. Would you consider renaming Messages_cs_CZ.properties to Messages_cs.properties, as long there are no specifics to the Czech Republic in it? This would solve the problem for minorities using the Czech language outside of the Czech Republic or users who's computers are configured for a country other than the Czech Republic but use Czech language. As far as I can tell, with cs_CZ one is going to get Czech messages only if the location or country of the computer is the Czech Republic as well (although I am not entirely sure about that). > > I'm not sure if this is even possible. > Czech language is used only In Czech republic. But the same could one say about pl... > Damn I have no idea :) I would not be so sure that Czech is not used elsewhere. What about Slovakia? Infact, in Poland for example there are German, Belarusian, Ukrainian, Romani, Russian, Lemko, Lithuanian, Slovak, Jewish and Armenian minorities that have legal status. Some of them also use corresponding languages officially. Similar is true about minorities in Germany. Similar applies probably to the Czech Republic and Slovakia, as they are EU members and also have signed the "Framework Convention for the Protection of National Minorities". Anyhow, users should be able to choose a configuration that fits them best. > Imho there does not exists any enhacning locale for cs (aas do for de eg) > there is just cs_CZ, nothing else. > Eg for de there is: > de > de_CH > de_AT > .... > > For Poland i think there is also *only* pl_PL. Nothing else > > Some googling suggest that cs only and pl only should be supported and valaid... It is true that the ISO only lists cs_CZ and pl_PL in their language code standards. But that standard is primarily focused on languages only and does not take computer configurations, minorities or political and social progress into account. Infact, there have been discussions and work is in progress in the Java community to make the Locale class more flexible because of the above mentioned limitations. I for myself sometimes use a sort of pl_DE configuration. That is, I have Polish messages with German time, currency (especially because of the Euro as the default currency), mesurements etc. But as I mentioned earlier, I do not know the behavior of Java under these circumstances for sure, I have not tested it yet. Maybe Java implementations behaive even differently across OSes. Jacob From jvanek at redhat.com Fri Apr 26 05:17:27 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 14:17:27 +0200 Subject: [rfc] [icedtea-web] renaming Messages_cs_CZ to Messages_cs (was Re:ITW tranlsation) In-Reply-To: <201304261201.r3QC1vcq014525@mail-web01.excite.co.jp> References: <201304261201.r3QC1vcq014525@mail-web01.excite.co.jp> Message-ID: <517A7057.6010602@redhat.com> On 04/26/2013 02:01 PM, Jacob Wisor wrote: > "Jiri Vanek" wrote: >> On 04/26/2013 12:57 PM, Jacob Wisor wrote: >>> "Jiri Vanek" wrote: >>>> Forwarding Alexander's "new" cz_CS transaltion. >>>> I will do review, merge and push. No new code is epxected. >>>> >>>> J. >>>> >>>> -------- Original Message -------- >>>> Subject: Re: ITW tranlsation >>>> Date: Fri, 26 Apr 2013 09:12:15 +0200 >>>> From: skolnag at gmail.com >>>> To: Jiri Vanek >>>> >>>> >>>> >>>> Ahoj, >>>> >>>> OK, tak tady to máš. Není přeloženo to povídání. To dodělám jindy, teď na to nebylčas. >>>> >>>> Čau >>>> Saša >>> >>> I have just one minor note on the cs_CZ localization. Would you consider renaming Messages_cs_CZ.properties to Messages_cs.properties, as long there are no specifics to the Czech Republic in it? This would solve the problem for minorities using the Czech language outside of the Czech Republic or users who's computers are configured for a country other than the Czech Republic but use Czech language. As far as I can tell, with cs_CZ one is going to get Czech messages only if the location or country of the computer is the Czech Republic as well (although I am not entirely sure about that). >> >> I'm not sure if this is even possible. >> Czech language is used only In Czech republic. But the same could one say about pl... >> Damn I have no idea :) > > I would not be so sure that Czech is not used elsewhere. What about Slovakia? Infact, in Poland for example there are German, Belarusian, Ukrainian, Romani, Russian, Lemko, Lithuanian, Slovak, Jewish and Armenian minorities that have legal status. Some of them also use corresponding languages officially. Similar is true about minorities in Germany. Similar applies probably to the Czech Republic and Slovakia, as they are EU members and also have signed the "Framework Convention for the Protection of National Minorities". Slovakia have their own language :)) We (cz x sk) understand each other just little bit more then to polish :) > Anyhow, users should be able to choose a configuration that fits them best. Agree > >> Imho there does not exists any enhacning locale for cs (aas do for de eg) >> there is just cs_CZ, nothing else. >> Eg for de there is: >> de >> de_CH >> de_AT >> .... >> >> For Poland i think there is also *only* pl_PL. Nothing else >> >> Some googling suggest that cs only and pl only should be supported and valaid... > > It is true that the ISO only lists cs_CZ and pl_PL in their language code standards. But that standard is primarily focused on languages only and does not take computer configurations, minorities or political and social progress into account. Infact, there have been discussions and work is in progress in the Java community to make the Locale class more flexible because of the above mentioned limitations. > I for myself sometimes use a sort of pl_DE configuration. That is, I have Polish messages with German time, currency (especially because of the Euro as the default currency), mesurements etc. But as I mentioned earlier, I do not know the behavior of Java under these circumstances for sure, I have not tested it yet. Maybe Java implementations behaive even differently across OSes. I see.. well java is really lacking here. It consider pl_DE as invalid one and tooks english messages (and it is not jsut ITW). But it looks like JDK8 should have some improvements here. >From above I think the renaming is good idea. but I will wait for one more ack on this. Thank you once more time, J. From andrew at icedtea.classpath.org Fri Apr 26 05:14:21 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 26 Apr 2013 12:14:21 +0000 Subject: /hg/icedtea6: Update NEWS following latest releases. Message-ID: changeset b08a2c95d268 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b08a2c95d268 author: Andrew John Hughes date: Fri Apr 26 13:13:40 2013 +0100 Update NEWS following latest releases. 2013-04-26 Andrew John Hughes * NEWS: Add release notes for 1.11.10, 1.11.11 and 1.12.5 and remove features listed under 1.13.0 that were provided in those releases. diffstat: ChangeLog | 6 +++ NEWS | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 126 insertions(+), 3 deletions(-) diffs (163 lines): diff -r 3e701dcab7d4 -r b08a2c95d268 ChangeLog --- a/ChangeLog Fri Apr 26 03:32:15 2013 +0100 +++ b/ChangeLog Fri Apr 26 13:13:40 2013 +0100 @@ -1,3 +1,9 @@ +2013-04-26 Andrew John Hughes + + * NEWS: Add release notes for 1.11.10, 1.11.11 + and 1.12.5 and remove features listed under 1.13.0 + that were provided in those releases. + 2013-04-24 Andrew John Hughes * Makefile.am: diff -r 3e701dcab7d4 -r b08a2c95d268 NEWS --- a/NEWS Fri Apr 26 03:32:15 2013 +0100 +++ b/NEWS Fri Apr 26 13:13:40 2013 +0100 @@ -15,19 +15,135 @@ * New features - PR1317: Provide an option to build with a more up-to-date HotSpot - - PR1380: Add AArch64 support to Zero * Backports - S8009641: OpenJDK 6 build broken via 8007675 fix - - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts (bundled HotSpot only) - - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7197906, bundled HotSpot only) - OJ4: Backport the new version of copyMemory from OpenJDK 7 to allow Snappy to build * Bug fixes - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) + +New in release 1.12.5 (2013-04-24): + +* New features + - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. + - PR1380: Add AArch64 support to Zero +* Security fixes + - S6657673, CVE-2013-1518: Issues with JAXP + - S7200507: Refactor Introspector internals + - S8000724, CVE-2013-2417: Improve networking serialization + - S8001031, CVE-2013-2419: Better font processing + - S8001040, CVE-2013-1537: Rework RMI model + - S8001322: Refactor deserialization + - S8001329, CVE-2013-1557: Augment RMI logging + - S8003335: Better handling of Finalizer thread + - S8003445: Adjust JAX-WS to focus on API + - S8003543, CVE-2013-2415: Improve processing of MTOM attachments + - S8004261: Improve input validation + - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames + - S8004986, CVE-2013-2383: Better handling of glyph table + - S8004987, CVE-2013-2384: Improve font layout + - S8004994, CVE-2013-1569: Improve checking of glyph table + - S8005432: Update access to JAX-WS + - S8005943: (process) Improved Runtime.exec + - S8006309: More reliable control panel operation + - S8006435, CVE-2013-2424: Improvements in JMX + - S8006790: Improve checking for windows + - S8006795: Improve font warning messages + - S8007406: Improve accessibility of AccessBridge + - S8007617, CVE-2013-2420: Better validation of images + - S8007667, CVE-2013-2430: Better image reading + - S8007918, CVE-2013-2429: Better image writing + - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap + - S8009305, CVE-2013-0401: Improve AWT data transfer + - S8009699, CVE-2013-2421: Methodhandle lookup + - S8009814, CVE-2013-1488: Better driver management + - S8009857, CVE-2013-2422: Problem with plugin + - RH952389: Temporary files created with insecure permissions +* Backports + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts + - S7036559: ConcurrentHashMap footprint and contention improvements + - S5102804: Memory leak in Introspector.getBeanInfo(Class) for custom BeanInfo: Class param (with WeakCache from S6397609) + - S6501644: sync LayoutEngine *code* structure to match ICU + - S6886358: layout code update + - S6963811: Deadlock-prone locking changes in Introspector + - S7017324: Kerning crash in JDK 7 since ICU layout update + - S7064279: Introspector.getBeanInfo() should release some resources in timely manner + - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 + - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) + - S8009530: ICU Kern table support broken +* Bug fixes + - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7017193) - PR1362: Fedora 19 / rawhide FTBFS SIGILL - PR1338: Remove dependence on libXp - PR1339: Simplify the rhino class rewriter to avoid use of concurrency - PR1336: Bootstrap failure on Fedora 17/18 + - PR1319: Correct #ifdef to #if + - PR1402: Support glibc < 2.17 with AArch64 patch + - Give xalan/xerces access to their own internal packages. + +New in release 1.11.11 (2013-04-24): + +* Security fixes + - RH952389: Temporary files created with insecure permissions +* Backports + - S7133220: Additional patches to JAXP 1.4.5 update 1 for 7u4 (partial for S6657673) + - S6657673: Issues with JAXP (include fragment dependent on S7133220) + - S8009530: ICU Kern table support broken +* Bug fixes + - PR1402: Support glibc < 2.17 with AArch64 patch + - Give xalan/xerces access to their own internal packages. + +New in release 1.11.10 (2013-04-17): + +* New features + - JAXP, JAXWS & JAF supplied as patches rather than drops to aid subsequent patching. + - PR1380: Add AArch64 support to Zero +* Security fixes + - S6657673, CVE-2013-1518: Issues with JAXP + - S7200507: Refactor Introspector internals + - S8000724, CVE-2013-2417: Improve networking serialization + - S8001031, CVE-2013-2419: Better font processing + - S8001040, CVE-2013-1537: Rework RMI model + - S8001322: Refactor deserialization + - S8001329, CVE-2013-1557: Augment RMI logging + - S8003335: Better handling of Finalizer thread + - S8003445: Adjust JAX-WS to focus on API + - S8003543, CVE-2013-2415: Improve processing of MTOM attachments + - S8004261: Improve input validation + - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames + - S8004986, CVE-2013-2383: Better handling of glyph table + - S8004987, CVE-2013-2384: Improve font layout + - S8004994, CVE-2013-1569: Improve checking of glyph table + - S8005432: Update access to JAX-WS + - S8005943: (process) Improved Runtime.exec + - S8006309: More reliable control panel operation + - S8006435, CVE-2013-2424: Improvements in JMX + - S8006790: Improve checking for windows + - S8006795: Improve font warning messages + - S8007406: Improve accessibility of AccessBridge + - S8007617, CVE-2013-2420: Better validation of images + - S8007667, CVE-2013-2430: Better image reading + - S8007918, CVE-2013-2429: Better image writing + - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap + - S8009305, CVE-2013-0401: Improve AWT data transfer + - S8009699, CVE-2013-2421: Methodhandle lookup + - S8009814, CVE-2013-1488: Better driver management + - S8009857, CVE-2013-2422: Problem with plugin +* Backports + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts + - S7036559: ConcurrentHashMap footprint and contention improvements + - S5102804: Memory leak in Introspector.getBeanInfo(Class) for custom BeanInfo: Class param (with WeakCache from S6397609) + - S6501644: sync LayoutEngine *code* structure to match ICU + - S6886358: layout code update + - S6963811: Deadlock-prone locking changes in Introspector + - S7017324: Kerning crash in JDK 7 since ICU layout update + - S7064279: Introspector.getBeanInfo() should release some resources in timely manner + - S8004302: javax/xml/soap/Test7013971.java fails since jdk6u39b01 +* Bug fixes + - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7017193) + - PR1362: Fedora 19 / rawhide FTBFS SIGILL + - PR1319: Correct #ifdef to #if + - PR1339: Simplify the rhino class rewriter to avoid use of concurrency New in release 1.12.4 (2013-03-04): @@ -278,6 +394,7 @@ - S7199153: TEST_BUG: try-with-resources syntax pushed to 6-open repo * Bug fixes - PR1194: IcedTea tries to build with /usr/lib/jvm/java-openjdk (now a 1.7 VM) by default + - PR1338: Remove dependence on libXp New in release 1.10.10 (2012-10-16): From jvanek at redhat.com Fri Apr 26 05:34:02 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 14:34:02 +0200 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <517A2F6B.7020004@redhat.com> References: <201304252133.r3PLX0MS021661@mail-web03.excite.co.jp> <517A2F6B.7020004@redhat.com> Message-ID: <517A743A.5030605@redhat.com> On 04/26/2013 09:40 AM, Jiri Vanek wrote: > On 04/25/2013 11:33 PM, Jacob Wisor wrote: >> Hello there! >> >> Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. >> I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. >> >> 2013-04-25 Jacob Wisor >> >> * netx/net/sourceforge/jnlp/resources/Messages.properties: >> Streamlined names, removed typos, removed unneccessary trailing white spaces, >> fixed inconsistencies >> >> * netx/net/sourceforge/jnlp/resources/Messages_de.properties: >> Applied all changes from modified source >> Polished and reformulated some messages to better fit the localization guide >> Made a few translation more precise or correct >> Syntactic adjustments >> >> * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: >> Added initial Polish localization >> >> Happy reviewing! ;) >> >> Jacob > thank you very much. I will add the tests let Adam to watch over a bit the text itself. > Then I will push for you. > > The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). > As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. > > So there is test and "integrated" pl messages. (actually only difference against original is missing "long html help". And fixes to DE transaltion. I would like to push this as soon as possible. As second patch are attached Jacob's fixes to English messages. Here I'm hesitating with some of them: -CChooseCacheInfo=Netx needs a location for storing cache files. +CChooseCacheInfo=NetX needs a location for storing cache files. ok -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. +CFakedCache=Cache was corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. ok -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. +SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any Java policies you may have. not sure -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. +SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by Java. not sure... -KSJsseCaCerts=Trusted JSSE Root CA Certificates, +KSJsseCaCerts=Trusted JSSE Root CA Certificates ok? -VVPossibleFileValues=include an absolute path to a file +VVPossibleFileValues=include an absolute path to a file or directory not sure... -CPAboutDescription=View version information about Icedtea Control Panel. +CPAboutDescription=View version information about IcedTea Control Panel. ok -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority +SGPAllowUserGrantSigned=Allow users to grant permissions to signed content +SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority ok -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname +SGPWarnCertHostMismatch=Warn if site certificate does not match hostname just spaces - ok -SGPShowSandboxWarning=Show sandbox warning banner -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests +SGPShowSandboxWarning=Show sandbox warning banner +SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests just spaces - ok -SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a good bug report, be sure to run only one applet. +SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a helpful bug report, be sure to run only one applet. ok -APPEXTSECappletSecurityLevelExtraHighId=Disable running of all java applets +APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets not sure... :) -APPEXTSECguiPanelCustomDefs=Custom definitions -APPEXTSECguiPanelGlobalDefs=Global definitions +APPEXTSECguiPanelCustomDefs=User definitions +APPEXTSECguiPanelGlobalDefs=System definitions Imho not - I think those vere reviewd from "new" suggestion to "old". So current should be better Thank you! J. -------------- next part -------------- A non-text attachment was scrubbed... Name: en.patch Type: text/x-patch Size: 6964 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/0e73f3dd/en.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: plDeTests.patch Type: text/x-patch Size: 67274 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130426/0e73f3dd/plDeTests.patch From gitne at excite.co.jp Fri Apr 26 07:01:31 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Fri, 26 Apr 2013 23:01:31 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl1bcmZjXSBQb2xpc2ggbG9jYWxpemF0aW9uIGFuZCBvdGhlciBtZXNzYWdlcyBjbGVhbnVw?= Message-ID: <201304261401.r3QE1VxC024870@mail-web01.excite.co.jp> "Jiri Vanek" wrote: > On 04/26/2013 09:40 AM, Jiri Vanek wrote: > > On 04/25/2013 11:33 PM, Jacob Wisor wrote: > >> Hello there! > >> > >> Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. > >> I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. > >> > >> 2013-04-25 Jacob Wisor > >> > >> * netx/net/sourceforge/jnlp/resources/Messages.properties: > >> Streamlined names, removed typos, removed unneccessary trailing white spaces, > >> fixed inconsistencies > >> > >> * netx/net/sourceforge/jnlp/resources/Messages_de.properties: > >> Applied all changes from modified source > >> Polished and reformulated some messages to better fit the localization guide > >> Made a few translation more precise or correct > >> Syntactic adjustments > >> > >> * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: > >> Added initial Polish localization > >> > >> Happy reviewing! ;) > >> > >> Jacob > > thank you very much. I will add the tests let Adam to watch over a bit the text itself. > > Then I will push for you. > > > > The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). > > As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. > > > > > So there is test and "integrated" pl messages. (actually only difference against original is missing "long html help". And fixes to DE transaltion. > > I would like to push this as soon as possible. > > As second patch are attached Jacob's fixes to English messages. Here I'm hesitating with some of them: > > -CChooseCacheInfo=Netx needs a location for storing cache files. > +CChooseCacheInfo=NetX needs a location for storing cache files. > > ok > > -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. > +CFakedCache=Cache was corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. > > ok > > -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. > +SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any Java policies you may have. > > not sure This change is being suggested because Java is a proper name, so it should begin with a capital letter. > -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. > +SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by Java. > > not sure... Proper name here as well. In any case, the java command is probably not ment here. > -KSJsseCaCerts=Trusted JSSE Root CA Certificates, > +KSJsseCaCerts=Trusted JSSE Root CA Certificates > > ok? Yes, should be the case since this message is a text in a drop-down. > -VVPossibleFileValues=include an absolute path to a file > +VVPossibleFileValues=include an absolute path to a file or directory > > not sure... The same message is displayed for deployment properties that take a path to a file as well as those that point to a directory. There also may be properties that may point to files or directiries inclusively. If there is need for explicit distinction, there should also be distinct messages. Otherwise, the term "file or directory" seems to be a closer description of the accepted or required type. > -CPAboutDescription=View version information about Icedtea Control Panel. > +CPAboutDescription=View version information about IcedTea Control Panel. > > ok > > -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content > -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority > +SGPAllowUserGrantSigned=Allow users to grant permissions to signed content > +SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority > > ok > > -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname > +SGPWarnCertHostMismatch=Warn if site certificate does not match hostname > > just spaces - ok > > -SGPShowSandboxWarning=Show sandbox warning banner > -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests > +SGPShowSandboxWarning=Show sandbox warning banner > +SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests > > just spaces - ok > > -SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a good bug report, be sure to run only one applet. > +SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a helpful bug report, be sure to run only one applet. > > ok > > -APPEXTSECappletSecurityLevelExtraHighId=Disable running of all java applets > +APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets > > not sure... :) Proper name here again. ;) > -APPEXTSECguiPanelCustomDefs=Custom definitions > -APPEXTSECguiPanelGlobalDefs=Global definitions > +APPEXTSECguiPanelCustomDefs=User definitions > +APPEXTSECguiPanelGlobalDefs=System definitions > > Imho not - I think those vere reviewd from "new" suggestion to "old". So current should be better They should at least be consistent with CVUser and CVSystem. As I see it, "Global" is a vague term that implies blurry boundries. What is "Global"? The local computer? The enterprise network? The web or even the world? @Jiri Thank you for filtering out the missing messages! I will provide translations for them asap. Cheers! Jacob From adomurad at redhat.com Fri Apr 26 07:11:30 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 26 Apr 2013 10:11:30 -0400 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <517A743A.5030605@redhat.com> References: <201304252133.r3PLX0MS021661@mail-web03.excite.co.jp> <517A2F6B.7020004@redhat.com> <517A743A.5030605@redhat.com> Message-ID: <517A8B12.4040002@redhat.com> On 04/26/2013 08:34 AM, Jiri Vanek wrote: > On 04/26/2013 09:40 AM, Jiri Vanek wrote: >> On 04/25/2013 11:33 PM, Jacob Wisor wrote: >>> Hello there! >>> >>> Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. >>> I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. >>> >>> 2013-04-25 Jacob Wisor >>> >>> * netx/net/sourceforge/jnlp/resources/Messages.properties: >>> Streamlined names, removed typos, removed unneccessary trailing white spaces, >>> fixed inconsistencies >>> >>> * netx/net/sourceforge/jnlp/resources/Messages_de.properties: >>> Applied all changes from modified source >>> Polished and reformulated some messages to better fit the localization guide >>> Made a few translation more precise or correct >>> Syntactic adjustments >>> >>> * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: >>> Added initial Polish localization >>> >>> Happy reviewing! ;) >>> >>> Jacob >> thank you very much. I will add the tests let Adam to watch over a bit the text itself. I have done a very basic look and nothing screams out (but my Polish leaves something to be desired). One question, how sure are you of your translation of applet ? Searching 'Java aplikacyjka' doesn't seem to bring up much, maybe it's best left untranslated ? (Again, my Polish leaves something to be desired, so I'm not sure). >> Then I will push for you. >> >> The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). >> As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. >> >> > So there is test and "integrated" pl messages. (actually only difference against original is missing "long html help". And fixes to DE transaltion. > > I would like to push this as soon as possible. > > As second patch are attached Jacob's fixes to English messages. Here I'm hesitating with some of them: > > -CChooseCacheInfo=Netx needs a location for storing cache files. > +CChooseCacheInfo=NetX needs a location for storing cache files. > > ok > > -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. > +CFakedCache=Cache was corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. > > ok > > -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. > +SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any Java policies you may have. > > not sure > > -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. > +SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by Java. > > not sure... IMO correct > > -KSJsseCaCerts=Trusted JSSE Root CA Certificates, > +KSJsseCaCerts=Trusted JSSE Root CA Certificates > > ok? > > -VVPossibleFileValues=include an absolute path to a file > +VVPossibleFileValues=include an absolute path to a file or directory > > not sure... I'm in favour of leaving it as-is. > > -CPAboutDescription=View version information about Icedtea Control Panel. > +CPAboutDescription=View version information about IcedTea Control Panel. > > ok > > -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content > -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority > +SGPAllowUserGrantSigned=Allow users to grant permissions to signed content > +SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority > > ok > > -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname > +SGPWarnCertHostMismatch=Warn if site certificate does not match hostname > > just spaces - ok > > -SGPShowSandboxWarning=Show sandbox warning banner > -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests > +SGPShowSandboxWarning=Show sandbox warning banner > +SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests > > just spaces - ok > > -SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a good bug report, be sure to run only one applet. > +SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a helpful bug report, be sure to run only one applet. > > ok > > -APPEXTSECappletSecurityLevelExtraHighId=Disable running of all java applets > +APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets > > not sure... :) IMO correct > > -APPEXTSECguiPanelCustomDefs=Custom definitions > -APPEXTSECguiPanelGlobalDefs=Global definitions > +APPEXTSECguiPanelCustomDefs=User definitions > +APPEXTSECguiPanelGlobalDefs=System definitions Agreed > > Imho not - I think those vere reviewd from "new" suggestion to "old". So current should be better > > > > Thank you! > > J. Test extensions look OK to push. -Adam From gnu.andrew at redhat.com Fri Apr 26 07:26:17 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 26 Apr 2013 10:26:17 -0400 (EDT) Subject: Reviewer needed: two new JTreg tests for IcedTea6 HEAD In-Reply-To: <1266320108.2735528.1366970418872.JavaMail.root@redhat.com> References: <1266320108.2735528.1366970418872.JavaMail.root@redhat.com> Message-ID: <1910991746.3751830.1366986377316.JavaMail.root@redhat.com> ----- Original Message ----- > Hi everyone, > > I'd like to add two new JTreg tests into IcedTea6 HEAD. These tests > check the basic behavior of TextLayout class and the font-subengine itself > (btw it's been altered by some recent security patches). > > ChangeLog entry: > > 2013-04-26 Pavel Tisnovsky > > * Makefile.am: > (ICEDTEA_PATCHES): Add two new patches. > * patches/textLayoutGetCharacterCount.patch: > * patches/textLayoutLimits.patch: > Two JTreg tests for checking TextLayout class behaviour. > > Can anybody please review this change? > > Thank you in advance, > Pavel Tisnovsky > Are these backports or new patches? If the latter, why 6 only? -- 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 andrew at icedtea.classpath.org Fri Apr 26 07:39:44 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 26 Apr 2013 14:39:44 +0000 Subject: /hg/icedtea6: S7022999: Can't build with FORCE_TIERED=0 (bundled... Message-ID: changeset 485b2d3dfd09 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=485b2d3dfd09 author: Andrew John Hughes date: Fri Apr 26 15:39:35 2013 +0100 S7022999: Can't build with FORCE_TIERED=0 (bundled HotSpot only) 2013-04-26 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Fix naming of aarch64 patch and add new one. * NEWS: Updated. * patches/hotspot/original/7022999-fastlocking_compiler1_only.patch: Backport fix to make Zero build work following 6840152. * patches/aarch64.patch: Moved to... * patches/hotspot/original/aarch64.patch: ...here. diffstat: ChangeLog | 12 +++ Makefile.am | 3 +- NEWS | 1 + patches/aarch64.patch | 34 ---------- patches/hotspot/original/7022999-fastlocking_compiler1_only.patch | 25 +++++++ patches/hotspot/original/aarch64.patch | 34 ++++++++++ 6 files changed, 74 insertions(+), 35 deletions(-) diffs (148 lines): diff -r b08a2c95d268 -r 485b2d3dfd09 ChangeLog --- a/ChangeLog Fri Apr 26 13:13:40 2013 +0100 +++ b/ChangeLog Fri Apr 26 15:39:35 2013 +0100 @@ -1,3 +1,15 @@ +2013-04-26 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Fix naming of aarch64 patch + and add new one. + * NEWS: Updated. + * patches/hotspot/original/7022999-fastlocking_compiler1_only.patch: + Backport fix to make Zero build work following + 6840152. + * patches/aarch64.patch: Moved to... + * patches/hotspot/original/aarch64.patch: ...here. + 2013-04-26 Andrew John Hughes * NEWS: Add release notes for 1.11.10, 1.11.11 diff -r b08a2c95d268 -r 485b2d3dfd09 Makefile.am --- a/Makefile.am Fri Apr 26 13:13:40 2013 +0100 +++ b/Makefile.am Fri Apr 26 15:39:35 2013 +0100 @@ -596,7 +596,8 @@ patches/hotspot/original/fix_get_stack_bounds_leak.patch \ patches/hotspot/original/jvmtiEnv.patch \ patches/hotspot/original/6840152-jvm_crashes_with_heavyweight_monitors.patch \ - patches/aarch64.patch + patches/hotspot/original/aarch64.patch \ + patches/hotspot/original/7022999-fastlocking_compiler1_only.patch endif if WITH_RHINO diff -r b08a2c95d268 -r 485b2d3dfd09 NEWS --- a/NEWS Fri Apr 26 13:13:40 2013 +0100 +++ b/NEWS Fri Apr 26 15:39:35 2013 +0100 @@ -18,6 +18,7 @@ * Backports - S8009641: OpenJDK 6 build broken via 8007675 fix - OJ4: Backport the new version of copyMemory from OpenJDK 7 to allow Snappy to build + - S7022999: Can't build with FORCE_TIERED=0 (bundled HotSpot only) * Bug fixes - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) diff -r b08a2c95d268 -r 485b2d3dfd09 patches/aarch64.patch --- a/patches/aarch64.patch Fri Apr 26 13:13:40 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp ---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp 2013-04-17 21:37:18.637869465 +0100 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2013-04-17 21:38:30.075026650 +0100 -@@ -127,6 +127,11 @@ - #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF) - #define SEC_IN_NANOSECS 1000000000LL - -+ -+#ifndef EM_AARCH64 -+#define EM_AARCH64 183 /* ARM AARCH64 */ -+#endif -+ - //////////////////////////////////////////////////////////////////////////////// - // global variables - julong os::Linux::_physical_memory = 0; -@@ -1860,7 +1865,8 @@ - {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, - {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, - {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, -- {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ -+ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/ -+ {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/ - }; - - #if (defined IA32) -@@ -1893,6 +1899,8 @@ - static Elf32_Half running_arch_code=EM_68K; - #elif (defined SH) - static Elf32_Half running_arch_code=EM_SH; -+ #elif (defined AARCH64) -+ static Elf32_Half running_arch_code=EM_AARCH64; - #else - #error Method os::dll_load requires that one of following is defined:\ - IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH diff -r b08a2c95d268 -r 485b2d3dfd09 patches/hotspot/original/7022999-fastlocking_compiler1_only.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/original/7022999-fastlocking_compiler1_only.patch Fri Apr 26 15:39:35 2013 +0100 @@ -0,0 +1,25 @@ +# HG changeset patch +# User coleenp +# Date 1299199896 18000 +# Node ID 9f44e9aad2d9528c6a7c59f29be7974685d6b629 +# Parent a3c0ec0428a2564a70a33a0348553e9d4c994c63 +7022999: Can't build with FORCE_TIERED=0 +Summary: Put UseFastLocking test under #ifdef COMPILER1 +Reviewed-by: kvn, phh, never, dcubed + +diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp +@@ -3114,7 +3114,11 @@ + // Turn off biased locking for locking debug mode flags, + // which are subtlely different from each other but neither works with + // biased locking. +- if (!UseFastLocking || UseHeavyMonitors) { ++ if (UseHeavyMonitors ++#ifdef COMPILER1 ++ || !UseFastLocking ++#endif // COMPILER1 ++ ) { + if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) { + // flag set to true on command line; warn the user that they + // can't enable biased locking here diff -r b08a2c95d268 -r 485b2d3dfd09 patches/hotspot/original/aarch64.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/original/aarch64.patch Fri Apr 26 15:39:35 2013 +0100 @@ -0,0 +1,34 @@ +diff -Nru openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp +--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp 2013-04-17 21:37:18.637869465 +0100 ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2013-04-17 21:38:30.075026650 +0100 +@@ -127,6 +127,11 @@ + #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF) + #define SEC_IN_NANOSECS 1000000000LL + ++ ++#ifndef EM_AARCH64 ++#define EM_AARCH64 183 /* ARM AARCH64 */ ++#endif ++ + //////////////////////////////////////////////////////////////////////////////// + // global variables + julong os::Linux::_physical_memory = 0; +@@ -1860,7 +1865,8 @@ + {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, +- {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ ++ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"}, /* Support little endian only*/ ++ {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"} /* Support little endian only*/ + }; + + #if (defined IA32) +@@ -1893,6 +1899,8 @@ + static Elf32_Half running_arch_code=EM_68K; + #elif (defined SH) + static Elf32_Half running_arch_code=EM_SH; ++ #elif (defined AARCH64) ++ static Elf32_Half running_arch_code=EM_AARCH64; + #else + #error Method os::dll_load requires that one of following is defined:\ + IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH From jvanek at icedtea.classpath.org Fri Apr 26 07:58:40 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 14:58:40 +0000 Subject: /hg/icedtea-web: Added polish transaltion and tests to it Message-ID: changeset 83ecbeacafac in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=83ecbeacafac author: Jiri Vanek date: Fri Apr 26 17:01:59 2013 +0200 Added polish transaltion and tests to it Also minor changes to En and De files diffstat: ChangeLog | 13 + netx/net/sourceforge/jnlp/resources/Messages.properties | 32 +- netx/net/sourceforge/jnlp/resources/Messages_de.properties | 45 +- netx/net/sourceforge/jnlp/resources/Messages_pl.properties | 537 ++++++++++ tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java | 5 +- tests/reproducers/simple/LocalesTest/testcases/LocalesTestTest.java | 67 +- tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 2 +- 7 files changed, 659 insertions(+), 42 deletions(-) diffs (truncated from 1023 to 500 lines): diff -r 96618e0eb11b -r 83ecbeacafac ChangeLog --- a/ChangeLog Fri Apr 26 13:00:26 2013 +0200 +++ b/ChangeLog Fri Apr 26 17:01:59 2013 +0200 @@ -1,3 +1,16 @@ +2013-04-26 Jiri Vanek + Jacob Wisor + + Added polish localisation + * netx/net/sourceforge/jnlp/resources/Messages_de.properties + * netx/net/sourceforge/jnlp/resources/Messages.properties: minor fixes + * /netx/net/sourceforge/jnlp/resources/Messages_pl.properties: new localization + nearly complete list of PL values + * tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java + Added PL as known translation + * tests/reproducers/simple/LocalesTest/testcases/LocalesTestTest.java: + Added tests to PL integration + 2013-04-26 Jiri Vanek Alexandr Kolouch diff -r 96618e0eb11b -r 83ecbeacafac netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 26 13:00:26 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Apr 26 17:01:59 2013 +0200 @@ -200,11 +200,11 @@ CDownloading=Downloading CComplete=Complete CChooseCache=Choose a cache directory... -CChooseCacheInfo=Netx needs a location for storing cache files. +CChooseCacheInfo=NetX needs a location for storing cache files. CChooseCacheDir=Cache directory CCannotClearCache=Can not clear cache at this time CFakeCache=Cache is corrupt. Fixing. -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. +CFakedCache=Cache was corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. # Security SFileReadAccess=The application has requested read access to {0}. Do you want to allow this action? @@ -214,7 +214,7 @@ SSigVerified=The application's digital signature has been verified. Do you want to run the application? SSignatureError=The application's digital signature has an error. Do you want to run the application? SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. +SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any Java policies you may have. STrustedSource=The digital signature has been validated by a trusted source. SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? SClipboardWriteAccess=The application has requested write-only access to the system clipboard. Do you want to allow this action? @@ -248,7 +248,7 @@ SUntrustedCertificate=The digital signature was generated with an untrusted certificate. STrustedCertificate=The digital signature was generated with a trusted certificate. SCNMisMatch=The expected hostname for this certificate is: "{0}"
    The address being connected to is: "{1}" -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. +SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by Java. SCertificateDetails=Certificate Details # Security - certificate information @@ -283,7 +283,7 @@ KSCerts=Trusted Certificates KSJsseCerts=Trusted JSSE Certificates KSCaCerts=Trusted Root CA Certificates -KSJsseCaCerts=Trusted JSSE Root CA Certificates, +KSJsseCaCerts=Trusted JSSE Root CA Certificates KSClientCerts=Client Authentication Certificates # Deployment Configuration messages @@ -295,7 +295,7 @@ # Value Validator messages. Messages should follow "Possible values ..." VVPossibleValues=Possible values {0} VVPossibleBooleanValues=are {0} or {1} -VVPossibleFileValues=include an absolute path to a file +VVPossibleFileValues=include an absolute path to a file or directory VVPossibleRangedIntegerValues=are in range {0} to {1} (inclusive) VVPossibleUrlValues=include any valid url (eg http://icedtea.classpath.org/hg/) @@ -304,7 +304,7 @@ CPMainDescriptionLong=Configure how the browser plugin (IcedTeaNPPlugin) and javaws (NetX) work # Control Panel - Tab Descriptions -CPAboutDescription=View version information about Icedtea Control Panel. +CPAboutDescription=View version information about IcedTea Control Panel. CPNetworkSettingsDescription=Configure network settings, including how IcedTea-Web connects to the internet and whether to use any proxies. CPTempInternetFilesDescription=Java stores application data for faster execution the next time you run it. CPJRESettingsDescription=View and manage Java Runtime Environment versions and settings for Java applications and applets. @@ -419,14 +419,14 @@ NSScriptLocation=Script location # Control Panel - SecurityGeneralPanel -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority +SGPAllowUserGrantSigned=Allow users to grant permissions to signed content +SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority SGPUseBrowserKeystore=Use certificates and keys in browser keystore (Unsupported) SGPUsePersonalCertOneMatch=Use personal certificate automatically if only one matches server request (Unsupported) -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname +SGPWarnCertHostMismatch=Warn if site certificate does not match hostname SGPShowValid=Show site certificate even if it is valid (Unsupported) -SGPShowSandboxWarning=Show sandbox warning banner -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests +SGPShowSandboxWarning=Show sandbox warning banner +SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests SGPCheckCertRevocationList=Check certificates for revocation using Certificate Revocation Lists (CRLs) (Unsupported) SGPEnableOnlineCertValidate=Enable online certificate validation (Unsupported) SGPEnableTrustedPublisherList=Enable list of trusted publishers (Unsupported) @@ -509,9 +509,9 @@ SPLASHdefaultHomepage = Unspecified homepage, verify source rather SPLASHerrorInInformation = Error during loading of information element, verify source rather SPLASHmissingInformation = Information element is missing, verify source rather -SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a good bug report, be sure to run only one applet. +SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a helpful bug report, be sure to run only one applet. -APPEXTSECappletSecurityLevelExtraHighId=Disable running of all java applets +APPEXTSECappletSecurityLevelExtraHighId=Disable running of all Java applets APPEXTSECappletSecurityLevelVeryHighId=Very High Security APPEXTSECappletSecurityLevelHighId=High Security APPEXTSECappletSecurityLevelLowId=Low Security @@ -551,8 +551,8 @@ APPEXTSECguiPanelInverSelection=Invert selection APPEXTSECguiPanelMoveRowUp=Move row up APPEXTSECguiPanelMoveRowDown=Move row down -APPEXTSECguiPanelCustomDefs=Custom definitions -APPEXTSECguiPanelGlobalDefs=Global definitions +APPEXTSECguiPanelCustomDefs=User definitions +APPEXTSECguiPanelGlobalDefs=System definitions APPEXTSECguiPanelDocTest=Type document base URL APPEXTSECguiPanelCodeTest=Type code base URL APPEXTSECguiPanelNoMatch=Nothing matched diff -r 96618e0eb11b -r 83ecbeacafac netx/net/sourceforge/jnlp/resources/Messages_de.properties --- a/netx/net/sourceforge/jnlp/resources/Messages_de.properties Fri Apr 26 13:00:26 2013 +0200 +++ b/netx/net/sourceforge/jnlp/resources/Messages_de.properties Fri Apr 26 17:01:59 2013 +0200 @@ -99,7 +99,7 @@ LNotVerifiedDialog=Nicht alle Jars konnten verifiziert werden. -LAskToContinue=M\u00f6chten Sie dennoch die Ausf\u00fchrung dieser Anwendung fortsetzen? +LAskToContinue=Soll die Ausf\u00fchrung dieser Anwendung dennoch fortgesetzt werden? # Parser PInvalidRoot=Der Wurzelknoten ist nicht das Element jnlp @@ -130,8 +130,8 @@ PBadRelativeUrl=Ung\u00fcltige relative URL (Knoten={0}, href={1}, Basis={2}) PBadNonrelativeUrl=Ung\u00fcltige nicht-relative URL (Knoten={0}, href={1}) PNeedsAttribute=Das {0} Element muss ein {1} Attribut angeben. -PBadXML=Ung\u00fcltige XML Dokumentensyntax. -PBadHeapSize=Ung\u00fcltiger Wert f\u00fcr den dynamischen Speicher ({0}) +PBadXML=Ung\u00fcltige XML Dokumentsyntax. +PBadHeapSize=Ung\u00fcltiger Wert f\u00fcr die Gr\u00f6\u00dfe des dynamischen Speichers ({0}) # Runtime BLaunchAbout=Das Fenster \u201e\u00dcber IcedTea-Web\u201c wird ge\u00f6ffnet... @@ -199,8 +199,8 @@ CChooseCacheInfo=Netx ben\u00f6tigt einen Ort zur Ablage von Zwischenspeicherdateien. CChooseCacheDir=Zwischenspeicherverzeichnis CCannotClearCache=Kann den Zwischenspeicher zur Zeit nicht s\u00e4ubern -CFakeCache=Zwischenspeicher ist durcheinander. Wird geordnet. -CFakedCache=Zwischenspeicher war durcheinander und wurde geordnet. Es wird strengstens empfohlen, dass \u201ejavaws -Xclearcache\u201c und anschlie\u00dfend die Anwendung ausgef\u00fchrt wird. +CFakeCache=Der Zwischenspeicher ist durcheinander; wird geordnet. +CFakedCache=Der Zwischenspeicher war durcheinander und wurde geordnet. Es wird strengstens empfohlen, dass \u201ejavaws -Xclearcache\u201c und anschlie\u00dfend die Anwendung ausgef\u00fchrt wird. # Security SFileReadAccess=Die Anwendung hat Lesezugriff auf {0} angefordert. Soll diese Aktion zugelassen werden? @@ -210,7 +210,7 @@ SSigVerified=Die digitale Signatur der Anwendung wurde verifiziert. Soll die Anwendung zur Ausf\u00fchrung gebracht werden? SSignatureError=Die digitale Signatur der Anwendung hat einen Fehler. Soll die Anwendung zur Ausf\u00fchrung gebracht werden? SUntrustedSource=Die digitale Signatur konnte nicht durch eine vertrauensw\u00fcrdige Quelle verifiziert werden. Die Anwendung sollte nur zur Ausgef\u00fchrung gebracht werden, wenn der Ursprung der Anwendung vertrauensw\u00fcrdig ist. -SWarnFullPermissionsIgnorePolicy=Dem ausgef\u00fchrten Code werden volle Berechtigungen gegeben, indem jedwede Java-Richtlinien die eingerichtet sein k\u00f6nnten ignoriert werden. +SWarnFullPermissionsIgnorePolicy=Dem ausgef\u00fchrten Code werden volle Berechtigungen erteilt, wobei jedwede Java-Richtlinien, die eingerichtet sein k\u00f6nnten, ignoriert werden. STrustedSource=Die digitale Signatur wurde durch eine vertrauensw\u00fcrdige Quelle best\u00e4tigt. SClipboardReadAccess=Die Anwendung hat den ausschlie\u00dflichen Lesezugriff auf die Systemzwischenablage angefordert. Soll diese Aktion zugelassen werden? SClipboardWriteAccess=Die Anwendung hat den ausschlie\u00dflichen Schreibzugriff auf die Systemzwischenablage angefordert. Soll diese Aktion zugelassen werden? @@ -262,7 +262,7 @@ CVPasswordTitle=Authentifizierung erforderlich CVRemove=Entfernen CVRemoveConfirmMessage=Soll das markierte Zertifikat wirklich entfernt werden? -CVRemoveConfirmTitle=Best\u00e4tigung - Zertifikat entfernen? +CVRemoveConfirmTitle=Zertifikat entfernen CVUser=Benutzer CVSystem=System @@ -282,7 +282,7 @@ # Value Validator messages. Messages should follow "Possible values ..." VVPossibleValues=M\u00f6gliche Werte {0} VVPossibleBooleanValues=sind {0} oder {1} -VVPossibleFileValues=sind ein absoluter Pfad zu einer Datei +VVPossibleFileValues=sind ein absoluter Pfad zu einer Datei oder einem Verzeichnis VVPossibleRangedIntegerValues=liegen im Bereich von {0} bis {1} (inklusive) VVPossibleUrlValues=sind jede g\u00fcltige URL (z.B. http://icedtea.classpath.org/hg/) @@ -348,7 +348,7 @@ APSSameProxyForAllProtocols=Denselben Proxyserver f\u00fcr alle Protokolle verwenden. APSExceptionsLabel=Ausnahmen APSExceptionsDescription=Keinen Proxyserver f\u00fcr Adressen verwenden, die damit beginnen -APSExceptionInstruction=Trennen Sie jeden Eintrag mit einem Semikolon. +APSExceptionInstruction=Trennen Sie jeden Eintrag mit einem Semikolon (;). # Control Panel - DebugginPanel DPEnableTracing=Ablaufverfolgung aktivieren @@ -431,20 +431,20 @@ # command line control panel CLNoInfo=Keine Informationen verf\u00fcgbar (ist dies eine g\u00fcltige Option?). CLValue=Wert: {0} -CLValueSource=Quelle: {0} +CLValueSource=Herkunft: {0} CLDescription=Beschreibung: {0} CLUnknownCommand=Unbekannter Befehl {0} CLUnknownProperty=Unbekannter Eigenschaftenname \u201e{0}\u201c CLWarningUnknownProperty=WARNUNG: Unbekannter Eigenschaftenname \u201e{0}\u201c - erstelle neue Eigenschaft CLNoIssuesFound=Keine Probleme gefunden. -CLIncorrectValue=Die Eigenschaft \u201e{0}\u201c hat den falschen Wert \u201e{1}\u201c. M\u00f6gliche Werte sind: {2}. -CLListDescription=Zeigt eine Liste aller Eigenschaftennamen und Werte an, die durch IcedTea-Web verwendet werden +CLIncorrectValue=Die Eigenschaft \u201e{0}\u201c hat den falschen Wert \u201e{1}\u201c. M\u00f6gliche Werte {2}. +CLListDescription=Zeigt eine Liste aller Eigenschaftennamen und Werte an, die durch IcedTea-Web\nverwendet werden CLGetDescription=Zeigt den Wert der Eigenschaft property-name an -CLSetDescription=Wenn m\u00f6glich, setzt die Eigenschaft property-name auf den Wert value. Der Wert wird auf G\u00fcltigkeit gepr\u00fcft. Falls der Administrator die Eigenschaft gesperrt hat, wird dies keine Wirkung haben. +CLSetDescription=Wenn m\u00f6glich, setzt die Eigenschaft property-name auf den Wert value. Der Wert\nwird auf G\u00fcltigkeit gepr\u00fcft. Falls der Administrator die Eigenschaft gesperrt\nhat, wird dies keine Wirkung haben. CLResetDescription=Setzt den Wert der Eigenschaft property-name auf seinen Standardwert zur\u00fcck.\nall setzt alle durch IcedTea-Web verwendeten Eigenschaften auf ihren Standardwert zur\u00fcck. CLInfoDescription=Zeigt weitere Informationen \u00fcber die gegebene Eigenschaft an. -CLCheckDescription=Zeigt alle Eigenschaften an, die definiert wurden, aber durch IcedTea-Web nicht erkannt werden. -CLHelpDescription=Das Werkzeug itweb-settings erlaubt einem Benutzer die Konfiguration zu \u00e4ndern, anzuzeigen und zu pr\u00fcfen.\nUm die grafische Benutzeroberfl\u00e4che zu nutzen, d\u00fcrfen keine Argumente angegeben werden. Um den Befehlszeilenmodus zu nutzen, m\u00fcssen geeignete Befehle und Parameter angeben werden.\nF\u00fcr Hilfe mit einem bestimmten Befehl, versuche: {0} Befehl help +CLCheckDescription=Zeigt alle Eigenschaften an, die definiert wurden, aber durch IcedTea-Web nicht\nerkannt werden. +CLHelpDescription=Das Werkzeug itweb-settings erlaubt einem Benutzer die Konfiguration zu \u00e4ndern,\nanzuzeigen und zu pr\u00fcfen. Um die grafische Benutzeroberfl\u00e4che zu nutzen, d\u00fcrfen\nkeine Argumente angegeben werden. Um den Befehlszeilenmodus zu nutzen, m\u00fcssen\ngeeignete Befehle und Parameter angeben werden.\nF\u00fcr Hilfe mit einem bestimmten Befehl, versuche: {0} Befehl help # splash screen related SPLASHerror=Um Details zu erhalten, hier klicken. Schwerwiegende Ausnahme aufgetreten. @@ -472,9 +472,9 @@ SPLASHdefaultHomepage=Homepage nicht angegeben, verifiziere eher Quelle SPLASHerrorInInformation=Fehler w\u00e4hrend des Ladens des Elements information, verifiziere eher Quelle SPLASHmissingInformation=Das Element information fehlt, verifiziere eher Quelle -SPLASHchainWas=Dies ist die Liste der Ausnahmen, die w\u00e4hrend des Starts des Applets aufgetreten sind. Hinweis: Diese Ausnahmen k\u00f6nnen von mehreren Applets stammen. Um einen Fehlerbericht zu erstellen, sollte sichergestellt sein, dass nur ein Applet ausgef\u00fchrt wird. +SPLASHchainWas=Dies ist die Liste der Ausnahmen, die w\u00e4hrend des Starts des Applets aufgetreten sind. Hinweis: Diese Ausnahmen k\u00f6nnen von mehreren Applets stammen. Um einen hilfreichen Fehlerbericht zu erstellen, sollte sichergestellt sein, dass nur ein Applet ausgef\u00fchrt wird. -APPEXTSECappletSecurityLevelExtraHighId=Die Ausf\u00fchrung aller Applets deaktivieren +APPEXTSECappletSecurityLevelExtraHighId=Die Ausf\u00fchrung aller Java-Applets deaktivieren APPEXTSECappletSecurityLevelVeryHighId=Sehr hohe Sicherheit APPEXTSECappletSecurityLevelHighId=Hohe Sicherheit APPEXTSECappletSecurityLevelLowId=Niedrige Sicherheit @@ -506,16 +506,16 @@ APPEXTSECguiPanelDeleteMenuAllAll=absolut alle APPEXTSECguiPanelDeleteButton=L\u00f6schen APPEXTSECguiPanelDeleteButtonToolTip=Durch dr\u00fccken der Entf-Taste w\u00e4hrend der Durchsicht der Tabelle wird der markierte Inhalt gel\u00f6scht -APPEXTSECguiPanelTestUrlButton=Test-URL +APPEXTSECguiPanelTestUrlButton=Teste URL APPEXTSECguiPanelAddRowButton=Neue\u00a0Zeile\u00a0hinzuf\u00fcgen APPEXTSECguiPanelValidateTableButton=Tabelle\u00a0\u00fcberpr\u00fcfen -APPEXTSECguiPanelAskeforeActionBox=\u00a0Vor\u00a0Aktion\u00a0fragen\u00a0 -APPEXTSECguiPanelShowRegExesBox=\u00a0Regul\u00e4re\u00a0Ausdr\u00fccke\u00a0vollst\u00e4ndig\u00a0zeigen\u00a0 +APPEXTSECguiPanelAskeforeActionBox=Vor\u00a0Aktion\u00a0fragen +APPEXTSECguiPanelShowRegExesBox=Regul\u00e4re\u00a0Ausdr\u00fccke\u00a0vollst\u00e4ndig\u00a0zeigen APPEXTSECguiPanelInverSelection=Markierung umkehren APPEXTSECguiPanelMoveRowUp=Zeile auf APPEXTSECguiPanelMoveRowDown=Zeile ab -APPEXTSECguiPanelCustomDefs=Eigene Definitionen -APPEXTSECguiPanelGlobalDefs=Globale Definitionen +APPEXTSECguiPanelCustomDefs=Benutzerdefinitionen +APPEXTSECguiPanelGlobalDefs=Systemdefinitionen APPEXTSECguiPanelDocTest=URL der Dokumentbasis eingeben APPEXTSECguiPanelCodeTest=URL der Codebasis eingeben APPEXTSECguiPanelNoMatch=Keine \u00dcbereinstimmung @@ -534,3 +534,4 @@ APPEXTSECguiPanelShowOnlyPermanentN=Nur verbotene dauerhafte Eintr\u00e4ge zeigen APPEXTSECguiPanelShowOnlyTemporalY=Nur vorher zugelassene Applet-Eintr\u00e4ge zeigen APPEXTSECguiPanelShowOnlyTemporalN=Nur vorher verweigerte Applet-Eintr\u00e4ge zeigen +APPEXTSEChelpHomeDialogue=Dialog diff -r 96618e0eb11b -r 83ecbeacafac netx/net/sourceforge/jnlp/resources/Messages_pl.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/resources/Messages_pl.properties Fri Apr 26 17:01:59 2013 +0200 @@ -0,0 +1,537 @@ +# Polish UI messages for netx +# L=Launcher, B=Boot, P=Parser, C=cache S=security +# +# General +NullParameter=Parametr zerowy +ButAllow=Pozw\u00f3l +ButBrowse=Przegl\u0105daj... +ButCancel=\ Anuluj +ButClose=Zamknij +ButCopy=Kopiuj do schowka +ButMoreInformation=Wi\u0119cej\u00A0informacji... +ButOk=OK +ButProceed=Kontynuuj +ButRun=Uruchom +ButApply=Zastosuj +ButDone=Gotowe +ButShowDetails=Poka\u017c szczeg\u00f3\u0142y +ButHideDetails=Chowaj szczeg\u00f3\u0142y + +AFileOnTheMachine=plik na maszynie +AlwaysAllowAction=Zawsze zezwalaj na t\u0105 akcj\u0119 +Usage=Stosowanie: +Error=B\u0142\u0105d + +Continue=Czy chcesz kontynuowa\u0107? +Field=Pole +From=Od +Name=Nazwa +Password=Has\u0142o: +Publisher=Wydawca +Unknown= +Username=U\u017cytkownik: +Value=Warto\u015b\u0107 +Version=Wersja + +# LS - Severity +LSMinor=Mniejszy +LSFatal=Fatalny + +# LC - Category +LCSystem=B\u0142\u0105d systemowy +LCExternalLaunch=Zewn\u0119trzny b\u0142\u0105d startowy +LCFileFormat=B\u0142\u0119dny format pliku +LCReadError=B\u0142\u0105d odczytu +LCClient=B\u0142\u0105d aplikacji +LCLaunching=B\u0142\u0105d startowy +LCNotSupported=Nieobs\u0142ugiwana cecha +LCInit=B\u0142\u0105d inicjalizacyjny + +LAllThreadGroup=Wszystkie aplikacje JNLP +LNullUpdatePolicy=Wytyczna aktualizacji nie mo\u017ce by\u0107 null. + +LThreadInterrupted=W\u0105tek przerwany podczas czekania na wystartowanie pliku. +LThreadInterruptedInfo=To mo\u017ce doprowadzi\u0107 do zablokowania lub innego uszkodzenia w trakcie wykonywania. Prosz\u0119 uruchomi\u0107 ponownie aplikacj\u0119 lub przegl\u0105dark\u0119. +LCouldNotLaunch=Nie mo\u017cna wystartowa\u0107 pliku JNLP. +LCouldNotLaunchInfo=Nie zainicjalizowano aplikacji. Aby uzyska\u0107 wi\u0119cej informacji, uruchom javaws lub przegl\u0105dark\u0119 z wiersza polece\u0144 i wy\u015blij raport o b\u0142\u0119dzie. +LCantRead=Nie mo\u017cna odczyta\u0107 lub przeprowadzi\u0107 analizy sk\u0142adni pliku JNLP. +LCantReadInfo=Mo\u017cesz spr\u00f3bowa\u0107 r\u0119cznie pobra\u0107 ten plik i wys\u0142a\u0107 go razem ze zg\u0142oszeniem b\u0142\u0119du do zespo\u0142u IcedTea-Web. +LNullLocation=Nie mo\u017cna ustali\u0107 lokalizacj\u0119 pliku .jnlp. +LNullLocationInfo=Podj\u0119to pr\u00f3b\u0119 wystartowania pliku JNLP w innej JVM, lecz nie mo\u017cna by\u0142o zlokalizowa\u0107 plik. Aby wystartowa\u0107 w zewn\u0119trznej JVM, uruchomienie programowe musi by\u0107 w stanie zlokalizowa\u0107 plik .jnlp albo w lokalnym systemie plik\u00f3w czy na serwerze. +LNetxJarMissing=Nie mo\u017cna ustali\u0107 lokalizacj\u0119 netx.jar. +LNetxJarMissingInfo=Podj\u0119to pr\u00f3b\u0119 wystartowania pliku JNLP w innej JVM, lecz nie mo\u017cna by\u0142o zlokalizowa\u0107 netx.jar. Aby wystartowa\u0107 w zewn\u0119trznej JVM, uruchomienie programowe musi by\u0107 w stanie zlokalizowa\u0107 plik netx.jar. +LNotToSpec=Plik JNLP nie spe\u0142nia \u015bci\u015ble specyfikacji. +LNotToSpecInfo=Plik JNLP zawiera dane, kt\u00f3re s\u0105 zabronione wed\u0142ug specyfikacji JNLP. Uruchomienie programowe mo\u017ce pr\u00f3bowa\u0107 ignorowa\u0107 niepoprawne informacje i kontynuowa\u0107 startowanie pliku. +LNotApplication=Brak pliku aplikacyjnego. +LNotApplicationInfo=Podj\u0119to pr\u00f3b\u0119 za\u0142adowania innego pliku ni\u017c aplikacyjny jako aplikacj\u0119. +LNotApplet=Brak pliku aplikacyjkowego. +LNotAppletInfo=Podj\u0119to pr\u00f3b\u0119 za\u0142adowania innego pliku ni\u017c aplikacyjkowy jako aplikacyjk\u0119. +LNoInstallers=Brak obs\u0142ugi instalator\u00f3w. +LNoInstallersInfo=Pliki instalacyjne JNLP nie s\u0105 jeszcze obs\u0142ugiwane. +LInitApplet=Nie mo\u017cna zainicjalizowa\u0107 aplikacyjk\u0119. +LInitAppletInfo=Aby uzyska\u0107 wi\u0119cej informacji kliknij na przycisk \u201eWi\u0119cej\u00A0informacji\u201d. +LInitApplication=Nie mo\u017cna zainicjalizowa\u0107 aplikacj\u0119. +LInitApplicationInfo=Nie zainicjalizowano aplikacji. Aby uzyska\u0107 wi\u0119cej informacji, uruchom javaws z wiersza polece\u0144. +LNotLaunchable=Plik JNLP nie do uruchomienia. +LNotLaunchableInfo=Plik musi by\u0107 typu aplikacja, aplikacyjka lub instalator JNLP. +LCantDetermineMainClass=Klasa g\u0142\u00f3wna nieznana. +LCantDetermineMainClassInfo=Nie da\u0142o si\u0119 ustali\u0107 klasy g\u0142\u00f3wnej tej aplikacji. +LUnsignedJarWithSecurity=Nie mo\u017cna nada\u0107 uprawnie\u0144 niepodpisanym plikom jar. +LUnsignedJarWithSecurityInfo=Aplikacja za\u017c\u0105da\u0142a uprawnie\u0144 bezpiecze\u0144stwa, lecz pliki jar nie s\u0105 podpisane. +LSignedJNLPAppDifferentCerts=Aplikacja JNLP nie jest w pe\u0142ni podpisana jednym certyfikatem. +LSignedJNLPAppDifferentCertsInfo=Komponenty tej aplikacji JNLP podpisano indywidualnie, jednak musi by\u0107 wsp\u00f3lny podpisuj\u0105cy dla wszystkich wpis\u00f3w. +LSignedAppJarUsingUnsignedJar=Podpisana aplikacja u\u017cywa niepodpisane pliki jar. +LSignedAppJarUsingUnsignedJarInfo=G\u0142\u00f3wny jar aplikacji jest podpisany, lecz niekt\u00f3re pliki jar kt\u00f3re u\u017cywa nie s\u0105. +LSignedJNLPFileDidNotMatch=Podpisany plik JNLP nie pasuje do starowanego pliku JNLP. +LNoSecInstance=B\u0142\u0105d: Brak instancji bezpiecze\u0144stwa dla {0}. Aplikacja mo\u017ce dozna\u0107 problem\u00f3w w kontynuowaniu +LCertFoundIn=Znalezino {0} w cacerts ({1}) +LSingleInstanceExists=Inna instancja tej aplikacyjki ju\u017c istnieje, a wy\u0142\u0105cznie jedna mo\u017ce by\u0107 wykonywana r\u00f3wnocze\u015bnie. + +JNotApplet=Plik nie jest aplikacyjk\u0105. +JNotApplication=Plik nie jest aplikacj\u0105. +JNotComponent=Plik nie jest komponentem. +JNotInstaller=Plik nie jest instalatorem. +JInvalidExtensionDescriptor=Rozszerzenie nie odnosi si\u0119 do komponentu lub instalatora (nazwa={1}, lokalizacja={2}). + +LNotVerified=Nie zweryfikowano plik\u00f3w jar. +LCancelOnUserRequest=Anulowano na \u017c\u0105danie u\u017cytkownika. +LFatalVerification=Wyst\u0105pi\u0142 b\u0142\u0105d krytyczny podczas pr\u00f3bowania zweryfikowa\u0107 pliki jar. +LFatalVerificationInfo=Wyrzucono wyj\u0105tek w klasie JarCertVerifier. Brak mo\u017cliwo\u015bci odczytu plik\u00f3w cacerts lub trusted.certs jest jedn\u0105 mo\u017cliw\u0105 przyczyn\u0105 tego wyj\u0105tku. + +LNotVerifiedDialog=Nie wszystkie pliki jar zweryfikowano. +LAskToContinue=Czy mimo to chcesz kontynuowa\u0107 wykonywanie tej aplikacji? + +# Parser +PInvalidRoot=Element bazowy nie jest elementem \u201ejnlp\u201d. +PNoResources=Brak elementu \u201eresources\u201d. +PUntrustedNative=Element \u201enativelib\u201d nie mo\u017ce wyst\u0119powa\u0107 bez za\u017c\u0105dania bezpiecznego \u015brodowiska. +PExtensionHasJ2SE=Element \u201ej2se\u201d nie mo\u017ce wyst\u0119powa\u0107 w pliku rozszerzenia komponentu. +PInnerJ2SE=Element \u201ej2se\u201d nie mo\u017ce wyst\u0119powa\u0107 wewn\u0105trz elementu \u201ej2se\u201d. +PTwoMains=Atrybut \u201emain\u201d wyst\u0119puje podw\u00f3jnie na elemencie \u201eresources\u201d (mo\u017ce wyst\u0119powa\u0107 wy\u0142\u0105cznie jeden raz) +PNativeHasMain=Atrybut \u201emain\u201d nie mo\u017ce wyst\u0119powa\u0107 na elemencie \u201enativelib\u201d. +PNoInfoElement=Brak elementu \u201einformation\u201d. +PMissingTitle=Tytu\u0142 +PMissingVendor=Dostawca +PMissingElement=Brak sekcji \u201e{0}\u201d dla aktywnych ustawie\u0144 regionalnych, jak i warto\u015bci domy\u015blnej w pliku JNLP. +PTwoDescriptions=Podw\u00f3jne elementy \u201edescription\u201d rodzaju \u201e{0}\u201d s\u0105 niedozwolone. +PSharing=Element \u201esharing-allowed\u201d jest niedozwolony w powszechnym pliku JNLP. +PTwoSecurity=Wy\u0142\u0105cznie jeden element \u201esecurity\u201d jest dozwolony w pliku JNLP. +PEmptySecurity=Element \u201esecurity\u201d wyst\u0119puje bez zawierania elementu \u201epermissions\u201d. +PTwoDescriptors=Wy\u0142\u0105cznie jeden element \u201eapplication-desc\u201d jest dozwolony w pliku JNLP. +PTwoDesktops=Wy\u0142\u0105cznie jeden element \u201edesktop\u201d jest dozwolony. +PTwoMenus=Wy\u0142\u0105cznie jeden element \u201emenu\u201d jest dozwolony. +PTwoTitles=Wy\u0142\u0105cznie jeden element \u201etitle\u201d jest dozwolony. +PTwoIcons=Wy\u0142\u0105cznie jeden element \u201eicon\u201d jest dozwolony. +PTwoUpdates=Wy\u0142\u0105cznie jeden element \u201eupdate\u201d jest dozwolony. +PUnknownApplet=Nieznana aplikacyjka +PBadWidth=Nieprawid\u0142owa szeroko\u015b\u0107 aplikacyjki +PBadHeight=Nieprawid\u0142owa wysoko\u015b\u0107 aplikacyjki +PUrlNotInCodebase=Po\u015bredni URL nie wskazuje na podkatalog bazy kodu. (w\u0119ze\u0142={0}, href={1}, baza={2}) +PBadRelativeUrl=Nieprawid\u0142owy po\u015bredni URL (w\u0119ze\u0142={0}, href={1}, baza={2}) +PBadNonrelativeUrl=Nieprawid\u0142owy bezpo\u015bredni URL (w\u0119ze\u0142={0}, href={1}) +PNeedsAttribute=Na elemencie \u201e{0}\u201d musi wyst\u0119powa\u0107 atrybut \u201e{1}\u201d. +PBadXML=Nieprawid\u0142owa sk\u0142adnia dokumentu XML. +PBadHeapSize=Nieprawid\u0142owa warto\u015b\u0107 wielko\u015bci sterty ({0}) + +# Runtime +BLaunchAbout=Startowanie okna O... +BNeedsFile=Potrzebny plik .jnlp +RNoAboutJnlp=Nie znaleziono pliku about.jnlp +BFileLoc=Lokalizacja pliku JNLP +BBadProp=B\u0142\u0119dny format w\u0142a\u015bciwo\u015bci \u201e{0}\u201d (powinien by\u0107 klucz=warto\u015b\u0107) +BBadParam=B\u0142\u0119dny format parametru \u201e{0}\u201d (powinien by\u0107 nazwa=warto\u015b\u0107) +BNoDir=Katalog \u201e{0}\u201d nie istnieje. +BNoCodeOrObjectApplet=Na znaczniku applet musi wyst\u0119powa\u0107 atrybut \u201ecode\u201d lub \u201eobject\u201d. +RNoResource=Brak zasobu: {0} +RShutdown=Ten wyj\u0105tek aby zapobiec zamkni\u0119ciu JVM, lecz proces ten zako\u0144czono. +RExitTaken=Klasa zako\u0144czenia ju\u017c nastawiona i wywo\u0142uj\u0105cy nie jest klas\u0105 zako\u0144czenia. +RCantReplaceSM=Wymiana SecurityManager jest niedozwolona. +RCantCreateFile=Nie mo\u017cna utworzy\u0107 pliku \u201e{0}\u201d +RCantDeleteFile=Nie mo\u017cna usun\u0105\u0107 pliku \u201e{0}\u201d +RRemoveRPermFailed=Brak powodzenia przy usuwaniu praw odczytu z pliku \u201e{0}\u201d +RRemoveWPermFailed=Brak powodzenia przy usuwaniu praw zapisu z pliku \u201e{0}\u201d +RRemoveXPermFailed=Brak powodzenia przy usuwaniu praw wykonawczych z pliku \u201e{0}\u201d +RGetRPermFailed=Brak powodzenia przy pozyskiwaniu praw odczytu dla pliku \u201e{0}\u201d +RGetWPermFailed=Brak powodzenia przy pozyskiwaniu praw zapisu dla pliku \u201e{0}\u201d +RGetXPermFailed=Brak powodzenia przy pozyskiwaniu praw wykonawczych dla pliku \u201e{0}\u201d +RCantCreateDir=Nie mo\u017cna utworzy\u0107 katalogu \u201e{0}\u201d +RCantRename=Nie mo\u017cna przemianowa\u0107 \u201e{0}\u201d w \u201e{1}\u201d +RDenyStopped=Zatrzymane aplikacje nie posiadaj\u0105 praw dost\u0119pu. +RExitNoApp=Nie mo\u017cna zako\u0144czy\u0107 maszyny wirtualnej Java (JVM) poniewa\u017c nie mo\u017cna ustali\u0107 bie\u017c\u0105cej aplikacji. +RNoLockDir=Nie mo\u017cna utworzy\u0107 katalogu blokuj\u0105cego ({0}) +RNestedJarExtration=Nie mo\u017cna wyodr\u0119bni\u0107 zagnie\u017cd\u017conego jar-a. +RUnexpected=Nie oczekiwano {0} w {1} +RConfigurationError=B\u0142\u0105d fatalny podczas czytania konfiguracji +RConfigurationFatal=B\u0141\u0104D: Wyst\u0105pi\u0142 b\u0142\u0105d fatalny podczas \u0142adowania konfiguracji. By\u0107 mo\u017ce wymagano konfiguracj\u0119 globaln\u0105, ale nie znaleziono jej. +RPRoxyPacNotSupported=U\u017cycie plik\u00f3w automatycznej konfiguracji proxy (PAC) nie jest obs\u0142ugiwane. +RProxyFirefoxNotFound=Nie mo\u017cna u\u017cy\u0107 ustawie\u0144 proxy Firefox-a. Zastosowano \u201eDIRECT\u201d jako typ proxy. +RProxyFirefoxOptionNotImplemented=Opcja proxy \u201e{0}\u201d ({1}) przegl\u0105darki jeszcze nie jest obs\u0142ugiwana. +RBrowserLocationPromptTitle=Lokalizacja przegl\u0105darki +RBrowserLocationPromptMessage=Podaj lokalizacj\u0119 przegl\u0105darki +RBrowserLocationPromptMessageWithReason=Podaj lokalizacj\u0119 przegl\u0105darki (polecenie \u201e{0}\u201d jest nieprawid\u0142owe). + +# Boot options, message should be shorter than this ----------------> +BOUsage=javaws [-opcje-uruchomienia] +BOUsage2=javaws [-opcje-sterowania] +BOJnlp=Lokalizacja pliku JNLP do wystartowania (URL lub plik) +BOArg=Do wiesza argument aplikacji przed wystartowaniem +BOParam=Do wiesza parametr aplikacyjki przed wystartowaniem +BOProperty=Ustawia w\u0142a\u015bciwo\u015b\u0107 systemow\u0105 przed wystartowaniem +BOUpdate=Sprawd\u017a dost\u0119pno\u015b\u0107 aktualizacji +BOLicense=Wy\u015bwietl licencj\u0119 GPL i zako\u0144cz +BOVerbose=W\u0142\u0105cz rozmowne komunikaty +BOAbout=Pokazuje aplikacj\u0119 przyk\u0142adow\u0105 +BONosecurity=Wy\u0142\u0105cza bezpieczne \u015brodowisko uruchomieniowe +BONoupdate=Wy\u0142\u0105cza sprawdzanie dost\u0119pno\u015bci aktualizacji +BOHeadless=Wy\u0142\u0105cza okno pobierania i inne interfejsy graficzne +BOStrict=W\u0142\u0105cza \u015bcis\u0142e sprawdzanie format pliku JNLP +BOViewer=Pokazuje podgl\u0105d zaufanych certyfikat\u00f3w +BXnofork=Nie tw\u00f3rz nast\u0119pnej JVM +BXclearcache=Wyczy\u015b\u0107 pami\u0119\u0107 podr\u0119czn\u0105 aplikacji JNLP +BOHelp=Wy\u015bwietl ten komunikat i zako\u0144cz + +# Cache +CAutoGen=Wygenerowano automatycznie - nie edytowa\u0107 +CNotCacheable=Zas\u00f3b \u201e{0}\u201d jest nie do przechowania w pami\u0119ci podr\u0119cznej. +CDownloading=Pobieranie +CComplete=Uko\u0144czono +CChooseCache=Wybierz katalog pami\u0119ci podr\u0119cznej... +CChooseCacheInfo=NetX wymaga lokalizacj\u0119 do sk\u0142adowania plik\u00f3w pami\u0119ci podr\u0119cznej. +CChooseCacheDir=Katalog pami\u0119ci podr\u0119cznej +CCannotClearCache=Nie mo\u017cna wyczy\u015bci\u0107 pami\u0119ci podr\u0119cznej w tej chwili. +CFakeCache=Pami\u0119\u0107 podr\u0119czna jest uszkodzona. Naprawianie. +CFakedCache=Naprawiono uszkodzon\u0105 pami\u0119\u0107 podr\u0119czn\u0105. Stanowczo si\u0119 zaleca uruchomi\u0107 polecenie \u201ejavaws -Xclearcache\u201d wraz z nast\u0119puj\u0105cym ponownym uruchomieniem aplikacji. + +# Security +SFileReadAccess=Aplikacja za\u017c\u0105da\u0142a uprawnienie do odczytu \u201e{0}\u201d. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SFileWriteAccess=Aplikacja za\u017c\u0105da\u0142a uprawnienie do zapisu \u201e{0}\u201d. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SDesktopShortcut=Aplikacja za\u017c\u0105da\u0142a uprawnienie do utworzenia aktywatora na pulpicie. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SSigUnverified=Nie mo\u017cna zweryfikowa\u0107 podpisu cyfrowego aplikacji. Czy chcesz uruchomi\u0107 aplikacj\u0119? +SSigVerified=Zweryfikowano podpis cyfrowy aplikacji. Czy chcesz uruchomi\u0107 aplikacj\u0119? +SSignatureError=Podpis cyfrowy aplikacji zawiera b\u0142\u0105d. Czy chcesz uruchomi\u0107 aplikacj\u0119? +SUntrustedSource=Nie zweryfikowano podpisu cyfrowego przez zaufanego wydawc\u0119. Uruchamiaj wy\u0142\u0105cznie je\u015bli ufasz pochodzeniu aplikacji. +SWarnFullPermissionsIgnorePolicy=Kodowi wykonywalnemu zostan\u0105 wydane pe\u0142ne uprawnienia, ignoruj\u0105c wszelkie wytyczne Java. +STrustedSource=Potwierdzono podpis cyfrowy przez zaufanego wydawc\u0119. +SClipboardReadAccess=Aplikacja za\u017c\u0105da\u0142a wy\u0142\u0105czne uprawnienie do odczytu do schowka. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SClipboardWriteAccess=Aplikacja za\u017c\u0105da\u0142a wy\u0142\u0105czne uprawnienie do zapisu do schowka. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SPrinterAccess=Aplikacja za\u017c\u0105da\u0142a dost\u0119p do drukarki. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SNetworkAccess=Aplikacja za\u017c\u0105da\u0142a zezwolenie na nawi\u0105zywanie po\u0142\u0105cze\u0144 do \u201e{0}\u201d. Czy chcesz zezwoli\u0107 na t\u0105 akcj\u0119? +SNoAssociatedCertificate= +SUnverified=(niezweryfikowany) +SAlwaysTrustPublisher=Zawsze ufaj materia\u0142om od tego wydawcy. +SHttpsUnverified=Nie zweryfikowano certyfikat HTTPS witryny internetowej. +SNotAllSignedSummary=Zaledwie cz\u0119\u015bci kodu tej aplikacji s\u0105 podpisane. +SNotAllSignedDetail=Ta aplikacja zawiera zar\u00f3wno podpisany jak i niepodpisany kod. Cho\u0107 kod, kt\u00f3ry jest podpisany przez zaufanego dostawc\u0119 jest bezpieczny, niepodpisany kod mo\u017ce poci\u0105ga\u0107 za sob\u0105 kod, kt\u00f3ry jest poza kontrolnym zasi\u0119giem zaufanego dostawcy. +SNotAllSignedQuestion=Czy chcesz kontynuowa\u0107 i mimo to uruchomi\u0107 t\u0105 aplikacj\u0119? +SAuthenticationPrompt=Serwer {0} w \u201e{1}\u201d \u017c\u0105da uwierzytelnienia. Podaje komunikat: \u201e{2}\u201d +SJNLPFileIsNotSigned=Ta aplikacja zawiera podpis cyfrowy, jednak startowany plik JNLP jest bez podpisu. + +# Security - used for the More Information dialog +SBadKeyUsage=Zasoby zawieraj\u0105 wpisy dla kt\u00f3rych rozszerzenie KeyUsage certyfikatu podpisuj\u0105cego nie zezwala na podpisywanie kodu. +SBadExtendedKeyUsage=Zasoby zawieraj\u0105 wpisy dla kt\u00f3rych rozszerzenie ExtendedKeyUsage certyfikatu podpisuj\u0105cego nie zezwala na podpisywanie kodu. +SBadNetscapeCertType=Zasoby zawieraj\u0105 wpisy dla kt\u00f3rych rozszerzenie NetscapeCertType certyfikatu podpisuj\u0105cego nie zezwala na podpisywanie kodu. +SHasExpiredCert=Podpis cyfrowy wygas\u0142. +SHasExpiringCert=Zasoby zawieraj\u0105 wpisy kt\u00f3rych certyfikat podpisuj\u0105cego wyga\u015bnie za sze\u015b\u0107 miesi\u0119cy. +SNotYetValidCert=Zasoby zawieraj\u0105 wpisy kt\u00f3rych certyfikat podpisuj\u0105cego nie jest jeszcze wa\u017cny. From jvanek at icedtea.classpath.org Fri Apr 26 08:01:47 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 15:01:47 +0000 Subject: /hg/icedtea-web: Reverting accidentaly enabled logs reprint Message-ID: changeset bdd44d6d1d1e in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bdd44d6d1d1e author: Jiri Vanek date: Fri Apr 26 17:05:14 2013 +0200 Reverting accidentaly enabled logs reprint diffstat: tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 83ecbeacafac -r bdd44d6d1d1e tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java --- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 17:01:59 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 17:05:14 2013 +0200 @@ -119,7 +119,7 @@ * this flag is indicating whether output of executeProcess should be logged. By default true. */ public static boolean PROCESS_LOG = true; - public static boolean LOGS_REPRINT = true; + public static boolean LOGS_REPRINT = false; private Browser currentBrowser; public static final String UNSET_BROWSER="unset_browser"; From ptisnovs at redhat.com Fri Apr 26 07:36:26 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 26 Apr 2013 10:36:26 -0400 (EDT) Subject: Reviewer needed: two new JTreg tests for IcedTea6 HEAD In-Reply-To: <1910991746.3751830.1366986377316.JavaMail.root@redhat.com> References: <1266320108.2735528.1366970418872.JavaMail.root@redhat.com> <1910991746.3751830.1366986377316.JavaMail.root@redhat.com> Message-ID: <64510667.2975631.1366986986736.JavaMail.root@redhat.com> ----- Andrew Hughes wrote: > > > ----- Original Message ----- > > Hi everyone, > > > > I'd like to add two new JTreg tests into IcedTea6 HEAD. These tests > > check the basic behavior of TextLayout class and the font-subengine itself > > (btw it's been altered by some recent security patches). > > > > ChangeLog entry: > > > > 2013-04-26 Pavel Tisnovsky > > > > * Makefile.am: > > (ICEDTEA_PATCHES): Add two new patches. > > * patches/textLayoutGetCharacterCount.patch: > > * patches/textLayoutLimits.patch: > > Two JTreg tests for checking TextLayout class behaviour. > > > > Can anybody please review this change? > > > > Thank you in advance, > > Pavel Tisnovsky > > > > Are these backports or new patches? If the latter, why 6 only? These are new patches and we need it in IT6 (ATM) to catch any future issues in font subsystem. I'd like to add something similar to OpenJDK8/OpenJDK7, but don't know if it's possible to create regtest w/o official id of bug checked by these tests. Pavel > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > From gnu.andrew at redhat.com Fri Apr 26 08:28:02 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 26 Apr 2013 11:28:02 -0400 (EDT) Subject: Reviewer needed: two new JTreg tests for IcedTea6 HEAD In-Reply-To: <64510667.2975631.1366986986736.JavaMail.root@redhat.com> References: <1266320108.2735528.1366970418872.JavaMail.root@redhat.com> <1910991746.3751830.1366986377316.JavaMail.root@redhat.com> <64510667.2975631.1366986986736.JavaMail.root@redhat.com> Message-ID: <874761479.3779548.1366990082963.JavaMail.root@redhat.com> ----- Original Message ----- > ----- Andrew Hughes wrote: > > > > > > ----- Original Message ----- > > > Hi everyone, > > > > > > I'd like to add two new JTreg tests into IcedTea6 HEAD. These tests > > > check the basic behavior of TextLayout class and the font-subengine > > > itself > > > (btw it's been altered by some recent security patches). > > > > > > ChangeLog entry: > > > > > > 2013-04-26 Pavel Tisnovsky > > > > > > * Makefile.am: > > > (ICEDTEA_PATCHES): Add two new patches. > > > * patches/textLayoutGetCharacterCount.patch: > > > * patches/textLayoutLimits.patch: > > > Two JTreg tests for checking TextLayout class behaviour. > > > > > > Can anybody please review this change? > > > > > > Thank you in advance, > > > Pavel Tisnovsky > > > > > > > Are these backports or new patches? If the latter, why 6 only? > > > These are new patches and we need it in IT6 (ATM) to catch any future issues > in font subsystem. I'd like to add something similar to OpenJDK8/OpenJDK7, > but > don't know if it's possible to create regtest w/o official id of bug checked > by these tests. > Of course you can. You already have, no? Fine by me for HEAD. > Pavel > > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > > > -- 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 omajid at redhat.com Fri Apr 26 09:39:25 2013 From: omajid at redhat.com (Omair Majid) Date: Fri, 26 Apr 2013 12:39:25 -0400 Subject: [rfc][icedtea-web] Fix regression in SpacesCanBeEveryWhere reproducer In-Reply-To: <517832F1.908@redhat.com> References: <517832F1.908@redhat.com> Message-ID: <517AADBD.9090002@redhat.com> Hi Adam, On 04/24/2013 03:30 PM, Adam Domurad wrote: > Note that the headache is caused because Java allows essentially invalid > URLs to be created (and, on our side, that we allow them to be created). Is it possible to fix these URLs before allowing them to come into the system proper? I am thinking that it should be possible to fix the URLs when we are parsing the JNLP file and not handle them in various places throughout icedtea-web. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From adomurad at icedtea.classpath.org Fri Apr 26 09:55:53 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Fri, 26 Apr 2013 16:55:53 +0000 Subject: /hg/icedtea-web: Decode local-file URLs leniently Message-ID: changeset 0ee3a00bfdd1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0ee3a00bfdd1 author: Adam Domurad date: Fri Apr 26 12:44:48 2013 -0400 Decode local-file URLs leniently diffstat: ChangeLog | 9 +++++ netx/net/sourceforge/jnlp/cache/ResourceTracker.java | 5 +-- netx/net/sourceforge/jnlp/util/UrlUtils.java | 5 +++ tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java | 20 +++++++++++- 4 files changed, 33 insertions(+), 6 deletions(-) diffs (101 lines): diff -r bdd44d6d1d1e -r 0ee3a00bfdd1 ChangeLog --- a/ChangeLog Fri Apr 26 17:05:14 2013 +0200 +++ b/ChangeLog Fri Apr 26 12:44:48 2013 -0400 @@ -1,3 +1,12 @@ +2013-04-26 Adam Domurad + + * netx/net/sourceforge/jnlp/cache/ResourceTracker.java + (getCacheFile): Use decodeUrlAsFile instead of toURI().getPath(). + * netx/net/sourceforge/jnlp/util/UrlUtils.java + (decodeUrlAsFile): New, tolerates ill-formed URLs. + * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java: + (testDecodeUrlAsFile): Test for (decodeUrlAsFile) + 2013-04-26 Jiri Vanek Jacob Wisor diff -r bdd44d6d1d1e -r 0ee3a00bfdd1 netx/net/sourceforge/jnlp/cache/ResourceTracker.java --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Fri Apr 26 17:05:14 2013 +0200 +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Fri Apr 26 12:44:48 2013 -0400 @@ -390,7 +390,7 @@ return resource.localFile; if (location.getProtocol().equalsIgnoreCase("file")) { - File file = new File(location.toURI().getPath()); + File file = UrlUtils.decodeUrlAsFile(location); if (file.exists()) return file; } @@ -401,9 +401,6 @@ ex.printStackTrace(); return null; // need an error exception to throw - } catch (URISyntaxException e) { - e.printStackTrace(); - return null; } } diff -r bdd44d6d1d1e -r 0ee3a00bfdd1 netx/net/sourceforge/jnlp/util/UrlUtils.java --- a/netx/net/sourceforge/jnlp/util/UrlUtils.java Fri Apr 26 17:05:14 2013 +0200 +++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java Fri Apr 26 12:44:48 2013 -0400 @@ -37,6 +37,7 @@ package net.sourceforge.jnlp.util; +import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; @@ -134,4 +135,8 @@ return normalizeUrlQuietly(url, false); } + /* Decode a URL as a file, being tolerant of URLs with mixed encoded & decoded portions. */ + public static File decodeUrlAsFile(URL url) { + return new File(decodeUrlQuietly(url).getFile()); + } } diff -r bdd44d6d1d1e -r 0ee3a00bfdd1 tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Fri Apr 26 17:05:14 2013 +0200 +++ b/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Fri Apr 26 12:44:48 2013 -0400 @@ -1,9 +1,11 @@ package net.sourceforge.jnlp.util; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import java.io.File; import java.net.URL; - + import org.junit.Test; public class UrlUtilsTest { @@ -57,10 +59,24 @@ assertEquals("file://example/%20test", UrlUtils.normalizeUrl(new URL("file://example/ test"), true).toString()); } + @Test public void testNormalizeUrlQuietly() throws Exception { // This is a wrapper over UrlUtils.normalizeUrl(), simple test suffices assertEquals("http://example.com/%20test%20test", UrlUtils.normalizeUrl(new URL("http://example.com/ test%20test ")).toString()); } + + @Test + public void testDecodeUrlAsFile() throws Exception { + String[] testPaths = {"/simple", "/ with spaces", "/with /multiple=/ odd characters?"}; + + for (String testPath : testPaths) { + File testFile = new File(testPath); + URL notEncodedUrl = testFile.toURL(); + URL encodedUrl = testFile.toURI().toURL(); + assertEquals(testFile, UrlUtils.decodeUrlAsFile(notEncodedUrl)); + assertEquals(testFile, UrlUtils.decodeUrlAsFile(encodedUrl)); + } + } } \ No newline at end of file From jvanek at icedtea.classpath.org Fri Apr 26 10:29:47 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 17:29:47 +0000 Subject: /hg/icedtea-web: removed whitespace following trailing backslash Message-ID: changeset 62126eb71a52 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=62126eb71a52 author: Jiri Vanek date: Fri Apr 26 19:33:06 2013 +0200 removed whitespace following trailing backslash Makefile.am:370: whitespace following trailing backslash Makefile.am:371: whitespace following trailing backslash diffstat: Makefile.am | 4 ++-- tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diffs (26 lines): diff -r 0ee3a00bfdd1 -r 62126eb71a52 Makefile.am --- a/Makefile.am Fri Apr 26 12:44:48 2013 -0400 +++ b/Makefile.am Fri Apr 26 19:33:06 2013 +0200 @@ -367,8 +367,8 @@ $(CXX) $(CXXFLAGS) \ $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \ $(CPP_UNITTEST_DIR)/*.o \ - -lrt \ - -lpthread \ + -lrt \ + -lpthread \ $(GLIB_LIBS) \ $(MOZILLA_LIBS) \ $(CPP_UNITTEST_FRAMEWORK_LIB)\ diff -r 0ee3a00bfdd1 -r 62126eb71a52 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java --- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 12:44:48 2013 -0400 +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 19:33:06 2013 +0200 @@ -119,7 +119,7 @@ * this flag is indicating whether output of executeProcess should be logged. By default true. */ public static boolean PROCESS_LOG = true; - public static boolean LOGS_REPRINT = false; + public static boolean LOGS_REPRINT = true; private Browser currentBrowser; public static final String UNSET_BROWSER="unset_browser"; From adomurad at redhat.com Fri Apr 26 10:57:42 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 26 Apr 2013 13:57:42 -0400 Subject: /hg/icedtea-web: removed whitespace following trailing backslash In-Reply-To: References: Message-ID: <517AC016.9020108@redhat.com> On 04/26/2013 01:29 PM, jvanek at icedtea.classpath.org wrote: > changeset 62126eb71a52 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=62126eb71a52 > author: Jiri Vanek > date: Fri Apr 26 19:33:06 2013 +0200 > > removed whitespace following trailing backslash > Makefile.am:370: whitespace following trailing backslash > Makefile.am:371: whitespace following trailing backslash > > > diffstat: > > Makefile.am | 4 ++-- > tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diffs (26 lines): > > diff -r 0ee3a00bfdd1 -r 62126eb71a52 Makefile.am > --- a/Makefile.am Fri Apr 26 12:44:48 2013 -0400 > +++ b/Makefile.am Fri Apr 26 19:33:06 2013 +0200 > @@ -367,8 +367,8 @@ > $(CXX) $(CXXFLAGS) \ > $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \ > $(CPP_UNITTEST_DIR)/*.o \ > - -lrt \ > - -lpthread \ > + -lrt \ > + -lpthread \ > $(GLIB_LIBS) \ > $(MOZILLA_LIBS) \ > $(CPP_UNITTEST_FRAMEWORK_LIB)\ > diff -r 0ee3a00bfdd1 -r 62126eb71a52 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java > --- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 12:44:48 2013 -0400 > +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 19:33:06 2013 +0200 > @@ -119,7 +119,7 @@ > * this flag is indicating whether output of executeProcess should be logged. By default true. > */ > public static boolean PROCESS_LOG = true; > - public static boolean LOGS_REPRINT = false; > + public static boolean LOGS_REPRINT = true; Was this intentional ? > > private Browser currentBrowser; > public static final String UNSET_BROWSER="unset_browser"; Happy hacking, -Adam From jvanek at icedtea.classpath.org Fri Apr 26 11:08:23 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 26 Apr 2013 18:08:23 +0000 Subject: /hg/icedtea-web: Again, diabling accidentally enabled logs reprint Message-ID: changeset 728cc3b2ab34 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=728cc3b2ab34 author: Jiri Vanek date: Fri Apr 26 20:11:33 2013 +0200 Again, diabling accidentally enabled logs reprint diffstat: tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 62126eb71a52 -r 728cc3b2ab34 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java --- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 19:33:06 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Fri Apr 26 20:11:33 2013 +0200 @@ -119,7 +119,7 @@ * this flag is indicating whether output of executeProcess should be logged. By default true. */ public static boolean PROCESS_LOG = true; - public static boolean LOGS_REPRINT = true; + public static boolean LOGS_REPRINT = false; private Browser currentBrowser; public static final String UNSET_BROWSER="unset_browser"; From jvanek at redhat.com Fri Apr 26 11:16:44 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Apr 2013 20:16:44 +0200 Subject: Upcoming releases of IcedTea-Web 1.2, 1.3, 1.4 In-Reply-To: <516E6419.5050409@redhat.com> References: <515E921C.2030207@redhat.com> <51659134.8050509@redhat.com> <516E6419.5050409@redhat.com> Message-ID: <517AC48C.6060006@redhat.com> On 04/17/2013 10:58 AM, Jiri Vanek wrote: > On 04/10/2013 06:20 PM, Jiri Vanek wrote: >> On 04/05/2013 10:58 AM, Jiri Vanek wrote: >>> Hi all! >>> >>> There are two releases of IcedTea-Web approaching: >>> >>> We would like to release 1.2 and 1.3 in 17th of April >>> Please count with freezing of branches in week 10-17.4, but there is not so much traffic on >>> branches anyway. >>> >>> At 1th of May is planed release of IcedTea-Web 1.4! >>> This release is bringing many improvements and IcedTea-Web was never as stable as is now. I would >>> like to encourage every distribution to move to this release. >>> Unless something unlucky will be found in 1.4, some time later the 1.2 will be proclaimed dead. >>> Please count with head frozen in last week of April. >>> >>> Best regards >>> J. >> >> Hi! >> >> >> With the approaching release of IcedTea-Web 1.2.3 and 1.3.2, please >> consider /release/icedtea-web-1.2/ and /release/icedtea-web-1.3/ frozen. >> >> >> 1.2: >> - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 >> - PR1157: Applets can hang browser after fatal exception >> >> 1.3 >> - Added new option in itw-settings which allows users to set JVM arguments when plugin is >> initialized. (backport) >> PR1260: IcedTea-Web should not rely on GTK >> PR1157: Applets can hang browser after fatal exception >> Provide names for unnamed threads for better debugging >> >> Both releases will also contain a (currently embargoed) security fix. >> >> Thanks for your for patience, understanding and contributions! >> >> >> J. >> >> > > The branches are out[1] and unfrozen, feel free to use and cross finger for upcoming 1.4:) > > J. > > [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-April/022790.html Hi all! Although feature and enhancement list for icedtea-web-1.4 (from users point of view) is compelte, release itself can be a bit delayed because of several issues caused by core improvements and by few missing tests. I'm sorry for troubles but meanwhile I'm offering pre-release tarball for playing and testing:) http://icedtea.wildebeest.org/download/source/icedtea-web-1.4pre1.tar.gz I hope that "regressions" or how to call those issues will be fixed asap. Sorry and thank you J. New in IcedTea-Web 1.4 * Numerous improvements and enhancements in core and system of classloaders * Added cs_CZ localization * Added de localization * Splash screen for javaws and plugin * Better error reporting for plugin via Error-splash-screen * All IcedTea-Web dialogues are centered to middle of active screen * Download indicator made compact for more then one jar * User can select its own JVM via itw-settings and deploy.properties. * Added extended applets security settings and dialogue * Security updates - CVE-2013-1926, RH916774: Class-loader incorrectly shared for applets with same relative-path. - CVE-2013-1927, RH884705: fixed gifar vulnerabilit - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings * NetX - PR1027: DownloadService is not supported by IcedTea-Web - PR725: JNLP applications will prompt for creating desktop shortcuts every time they are run - PR1292: Javaws does not resolve versioned jar names with periods correctly * Plugin - PR1106: Buffer overflow in plugin table- - PR1166: Embedded JNLP File is not supported in applet tag - PR1217: Add command line arguments for plugins - PR1189: Icedtea-plugin requires code attribute when using jnlp_href - PR1198: JSObject is not passed to javascript correctly - PR1260: IcedTea-Web should not rely on GTK - PR1157: Applets can hang browser after fatal exception - PR580: http://www.horaoficial.cl/ loads improperly * Common - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered - PR955: regression: SweetHome3D fails to run - PR1145: IcedTea-Web can cause ClassCircularityError - PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 - PR822: Applets fail to load if jars have different signers - PR1186: System.getProperty("deployment.user.security.trusted.cacerts") is null - PR909: The Java applet at http://de.gosupermodel.com/games/wardrobegame.jsp fails - PR1299: WebStart doesn't read socket proxy settings from firefox correctly People who helped with this release (If I forgot somebody, please let me know!): Deepak Bhole Danesh Dadachanji Adam Domurad Jana Fabrikova Peter Hatina Andrew John Hughes Matthias Klose Alexandr Kolouch Jan Kmetko Omair Majid Thomas Meyer Saad Mohammad Martin Olsson Pavel Tisnovsky Jiri Vanek Jacob Wisor Special thanks to: * Adam Domurad - for deep investigations and fixes in core, and in numerous classloaders or otherwise complicated bugs * Jan Kmetko - for initial design of splashscreen * Deepak Bhole and Omair Majid - for ever keeping an watchful eye on patches * to community - namely: - Jacob Wisor and Alexandr Kolouch - who voluntary offered and delivered Pl and Cz translation From jfabriko at icedtea.classpath.org Fri Apr 26 11:22:40 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Fri, 26 Apr 2013 18:22:40 +0000 Subject: /hg/icedtea-web: adding awtframework (without reproducers) Message-ID: changeset d84475508473 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d84475508473 author: Jana Fabrikova date: Fri Apr 26 20:24:55 2013 +0200 adding awtframework (without reproducers) diffstat: ChangeLog | 24 + tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java | 66 + tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java | 559 ++++++++++ tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/KeyboardActions.java | 111 + tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/MouseActions.java | 228 ++++ tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java | 107 + tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentNotFoundException.java | 65 + tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java | 325 +++++ tests/test-extensions/net/sourceforge/jnlp/closinglisteners/RulesFolowingClosingListener.java | 4 + 9 files changed, 1489 insertions(+), 0 deletions(-) diffs (truncated from 1534 to 500 lines): diff -r 728cc3b2ab34 -r d84475508473 ChangeLog --- a/ChangeLog Fri Apr 26 20:11:33 2013 +0200 +++ b/ChangeLog Fri Apr 26 20:24:55 2013 +0200 @@ -1,3 +1,27 @@ +2013-04-26 Jana Fabrikova + + * /tests/test-extensions/net/sourceforge/jnlp/closinglisteners/RulesFolowingClosingListener.java: + added a getter method getRules + * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: + the most important class of AWTFramework, combines closing listener and + possibility to use mouse and keyboard for input to tests + * tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java: + exception that is raised in the framework whenever programmer did not + provide enough information + * tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/KeyboardActions.java: + class with utility keyboard methods + * tests/test-extensions/net/sourceforge/jnlp/awt/awtactions/MouseActions.java: + class with utility mouse methods + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: + class for finding components in a screenshot + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentNotFoundException.java: + exception that can be raised if an important component could not be found + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: + class for general image searching + * tests/reproducers/simple/AWTCommonResourcesOnly/resources/marker.png: + reproducer with resources only, contains the default icon marking + applets + 2013-04-26 Adam Domurad * netx/net/sourceforge/jnlp/cache/ResourceTracker.java diff -r 728cc3b2ab34 -r d84475508473 tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/AWTFrameworkException.java Fri Apr 26 20:24:55 2013 +0200 @@ -0,0 +1,66 @@ +/* AWTFrameworkException.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.awt; + +/** + * Class AWTFrameworkException is thrown in the AWTFramework + * whenever the framework encounters not enough data specified + * to perform an action (for example it is impossible to ascertain + * the position of an applet in the screenshot if the width or height + * of the applet is not known. + * + */ + +public class AWTFrameworkException extends Exception { + + public AWTFrameworkException() { + super(); + } + + public AWTFrameworkException(String s) { + super(s); + } + + public AWTFrameworkException(String s, Throwable throwable) { + super(s, throwable); + } + + public AWTFrameworkException(Throwable throwable) { + super(throwable); + } +} diff -r 728cc3b2ab34 -r d84475508473 tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Fri Apr 26 20:24:55 2013 +0200 @@ -0,0 +1,559 @@ +/* AWTHelper.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.awt; + +import java.awt.AWTException; +import java.awt.Color; +import java.awt.Rectangle; +import java.awt.Robot; +import java.awt.Toolkit; +import java.awt.event.InputEvent; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; + +import net.sourceforge.jnlp.awt.awtactions.KeyboardActions; +import net.sourceforge.jnlp.awt.awtactions.MouseActions; +import net.sourceforge.jnlp.awt.imagesearch.ComponentFinder; +import net.sourceforge.jnlp.awt.imagesearch.ComponentNotFoundException; +import net.sourceforge.jnlp.awt.imagesearch.ImageSeeker; +import net.sourceforge.jnlp.closinglisteners.Rule; +import net.sourceforge.jnlp.closinglisteners.RulesFolowingClosingListener; + +public abstract class AWTHelper extends RulesFolowingClosingListener implements Runnable{ + + //attributes possibly set by user + private String initStr = ""; + private Color appletColor; + private BufferedImage marker; + private Rectangle markerPosition; + private int appletHeight; + private int appletWidth; + private int tryKTimes = DEFAULT_K; + + //other + protected StringBuilder sb = new StringBuilder(); + private boolean actionStarted = false; + private Rectangle actionArea; + private BufferedImage screenshot; + private Robot robot; + private boolean appletFound = false; + private boolean initStrGiven = false; //impossible to find in the output if not given + private boolean appletColorGiven = false; //impossible to search for color difference if not given + private boolean markerGiven = false; //impossible to find the applet if marker not given + private boolean appletDimensionGiven = false; + private boolean screenshotTaken = false; + private int defaultWaitForApplet = 1000; + + //default number of times the screen is captured and the applet is searched for + //in the screenshot + public static final int DEFAULT_K = 3; + + + //several constructors + /** + * the minimal constructor - use: + * - if we do not want to find the bounds of applet area first + * - searching for buttons and other components is then done in the whole + * screen, confusion with other icons on display is then possible + * - less effective, deprecated (better bound the area first) + */ + @Deprecated + public AWTHelper() { + try { + this.robot = new Robot(); + } catch (AWTException e) { + throw new RuntimeException("AWTHelper could not create its Robot instance.",e); + } + } + + /** + * the minimal constructor with initStr - use: + * - we want to know from stdout that the applet (or sth else) is ready + * - if we do not want to find the bounds of applet area first + * - searching for buttons and other components is then done in the whole + * screen, confusion with other icons on display is then possible + * - less effective, deprecated (better bound the area first) + */ + @Deprecated + public AWTHelper(String initStr){ + this(); + + this.initStr = initStr; + this.initStrGiven = true; + } + + /** + * the constructor with icon and its position in applet of given dimension + * use: + * - we want to find and activate the applet first + * - the search for applet will be done via searching for icon + * of given position(x,y,w,h) inside applet of given width and height + * + * @param icon marker by which the applet will be found + * @param iconPosition relatively to applet (including icon width and height) + * @param appletWidth + * @param appletHeight + */ + + public AWTHelper(BufferedImage icon, Rectangle iconPosition, int appletWidth, int appletHeight){ + this(); + this.marker = icon; + this.markerPosition = iconPosition; + this.markerGiven = true; + + this.appletWidth = appletWidth; + this.appletHeight = appletHeight; + this.appletDimensionGiven = true; + } + + public AWTHelper(String initString, BufferedImage icon, Rectangle iconPosition, int appletWidth, int appletHeight) throws AWTException{ + this(icon, iconPosition, appletWidth, appletHeight); + + this.initStr = initString; + this.initStrGiven = true; + } + + /** + * the constructor with applet width and height only - use: + * - we want to find the applet by finding the default icon + * that is located in the upper left corner of applet + * + * @param appletWidth + * @param appletHeight + */ + public AWTHelper(int appletWidth, int appletHeight){ + this(); + String test_server_dir_path = System.getProperty("test.server.dir"); + + try { + this.marker = ImageIO.read(new File(test_server_dir_path + "/marker.png")); + this.markerPosition = new Rectangle(0,0,marker.getWidth(),marker.getHeight()); + this.markerGiven = true; + } catch (IOException e) { + throw new RuntimeException("AWTHelper could not read marker.png.",e); + } + + this.appletWidth = appletWidth; + this.appletHeight = appletHeight; + this.appletDimensionGiven = true; + } + + public AWTHelper(String initString, int appletWidth, int appletHeight){ + this(appletWidth, appletHeight); + this.initStr = initString; + this.initStrGiven = true; + } + + /** + * refers to AWTHelper functioning as RulesFolowingClosingListener + * + * @param strs array of strings to be added as contains rules + */ + public void addClosingRulesFromStringArray(String [] strs){ + for(String s : strs){ + this.addContainsRule(s); + } + } + + /** + * override of method charReaded (from RulesFolowingClosingListener) + * + * waiting for the applet, when applet is ready run action thread + * when all the wanted strings are in the stdout, applet can be closed + * + * @param ch + */ + @Override + public void charReaded(char ch) { + sb.append(ch); + //is applet ready to start clicking? + if (initStrGiven && !actionStarted && appletIsReady(sb.toString())) { + try{ + actionStarted = true; + this.findAndActivateApplet(); + this.run(); + } catch (ComponentNotFoundException e1) { + throw new RuntimeException("AWTHelper problems finding applet.",e1); + } catch (AWTFrameworkException e2){ + throw new RuntimeException("AWTHelper problems with unset attributes.",e2); + } + } + //is all the wanted output in stdout? + super.charReaded(ch); + } + + /** + * method runAWTHelper - we can call run and declared the action as started + * without finding out if initStr is in the output, if this method is + * called + * + */ + public void runAWTHelper(){ + actionStarted = true; + this.run(); + } + + /** + * implementation of AWTHelper should implement the run method + */ + public abstract void run(); + + + /** + * method getInitStrAsRule returns the initStr in the form + * of Contains rule that can be evaluated on a string + * + * @return + */ + public Rule getInitStrAsRule(){ + return new ContainsRule(this.initStr); + } + + //boolean controls getters + protected boolean appletIsReady(String content) { + return (content.contains(initStr)); + } + + public boolean isActionStarted() { + return actionStarted; + } + + public boolean isInitStrGiven(){ + return initStrGiven; + } + + public boolean isAppletColorGiven(){ + return appletColorGiven; + } + + public boolean isAppletDimensionGiven(){ + return appletDimensionGiven; + } + + public boolean isMarkerGiven(){ + return markerGiven; + } + + //setters + /** + * method setDefaultWaitForApplet sets the time (in ms) for which the method + * captureScreenAndFindApplet will wait (for the applet to load) before it + * gets the screenshot the default time is 1000ms + * + * @param defaultWaitForApplet + */ + public void setDefaultWaitForApplet(int defaultWaitForApplet) { + this.defaultWaitForApplet = defaultWaitForApplet; + } + + public void setTryKTimes(int tryKTimes) { + this.tryKTimes = tryKTimes; + } + + public void setAppletColor(Color appletColor) { + this.appletColor = appletColor; + this.appletColorGiven = true; + } + + public void setInitStr(String initStr) { + this.initStr = initStr; + this.initStrGiven = true; + } + + public void setMarker(BufferedImage marker, Rectangle markerPosition) { + this.marker = marker; + this.markerPosition = markerPosition; + this.markerGiven = true; + } + + public void setAppletDimension(int width, int height){ + this.appletWidth = width; + this.appletHeight = height; + this.appletDimensionGiven = true; + } + + + //creating screenshots, searching for applet + /** + * method captureScreenAndFindAppletByIcon + * 1. checks that all needed attributes of AWTHelper are given + * (marker, its position and applet width and height) + * 2. captures screen, + * 3. finds the rectangle where applet is and saves it to the attribute + * actionArea + * 4. sets screenCapture indicator to true (after tryKTimes unsuccessfull + * tries an exception "ComponentNotFound" will be raised) + * + * @throws AWTException + * @throws ComponentNotFoundException + * @throws AWTFrameworkException + */ + public void captureScreenAndFindAppletByIcon() throws ComponentNotFoundException, AWTFrameworkException { + if(!appletDimensionGiven || !markerGiven){ + throw new AWTFrameworkException("AWTFramework cannot find applet without dimension or marker!"); + } + captureScreenAndFindAppletByIconTryKTimes(marker, markerPosition, appletWidth, appletHeight, tryKTimes); + } + + /** + ** method captureScreenAndFindAppletByIcon + * 1. captures screen, + * 2. finds the rectangle where applet is and saves it to the attribute + * actionArea + * 3. sets screenCapture indicator to true (after tryKTimes unsuccessfull + * tries an exception "ComponentNotFound" will be raised) + * + * @param icon + * @param iconPosition + * @param width + * @param height + * @param K + * @throws ComponentNotFoundException + * @throws AWTFrameworkException + */ + public void captureScreenAndFindAppletByIconTryKTimes(BufferedImage icon, Rectangle iconPosition, int width, int height, int K) throws ComponentNotFoundException, AWTFrameworkException { + + if(!markerGiven){ + throw new AWTFrameworkException("AWTFramework cannot find applet without marker!"); + } + + int count = 0; + appletFound = false; + while ((count < K) && !appletFound) { + robot.delay(defaultWaitForApplet); + screenshot = robot.createScreenCapture( new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() ) ); + screenshotTaken = true; + actionArea = ComponentFinder.findWindowByIcon(icon, iconPosition, width, height, screenshot); + if (ImageSeeker.isRectangleValid(actionArea)) { + appletFound = true; + } + count++; + } + + if (ImageSeeker.isRectangleValid(actionArea)) { + appletFound = true; + } else { + throw new ComponentNotFoundException("Applet not found in the screenshot!"); + } + + } + + /** + * auxiliary method writeAppletScreen for writing Buffered image into png + * + * @param appletScreen + * @param filename + * @throws IOException + */ + private void writeAppletScreen(BufferedImage appletScreen, String filename) throws IOException {// into png file + ImageIO.write(appletScreen, "png", new File(filename+".png")); + } + + + /** + * method findAndActivateApplet finds the applet by icon + * and clicks in the middle of applet area + * + * @throws ComponentNotFoundException (applet not found) + * @throws AWTFrameworkException From jvanek at icedtea.classpath.org Mon Apr 29 00:25:42 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 29 Apr 2013 07:25:42 +0000 Subject: /hg/icedtea-web: Disabled accidentally enabled reprint of logs d... Message-ID: changeset c5e4fbd65bc0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c5e4fbd65bc0 author: Jiri Vanek date: Mon Apr 29 09:25:50 2013 +0200 Disabled accidentally enabled reprint of logs during locales tests diffstat: tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r d84475508473 -r c5e4fbd65bc0 tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java Fri Apr 26 20:24:55 2013 +0200 +++ b/tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java Mon Apr 29 09:25:50 2013 +0200 @@ -309,7 +309,7 @@ } private void errLog(String string) { //used quite often :) - System.out.println(string); + //System.out.println(string); ServerAccess.logErrorReprint(string); } From ptisnovs at icedtea.classpath.org Mon Apr 29 01:10:18 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 29 Apr 2013 08:10:18 +0000 Subject: /hg/gfx-test: Added five helper methods into ClippingCircleByCon... Message-ID: changeset 9051b1fb2fa2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=9051b1fb2fa2 author: Pavel Tisnovsky date: Mon Apr 29 10:13:34 2013 +0200 Added five helper methods into ClippingCircleByConvexPolygonalShape test suite. diffstat: ChangeLog | 6 + src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java | 125 ++++++++++ 2 files changed, 131 insertions(+), 0 deletions(-) diffs (155 lines): diff -r 8e663e0cfd11 -r 9051b1fb2fa2 ChangeLog --- a/ChangeLog Fri Apr 26 09:34:20 2013 +0200 +++ b/ChangeLog Mon Apr 29 10:13:34 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-29 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: + Added five helper methods into ClippingCircleByConvexPolygonalShape + test suite. + 2013-04-26 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltConvolveOp.java: diff -r 8e663e0cfd11 -r 9051b1fb2fa2 src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java --- a/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Fri Apr 26 09:34:20 2013 +0200 +++ b/src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java Mon Apr 29 10:13:34 2013 +0200 @@ -120,6 +120,31 @@ /** * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha + * paint with black color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintBlack(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillBlackColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha * paint with red color and selected transparency. * * @param image @@ -194,6 +219,106 @@ } /** + * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha + * paint with magenta color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintMagenta(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillMagentaColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha + * paint with cyan color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintCyan(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillCyanColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha + * paint with yellow color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintYellow(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillYellowColor(graphics2d, transparency); + // create clip area + CommonClippingOperations.createClipUsingConvexPolygonalShape(image, graphics2d); + // fill the shape + CommonShapesRenderer.drawFilledCircle(image, graphics2d); + } + + /** + * Draw circle clipped by a convex polygonal shape. Circle is drawn using alpha + * paint with white color and selected transparency. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @param transparency + * selected transparency (0..100 percent) + */ + private void drawCircleClippedByPolygonalShapeAlphaPaintWhite(TestImage image, Graphics2D graphics2d, int transparency) + { + // render clip polygon + CommonClippingOperations.renderConvexClipPolygon(image, graphics2d); + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTransparentFillWhiteColor(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 convex polygonal shape. Circle is * rendered using stroke paint. * From ptisnovs at icedtea.classpath.org Mon Apr 29 01:21:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 29 Apr 2013 08:21:58 +0000 Subject: /hg/rhino-tests: Updated four tests in AbstractScriptEngineClass... Message-ID: changeset 1b9cfd28c6e2 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=1b9cfd28c6e2 author: Pavel Tisnovsky date: Mon Apr 29 10:25:19 2013 +0200 Updated four tests in AbstractScriptEngineClassTest for (Open)JDK8 API: getField, getDeclaredField, getFields and getDeclaredFields. diffstat: ChangeLog | 6 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 78 ++++++++++++++++++- 2 files changed, 80 insertions(+), 4 deletions(-) diffs (129 lines): diff -r 4af92415b07c -r 1b9cfd28c6e2 ChangeLog --- a/ChangeLog Fri Apr 26 09:23:44 2013 +0200 +++ b/ChangeLog Mon Apr 29 10:25:19 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-29 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Updated four tests in AbstractScriptEngineClassTest for (Open)JDK8 API: + getField, getDeclaredField, getFields and getDeclaredFields. + 2013-04-26 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r 4af92415b07c -r 1b9cfd28c6e2 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Apr 26 09:23:44 2013 +0200 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Apr 29 10:25:19 2013 +0200 @@ -495,9 +495,29 @@ "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE", "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE_VERSION", }; + final String[] fieldsThatShouldExist_jdk8 = { + "public static final java.lang.String javax.script.ScriptEngine.ARGV", + "public static final java.lang.String javax.script.ScriptEngine.FILENAME", + "public static final java.lang.String javax.script.ScriptEngine.ENGINE", + "public static final java.lang.String javax.script.ScriptEngine.ENGINE_VERSION", + "public static final java.lang.String javax.script.ScriptEngine.NAME", + "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE", + "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE_VERSION", + }; // get the right array of field signatures - final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + String[] fieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + fieldsThatShouldExist = fieldsThatShouldExist_jdk6; + break; + case 7: + fieldsThatShouldExist = fieldsThatShouldExist_jdk7; + break; + case 8: + fieldsThatShouldExist = fieldsThatShouldExist_jdk8; + break; + } // get all fields Field[] fields = this.abstractScriptEngineClass.getFields(); @@ -524,10 +544,24 @@ final String[] declaredFieldsThatShouldExist_jdk7 = { "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.context", }; + final String[] declaredFieldsThatShouldExist_jdk8 = { + "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.context", + }; // get the right array of field signatures // following fields should be declared - final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + String[] declaredFieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk6; + break; + case 7: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk7; + break; + case 8: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk8; + break; + } // get all declared fields Field[] declaredFields = this.abstractScriptEngineClass.getDeclaredFields(); @@ -566,8 +600,28 @@ "LANGUAGE", "LANGUAGE_VERSION", }; + final String[] fieldsThatShouldExist_jdk8 = { + "ARGV", + "FILENAME", + "ENGINE", + "ENGINE_VERSION", + "NAME", + "LANGUAGE", + "LANGUAGE_VERSION", + }; - final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + String[] fieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + fieldsThatShouldExist = fieldsThatShouldExist_jdk6; + break; + case 7: + fieldsThatShouldExist = fieldsThatShouldExist_jdk7; + break; + case 8: + fieldsThatShouldExist = fieldsThatShouldExist_jdk8; + break; + } // check if all required fields really exists for (String fieldThatShouldExists : fieldsThatShouldExist) { @@ -595,8 +649,24 @@ final String[] declaredFieldsThatShouldExist_jdk7 = { "context", }; + final String[] declaredFieldsThatShouldExist_jdk8 = { + "context", + }; - final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get the right array of field signatures + // following fields should be declared + String[] declaredFieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk6; + break; + case 7: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk7; + break; + case 8: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk8; + break; + } // check if all required declared fields really exists for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { From andrew at icedtea.classpath.org Mon Apr 29 02:24:13 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 09:24:13 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxp: 6657673: Issues with JAXP Message-ID: changeset 839055d03a54 in /hg/release/icedtea7-forest-2.2/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxp?cmd=changeset;node=839055d03a54 author: joehw date: Sat Feb 16 18:03:23 2013 -0800 6657673: Issues with JAXP Reviewed-by: alanb, lancea, ahgross, mullan diffstat: src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java | 6 +- src/com/sun/org/apache/bcel/internal/util/Class2HTML.java | 3 +- src/com/sun/org/apache/bcel/internal/util/ClassPath.java | 20 +- src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java | 3 +- src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java | 223 ++++++++++ src/com/sun/org/apache/xalan/internal/res/XSLMessages.java | 106 ++-- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java | 63 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java | 64 -- src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java | 64 -- src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java | 11 +- src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java | 98 +++- src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java | 11 +- src/com/sun/org/apache/xalan/internal/xslt/Process.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java | 10 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java | 14 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java | 7 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java | 16 +- src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java | 3 +- src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java | 12 + src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java | 14 +- src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java | 15 +- src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java | 63 +-- src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java | 4 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java | 11 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java | 7 +- src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java | 5 +- src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java | 9 +- src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java | 7 +- src/com/sun/org/apache/xerces/internal/util/SecurityManager.java | 70 +- src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java | 13 +- src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java | 36 + src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java | 9 +- src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java | 8 +- src/com/sun/org/apache/xml/internal/dtm/DTMManager.java | 3 +- src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java | 67 --- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java | 66 -- src/com/sun/org/apache/xml/internal/res/XMLMessages.java | 65 +-- src/com/sun/org/apache/xml/internal/resolver/Catalog.java | 5 +- src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java | 17 +- src/com/sun/org/apache/xml/internal/resolver/Resolver.java | 5 +- src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java | 3 +- src/com/sun/org/apache/xml/internal/serializer/Encodings.java | 4 +- src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java | 5 +- src/com/sun/org/apache/xml/internal/serializer/ToStream.java | 3 +- src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java | 5 +- src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java | 100 +---- src/com/sun/org/apache/xml/internal/utils/TreeWalker.java | 7 +- src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java | 141 +---- src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java | 7 +- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java | 67 --- src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java | 216 ++++---- src/com/sun/xml/internal/stream/XMLEntityStorage.java | 3 +- src/com/sun/xml/internal/stream/writers/WriterUtility.java | 3 +- src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java | 3 +- src/javax/xml/datatype/FactoryFinder.java | 62 ++- src/javax/xml/parsers/FactoryFinder.java | 10 +- src/javax/xml/stream/FactoryFinder.java | 77 ++- src/javax/xml/transform/FactoryFinder.java | 11 +- src/javax/xml/validation/SchemaFactoryFinder.java | 43 +- src/javax/xml/xpath/XPathFactoryFinder.java | 30 +- src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java | 13 +- src/org/xml/sax/helpers/NewInstance.java | 38 +- src/org/xml/sax/helpers/ParserAdapter.java | 5 +- src/org/xml/sax/helpers/ParserFactory.java | 13 +- src/org/xml/sax/helpers/SecuritySupport.java | 108 ++++ src/org/xml/sax/helpers/XMLReaderFactory.java | 62 +- 111 files changed, 1139 insertions(+), 3262 deletions(-) diffs (truncated from 6942 to 500 lines): diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java --- a/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java Mon Mar 04 21:29:13 2013 -0500 +++ b/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java Sat Feb 16 18:03:23 2013 -0800 @@ -63,6 +63,7 @@ import com.sun.org.apache.bcel.internal.util.ClassVector; import com.sun.org.apache.bcel.internal.util.ClassQueue; import com.sun.org.apache.bcel.internal.generic.Type; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; import java.io.*; import java.util.StringTokenizer; @@ -77,6 +78,7 @@ * class file. Those interested in programatically generating classes * should see the ClassGen class. + * @version $Id: JavaClass.java,v 1.4 2007-07-19 04:34:42 ofung Exp $ * @see com.sun.org.apache.bcel.internal.generic.ClassGen * @author M. Dahm */ @@ -451,9 +453,9 @@ String debug = null, sep = null; try { - debug = System.getProperty("JavaClass.debug"); + debug = SecuritySupport.getSystemProperty("JavaClass.debug"); // Get path separator either / or \ usually - sep = System.getProperty("file.separator"); + sep = SecuritySupport.getSystemProperty("file.separator"); } catch (SecurityException e) { // falls through diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/bcel/internal/util/Class2HTML.java --- a/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java Mon Mar 04 21:29:13 2013 -0500 +++ b/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java Sat Feb 16 18:03:23 2013 -0800 @@ -82,6 +82,7 @@ * method in the Method's frame will jump to the appropiate method in * the Code frame. * + * @version $Id: Class2HTML.java,v 1.3 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm */ public class Class2HTML implements Constants @@ -137,7 +138,7 @@ ClassParser parser=null; JavaClass java_class=null; String zip_file = null; - char sep = System.getProperty("file.separator").toCharArray()[0]; + char sep = SecuritySupport.getSystemProperty("file.separator").toCharArray()[0]; String dir = "." + sep; // Where to store HTML files try { diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/bcel/internal/util/ClassPath.java --- a/src/com/sun/org/apache/bcel/internal/util/ClassPath.java Mon Mar 04 21:29:13 2013 -0500 +++ b/src/com/sun/org/apache/bcel/internal/util/ClassPath.java Sat Feb 16 18:03:23 2013 -0800 @@ -66,6 +66,7 @@ * Responsible for loading (class) files from the CLASSPATH. Inspired by * sun.tools.ClassPath. * + * @version $Id: ClassPath.java,v 1.4 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm */ public class ClassPath implements Serializable { @@ -83,7 +84,7 @@ ArrayList vec = new ArrayList(); for(StringTokenizer tok=new StringTokenizer(class_path, - System.getProperty("path.separator")); + SecuritySupport.getSystemProperty("path.separator")); tok.hasMoreTokens();) { String path = tok.nextToken(); @@ -92,7 +93,7 @@ File file = new File(path); try { - if(file.exists()) { + if(SecuritySupport.getFileExists(file)) { if(file.isDirectory()) vec.add(new Dir(path)); else @@ -143,8 +144,9 @@ String name = tok.nextToken(); File file = new File(name); - if(file.exists()) + if(SecuritySupport.getFileExists(file)) { list.add(name); + } } } } @@ -159,9 +161,9 @@ String class_path, boot_path, ext_path; try { - class_path = System.getProperty("java.class.path"); - boot_path = System.getProperty("sun.boot.class.path"); - ext_path = System.getProperty("java.ext.dirs"); + class_path = SecuritySupport.getSystemProperty("java.class.path"); + boot_path = SecuritySupport.getSystemProperty("sun.boot.class.path"); + ext_path = SecuritySupport.getSystemProperty("java.ext.dirs"); } catch (SecurityException e) { return ""; @@ -176,8 +178,8 @@ getPathComponents(ext_path, dirs); for(Iterator e = dirs.iterator(); e.hasNext(); ) { - File ext_dir = new File((String)e.next()); - String[] extensions = ext_dir.list(new FilenameFilter() { + File ext_dir = new File((String)e.next()); + String[] extensions = SecuritySupport.getFileList(ext_dir, new FilenameFilter() { public boolean accept(File dir, String name) { name = name.toLowerCase(); return name.endsWith(".zip") || name.endsWith(".jar"); @@ -342,7 +344,7 @@ final File file = new File(dir + File.separatorChar + name.replace('.', File.separatorChar) + suffix); - return file.exists()? new ClassFile() { + return SecuritySupport.getFileExists(file)? new ClassFile() { public InputStream getInputStream() throws IOException { return new FileInputStream(file); } public String getPath() { try { diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java --- a/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java Mon Mar 04 21:29:13 2013 -0500 +++ b/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java Sat Feb 16 18:03:23 2013 -0800 @@ -72,6 +72,7 @@ *
    java com.sun.org.apache.bcel.internal.util.JavaWrapper -Dbcel.classloader=foo.MyLoader <real.class.name> [arguments]
    *

    * + * @version $Id: JavaWrapper.java,v 1.3 2007-07-19 04:34:52 ofung Exp $ * @author M. Dahm * @see ClassLoader */ @@ -79,7 +80,7 @@ private java.lang.ClassLoader loader; private static java.lang.ClassLoader getClassLoader() { - String s = System.getProperty("bcel.classloader"); + String s = SecuritySupport.getSystemProperty("bcel.classloader"); if((s == null) || "".equals(s)) s = "com.sun.org.apache.bcel.internal.util.ClassLoader"; diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java Sat Feb 16 18:03:23 2013 -0800 @@ -0,0 +1,223 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +/* + * Copyright 2002-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.sun.org.apache.bcel.internal.util; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FilenameFilter; +import java.io.InputStream; +import java.lang.ClassLoader; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.ListResourceBundle; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * This class is duplicated for each subpackage so keep it in sync. It is + * package private and therefore is not exposed as part of any API. + * + * @xerces.internal + */ +public final class SecuritySupport { + + private static final SecuritySupport securitySupport = new SecuritySupport(); + + /** + * Return an instance of this class. + */ + public static SecuritySupport getInstance() { + return securitySupport; + } + + static ClassLoader getContextClassLoader() { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader cl = null; + try { + cl = Thread.currentThread().getContextClassLoader(); + } catch (SecurityException ex) { + } + return cl; + } + }); + } + + static ClassLoader getSystemClassLoader() { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader cl = null; + try { + cl = ClassLoader.getSystemClassLoader(); + } catch (SecurityException ex) { + } + return cl; + } + }); + } + + static ClassLoader getParentClassLoader(final ClassLoader cl) { + return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader parent = null; + try { + parent = cl.getParent(); + } catch (SecurityException ex) { + } + + // eliminate loops in case of the boot + // ClassLoader returning itself as a parent + return (parent == cl) ? null : parent; + } + }); + } + + public static String getSystemProperty(final String propName) { + return (String) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return System.getProperty(propName); + } + }); + } + + static FileInputStream getFileInputStream(final File file) + throws FileNotFoundException { + try { + return (FileInputStream) AccessController.doPrivileged(new PrivilegedExceptionAction() { + public Object run() throws FileNotFoundException { + return new FileInputStream(file); + } + }); + } catch (PrivilegedActionException e) { + throw (FileNotFoundException) e.getException(); + } + } + + /** + * Return resource using the same classloader for the ObjectFactory by + * default or bootclassloader when Security Manager is in place + */ + public static InputStream getResourceAsStream(final String name) { + if (System.getSecurityManager() != null) { + return getResourceAsStream(null, name); + } else { + return getResourceAsStream(findClassLoader(), name); + } + } + + public static InputStream getResourceAsStream(final ClassLoader cl, + final String name) { + return (InputStream) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + InputStream ris; + if (cl == null) { + ris = Object.class.getResourceAsStream("/" + name); + } else { + ris = cl.getResourceAsStream(name); + } + return ris; + } + }); + } + + /** + * Gets a resource bundle using the specified base name, the default locale, + * and the caller's class loader. + * + * @param bundle the base name of the resource bundle, a fully qualified + * class name + * @return a resource bundle for the given base name and the default locale + */ + public static ListResourceBundle getResourceBundle(String bundle) { + return getResourceBundle(bundle, Locale.getDefault()); + } + + /** + * Gets a resource bundle using the specified base name and locale, and the + * caller's class loader. + * + * @param bundle the base name of the resource bundle, a fully qualified + * class name + * @param locale the locale for which a resource bundle is desired + * @return a resource bundle for the given base name and locale + */ + public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) { + return AccessController.doPrivileged(new PrivilegedAction() { + public ListResourceBundle run() { + try { + return (ListResourceBundle) ResourceBundle.getBundle(bundle, locale); + } catch (MissingResourceException e) { + try { + return (ListResourceBundle) ResourceBundle.getBundle(bundle, new Locale("en", "US")); + } catch (MissingResourceException e2) { + throw new MissingResourceException( + "Could not load any resource bundle by " + bundle, bundle, ""); + } + } + } + }); + } + + public static String[] getFileList(final File f, final FilenameFilter filter) { + return ((String[]) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return f.list(filter); + } + })); + } + + public static boolean getFileExists(final File f) { + return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return f.exists() ? Boolean.TRUE : Boolean.FALSE; + } + })).booleanValue(); + } + + static long getLastModified(final File f) { + return ((Long) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return new Long(f.lastModified()); + } + })).longValue(); + } + + + /** + * Figure out which ClassLoader to use. + */ + public static ClassLoader findClassLoader() + { + if (System.getSecurityManager()!=null) { + //this will ensure bootclassloader is used + return null; + } else { + return SecuritySupport.class.getClassLoader(); + } + } // findClassLoader():ClassLoader + + private SecuritySupport() { + } +} diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/xalan/internal/res/XSLMessages.java --- a/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java Mon Mar 04 21:29:13 2013 -0500 +++ b/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java Sat Feb 16 18:03:23 2013 -0800 @@ -22,68 +22,72 @@ */ package com.sun.org.apache.xalan.internal.res; +import com.sun.org.apache.xalan.internal.utils.SecuritySupport; import java.util.ListResourceBundle; import com.sun.org.apache.xpath.internal.res.XPATHMessages; /** - * Sets things up for issuing error messages. This class is misnamed, and - * should be called XalanMessages, or some such. + * Sets things up for issuing error messages. This class is misnamed, and should + * be called XalanMessages, or some such. + * * @xsl.usage internal */ -public class XSLMessages extends XPATHMessages -{ +public class XSLMessages extends XPATHMessages { - /** The language specific resource object for Xalan messages. */ - private static ListResourceBundle XSLTBundle = null; + /** + * The language specific resource object for Xalan messages. + */ + private static ListResourceBundle XSLTBundle = null; + /** + * The class name of the Xalan error message string table. + */ + private static final String XSLT_ERROR_RESOURCES = + "com.sun.org.apache.xalan.internal.res.XSLTErrorResources"; - /** The class name of the Xalan error message string table. */ - private static final String XSLT_ERROR_RESOURCES = - "com.sun.org.apache.xalan.internal.res.XSLTErrorResources"; + /** + * Creates a message from the specified key and replacement arguments, + * localized to the given locale. + * + * @param msgKey The key for the message text. + * @param args The arguments to be used as replacement text in the message + * created. + * + * @return The formatted message string. + */ + public static String createMessage(String msgKey, Object args[]) //throws Exception + { + if (XSLTBundle == null) { + XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES); + } - /** - * Creates a message from the specified key and replacement - * arguments, localized to the given locale. - * - * @param msgKey The key for the message text. - * @param args The arguments to be used as replacement text - * in the message created. - * - * @return The formatted message string. - */ - public static final String createMessage(String msgKey, Object args[]) //throws Exception - { - if (XSLTBundle == null) - XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES); + if (XSLTBundle != null) { + return createMsg(XSLTBundle, msgKey, args); + } else { + return "Could not load any resource bundles."; + } + } - if (XSLTBundle != null) + /** + * Creates a message from the specified key and replacement arguments, + * localized to the given locale. + * + * @param msgKey The key for the message text. + * @param args The arguments to be used as replacement text in the message + * created. + * + * @return The formatted warning string. + */ + public static String createWarning(String msgKey, Object args[]) //throws Exception { - return createMsg(XSLTBundle, msgKey, args); + if (XSLTBundle == null) { + XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES); + } + + if (XSLTBundle != null) { + return createMsg(XSLTBundle, msgKey, args); + } else { + return "Could not load any resource bundles."; + } } - else - return "Could not load any resource bundles."; - } - - /** - * Creates a message from the specified key and replacement - * arguments, localized to the given locale. - * - * @param msgKey The key for the message text. - * @param args The arguments to be used as replacement text - * in the message created. - * - * @return The formatted warning string. - */ - public static final String createWarning(String msgKey, Object args[]) //throws Exception - { - if (XSLTBundle == null) - XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES); - - if (XSLTBundle != null) - { - return createMsg(XSLTBundle, msgKey, args); - } - else - return "Could not load any resource bundles."; - } } diff -r c8a89a3af782 -r 839055d03a54 src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java --- a/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java Mon Mar 04 21:29:13 2013 -0500 From andrew at icedtea.classpath.org Mon Apr 29 02:24:20 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 09:24:20 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxws: 2 new changesets Message-ID: changeset c5f04eec7e52 in /hg/release/icedtea7-forest-2.2/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxws?cmd=changeset;node=c5f04eec7e52 author: mkos date: Fri Feb 01 15:56:12 2013 +0100 8003543: Improve processing of MTOM attachments Summary: old File API replaced by NIO API; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu changeset c7ac0744f92f in /hg/release/icedtea7-forest-2.2/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxws?cmd=changeset;node=c7ac0744f92f author: mkos date: Wed Feb 20 22:42:04 2013 +0100 8005432: Update access to JAX-WS Summary: newly restricted the whole package com.sun.xml.internal; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu diffstat: sources/jaxws_src/src/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java | 13 +- sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java | 24 +- sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java | 144 +++++++++ sources/jaxws_src/src/com/sun/xml/internal/ws/client/WSServiceDelegate.java | 46 ++- sources/jaxws_src/src/javax/xml/soap/FactoryFinder.java | 157 ++++++--- sources/jaxws_src/src/javax/xml/soap/MessageFactory.java | 13 +- sources/jaxws_src/src/javax/xml/soap/SAAJMetaFactory.java | 4 +- sources/jaxws_src/src/javax/xml/soap/SOAPConnectionFactory.java | 4 +- sources/jaxws_src/src/javax/xml/soap/SOAPFactory.java | 10 +- 9 files changed, 328 insertions(+), 87 deletions(-) diffs (truncated from 694 to 500 lines): diff -r a68ab44db7ee -r c7ac0744f92f sources/jaxws_src/src/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java --- a/sources/jaxws_src/src/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Mon Mar 04 21:29:14 2013 -0500 +++ b/sources/jaxws_src/src/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -235,7 +235,7 @@ String pkg = nav.getPackageName(ci.getClazz()); if(!registries.containsKey(pkg)) { // insert the package's object factory - C c = nav.findClass(pkg + ".ObjectFactory",ci.getClazz()); + C c = loadObjectFactory(ci, pkg); if(c!=null) addRegistry(c,(Locatable)p); } @@ -264,6 +264,15 @@ return r; } + private C loadObjectFactory(ClassInfoImpl ci, String pkg) { + try { + return nav.findClass(pkg + ".ObjectFactory", ci.getClazz()); + } catch (SecurityException ignored) { + // treat SecurityException in same way as ClassNotFoundException in this case + return null; + } + } + /** * Checks the uniqueness of the type name. */ diff -r a68ab44db7ee -r c7ac0744f92f sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java --- a/sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Mon Mar 04 21:29:14 2013 -0500 +++ b/sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,7 @@ import java.nio.ByteBuffer; import java.io.File; import java.io.IOException; +import java.util.logging.Level; import java.util.logging.Logger; /** @@ -50,41 +51,45 @@ } // size of the chunk given by the parser + @Override public int size() { return len; } + @Override public byte[] read() { return data; } + @Override public long writeTo(DataFile file) { return file.writeTo(data, 0, len); } /** - * * @param dataHead * @param buf * @return */ + @Override public Data createNext(DataHead dataHead, ByteBuffer buf) { if (!config.isOnlyMemory() && dataHead.inMemory >= config.memoryThreshold) { try { String prefix = config.getTempFilePrefix(); String suffix = config.getTempFileSuffix(); - File dir = config.getTempDir(); - File tempFile = (dir == null) - ? File.createTempFile(prefix, suffix) - : File.createTempFile(prefix, suffix, dir); - LOGGER.fine("Created temp file = "+tempFile); + File tempFile = TempFiles.createTempFile(prefix, suffix, config.getTempDir()); + // delete the temp file when VM exits as a last resort for file clean up + tempFile.deleteOnExit(); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile); + } dataHead.dataFile = new DataFile(tempFile); - } catch(IOException ioe) { + } catch (IOException ioe) { throw new MIMEParsingException(ioe); } if (dataHead.head != null) { - for(Chunk c=dataHead.head; c != null; c=c.next) { + for (Chunk c = dataHead.head; c != null; c = c.next) { long pointer = c.data.writeTo(dataHead.dataFile); c.data = new FileData(dataHead.dataFile, pointer, len); } @@ -94,4 +99,5 @@ return new MemoryData(buf, config); } } + } diff -r a68ab44db7ee -r c7ac0744f92f sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java Wed Feb 20 22:42:04 2013 +0100 @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package com.sun.xml.internal.org.jvnet.mimepull; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Array; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Helper utility to support jdk <= jdk1.6. After jdk1.6 EOL reflection can be removed and API can be used directly. + */ +class TempFiles { + + private static final Logger LOGGER = Logger.getLogger(TempFiles.class.getName()); + + private static final Class CLASS_FILES; + private static final Class CLASS_PATH; + private static final Class CLASS_FILE_ATTRIBUTE; + private static final Class CLASS_FILE_ATTRIBUTES; + private static final Method METHOD_FILE_TO_PATH; + private static final Method METHOD_FILES_CREATE_TEMP_FILE; + private static final Method METHOD_FILES_CREATE_TEMP_FILE_WITHPATH; + + private static final Method METHOD_PATH_TO_FILE; + + private static boolean useJdk6API; + + static { + useJdk6API = isJdk6(); + + CLASS_FILES = safeGetClass("java.nio.file.Files"); + CLASS_PATH = safeGetClass("java.nio.file.Path"); + CLASS_FILE_ATTRIBUTE = safeGetClass("java.nio.file.attribute.FileAttribute"); + CLASS_FILE_ATTRIBUTES = safeGetClass("[Ljava.nio.file.attribute.FileAttribute;"); + METHOD_FILE_TO_PATH = safeGetMethod(File.class, "toPath"); + METHOD_FILES_CREATE_TEMP_FILE = safeGetMethod(CLASS_FILES, "createTempFile", String.class, String.class, CLASS_FILE_ATTRIBUTES); + METHOD_FILES_CREATE_TEMP_FILE_WITHPATH = safeGetMethod(CLASS_FILES, "createTempFile", CLASS_PATH, String.class, String.class, CLASS_FILE_ATTRIBUTES); + METHOD_PATH_TO_FILE = safeGetMethod(CLASS_PATH, "toFile"); + } + + private static boolean isJdk6() { + String javaVersion = System.getProperty("java.version"); + LOGGER.log(Level.FINEST, "Detected java version = {0}", javaVersion); + return javaVersion.startsWith("1.6."); + } + + private static Class safeGetClass(String className) { + // it is jdk 6 or something failed already before + if (useJdk6API) return null; + try { + return Class.forName(className); + } catch (ClassNotFoundException e) { + LOGGER.log(Level.SEVERE, "Exception cought", e); + LOGGER.log(Level.WARNING, "Class {0} not found. Temp files will be created using old java.io API.", className); + useJdk6API = true; + return null; + } + } + + private static Method safeGetMethod(Class clazz, String methodName, Class... parameterTypes) { + // it is jdk 6 or something failed already before + if (useJdk6API) return null; + try { + return clazz.getMethod(methodName, parameterTypes); + } catch (NoSuchMethodException e) { + LOGGER.log(Level.SEVERE, "Exception cought", e); + LOGGER.log(Level.WARNING, "Method {0} not found. Temp files will be created using old java.io API.", methodName); + useJdk6API = true; + return null; + } + } + + + static Object toPath(File f) throws InvocationTargetException, IllegalAccessException { + return METHOD_FILE_TO_PATH.invoke(f); + } + + static File toFile(Object path) throws InvocationTargetException, IllegalAccessException { + return (File) METHOD_PATH_TO_FILE.invoke(path); + } + + static File createTempFile(String prefix, String suffix, File dir) throws IOException { + + if (useJdk6API) { + LOGGER.log(Level.FINEST, "Jdk6 detected, temp file (prefix:{0}, suffix:{1}) being created using old java.io API.", new Object[]{prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + + } else { + + try { + if (dir != null) { + Object path = toPath(dir); + LOGGER.log(Level.FINEST, "Temp file (path: {0}, prefix:{1}, suffix:{2}) being created using NIO API.", new Object[]{dir.getAbsolutePath(), prefix, suffix}); + return toFile(METHOD_FILES_CREATE_TEMP_FILE_WITHPATH.invoke(null, path, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); + } else { + LOGGER.log(Level.FINEST, "Temp file (prefix:{0}, suffix:{1}) being created using NIO API.", new Object[]{prefix, suffix}); + return toFile(METHOD_FILES_CREATE_TEMP_FILE.invoke(null, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); + } + + } catch (IllegalAccessException e) { + LOGGER.log(Level.SEVERE, "Exception caught", e); + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + + } catch (InvocationTargetException e) { + LOGGER.log(Level.SEVERE, "Exception caught", e); + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); + return File.createTempFile(prefix, suffix, dir); + } + } + + } + + +} diff -r a68ab44db7ee -r c7ac0744f92f sources/jaxws_src/src/com/sun/xml/internal/ws/client/WSServiceDelegate.java --- a/sources/jaxws_src/src/com/sun/xml/internal/ws/client/WSServiceDelegate.java Mon Mar 04 21:29:14 2013 -0500 +++ b/sources/jaxws_src/src/com/sun/xml/internal/ws/client/WSServiceDelegate.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,6 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ - package com.sun.xml.internal.ws.client; import com.sun.istack.internal.NotNull; @@ -30,13 +29,11 @@ import com.sun.xml.internal.ws.Closeable; import com.sun.xml.internal.ws.api.BindingID; import com.sun.xml.internal.ws.api.EndpointAddress; -import com.sun.xml.internal.ws.api.WSBinding; import com.sun.xml.internal.ws.api.WSService; import com.sun.xml.internal.ws.api.addressing.WSEndpointReference; import com.sun.xml.internal.ws.api.client.ServiceInterceptor; import com.sun.xml.internal.ws.api.client.ServiceInterceptorFactory; -import com.sun.xml.internal.ws.api.model.SEIModel; -import com.sun.xml.internal.ws.api.pipe.*; +import com.sun.xml.internal.ws.api.pipe.Stubs; import com.sun.xml.internal.ws.api.server.Container; import com.sun.xml.internal.ws.api.server.ContainerResolver; import com.sun.xml.internal.ws.api.wsdl.parser.WSDLParserExtension; @@ -45,8 +42,8 @@ import com.sun.xml.internal.ws.client.HandlerConfigurator.AnnotationConfigurator; import com.sun.xml.internal.ws.client.HandlerConfigurator.HandlerResolverImpl; import com.sun.xml.internal.ws.client.sei.SEIStub; +import com.sun.xml.internal.ws.developer.UsesJAXBContextFeature; import com.sun.xml.internal.ws.developer.WSBindingProvider; -import com.sun.xml.internal.ws.developer.UsesJAXBContextFeature; import com.sun.xml.internal.ws.model.AbstractSEIModelImpl; import com.sun.xml.internal.ws.model.RuntimeModeler; import com.sun.xml.internal.ws.model.SOAPSEIModel; @@ -59,7 +56,6 @@ import com.sun.xml.internal.ws.util.JAXWSUtils; import com.sun.xml.internal.ws.util.ServiceConfigurationError; import com.sun.xml.internal.ws.util.ServiceFinder; -import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver; import com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser; import org.xml.sax.SAXException; @@ -74,16 +70,17 @@ import javax.xml.ws.handler.HandlerResolver; import javax.xml.ws.soap.AddressingFeature; import java.io.IOException; +import java.lang.RuntimePermission; import java.lang.reflect.Proxy; import java.net.MalformedURLException; import java.net.URL; -import java.security.AccessController; -import java.security.PrivilegedAction; +import java.security.*; import java.util.*; import java.util.concurrent.Executor; -import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; +import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver; + /** * Service objects provide the client view of a Web service. * @@ -578,7 +575,7 @@ } } - private T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, Class portInterface, + private T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, final Class portInterface, WebServiceFeature[] webServiceFeatures, SEIPortInfo eif) { //fail if service doesnt have WSDL if (wsdlService == null) @@ -592,14 +589,37 @@ BindingImpl binding = eif.createBinding(webServiceFeatures,portInterface); SEIStub pis = new SEIStub(eif, binding, eif.model, epr); - T proxy = portInterface.cast(Proxy.newProxyInstance(portInterface.getClassLoader(), - new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis)); + T proxy = createProxy(portInterface, pis); + if (serviceInterceptor != null) { serviceInterceptor.postCreateProxy((WSBindingProvider)proxy, portInterface); } return proxy; } + private T createProxy(final Class portInterface, final SEIStub pis) { + + // accessClassInPackage privilege needs to be granted ... + RuntimePermission perm = new RuntimePermission("accessClassInPackage.com.sun." + "xml.internal.*"); + PermissionCollection perms = perm.newPermissionCollection(); + perms.add(perm); + + return AccessController.doPrivileged( + new PrivilegedAction() { + @Override + public T run() { + Object proxy = Proxy.newProxyInstance(portInterface.getClassLoader(), + new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis); + return portInterface.cast(proxy); + } + }, + new AccessControlContext( + new ProtectionDomain[]{ + new ProtectionDomain(null, perms) + }) + ); + } + /** * Lists up the port names in WSDL. For error diagnostics. */ diff -r a68ab44db7ee -r c7ac0744f92f sources/jaxws_src/src/javax/xml/soap/FactoryFinder.java --- a/sources/jaxws_src/src/javax/xml/soap/FactoryFinder.java Mon Mar 04 21:29:14 2013 -0500 +++ b/sources/jaxws_src/src/javax/xml/soap/FactoryFinder.java Wed Feb 20 22:42:04 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,20 +43,12 @@ throws SOAPException { try { - Class spiClass; - if (classLoader == null) { - spiClass = Class.forName(className); - } else { - spiClass = classLoader.loadClass(className); - } + Class spiClass = safeLoadClass(className, classLoader); return spiClass.newInstance(); } catch (ClassNotFoundException x) { - throw new SOAPException( - "Provider " + className + " not found", x); + throw new SOAPException("Provider " + className + " not found", x); } catch (Exception x) { - throw new SOAPException( - "Provider " + className + " could not be instantiated: " + x, - x); + throw new SOAPException("Provider " + className + " could not be instantiated: " + x, x); } } @@ -73,11 +65,65 @@ * a system property * @exception SOAPException if there is a SOAP error */ - static Object find(String factId) + static Object find(String factoryId) throws SOAPException { - final ClassLoader classLoader; - final String factoryId = factId; + return find(factoryId, null, false); + } + + /** + * Finds the implementation Class object for the given + * factory name, or if that fails, finds the Class object + * for the given fallback class name. The arguments supplied must be + * used in order. If using the first argument is successful, the second + * one will not be used. + *

    + * This method is package private so that this code can be shared. + * + * @return the Class object of the specified message factory; + * may be null + * + * @param factoryId the name of the factory to find, which is + * a system property + * @param fallbackClassName the implementation class name, which is + * to be used only if nothing else + * is found; null to indicate that + * there is no fallback class name + * @exception SOAPException if there is a SOAP error + */ + static Object find(String factoryId, String fallbackClassName) + throws SOAPException + { + return find(factoryId, fallbackClassName, true); + } + + /** + * Finds the implementation Class object for the given + * factory name, or if that fails, finds the Class object + * for the given default class name, but only if tryFallback + * is true. The arguments supplied must be used in order + * If using the first argument is successful, the second one will not + * be used. Note the default class name may be needed even if fallback + * is not to be attempted, so certain error conditions can be handled. + *

    + * This method is package private so that this code can be shared. + * + * @return the Class object of the specified message factory; + * may not be null + * + * @param factoryId the name of the factory to find, which is + * a system property + * @param defaultClassName the implementation class name, which is + * to be used only if nothing else + * is found; null to indicate + * that there is no default class name + * @param tryFallback whether to try the default class as a + * fallback + * @exception SOAPException if there is a SOAP error + */ + static Object find(String factoryId, String defaultClassName, + boolean tryFallback) throws SOAPException { + ClassLoader classLoader; try { classLoader = Thread.currentThread().getContextClassLoader(); } catch (Exception x) { @@ -99,7 +145,7 @@ String javah=System.getProperty( "java.home" ); String configFile = javah + File.separator + "lib" + File.separator + "jaxm.properties"; - final File f=new File( configFile ); + File f=new File( configFile ); if( f.exists()) { Properties props=new Properties(); props.load( new FileInputStream(f)); @@ -134,49 +180,56 @@ } catch( Exception ex ) { } - return null; + // If not found and fallback should not be tried, return a null result. From andrew at icedtea.classpath.org Mon Apr 29 02:24:31 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 09:24:31 +0000 Subject: /hg/release/icedtea7-forest-2.2/hotspot: 3 new changesets Message-ID: changeset e6eb191f82de in /hg/release/icedtea7-forest-2.2/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=e6eb191f82de author: twisti date: Mon Feb 25 11:54:35 2013 -0800 8004336: Better handling of method handle intrinsic frames Reviewed-by: kvn, jrose, ahgross changeset d6513b47584a in /hg/release/icedtea7-forest-2.2/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=d6513b47584a author: poonam date: Wed Mar 06 16:30:38 2013 -0800 8006309: More reliable control panel operation Summary: Added a comment in the dead Kernel code Reviewed-by: ahgross, sla, coleenp changeset 168d05b42b89 in /hg/release/icedtea7-forest-2.2/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=168d05b42b89 author: kvn date: Fri Mar 15 09:33:37 2013 -0700 8009699: Methodhandle lookup Reviewed-by: ahgross, jrose, jdn diffstat: src/share/vm/opto/library_call.cpp | 4 ++-- src/share/vm/prims/methodHandles.cpp | 8 ++++++++ src/share/vm/runtime/thread.cpp | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diffs (56 lines): diff -r c312054a7ae6 -r 168d05b42b89 src/share/vm/opto/library_call.cpp --- a/src/share/vm/opto/library_call.cpp Mon Mar 04 21:29:12 2013 -0500 +++ b/src/share/vm/opto/library_call.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -3908,7 +3908,8 @@ } } } - else if (method->is_method_handle_adapter()) { + + if (method->is_method_handle_adapter()) { // This is an internal adapter frame from the MethodHandleCompiler -- skip it return true; } @@ -5453,4 +5454,3 @@ push(result); return true; } - diff -r c312054a7ae6 -r 168d05b42b89 src/share/vm/prims/methodHandles.cpp --- a/src/share/vm/prims/methodHandles.cpp Mon Mar 04 21:29:12 2013 -0500 +++ b/src/share/vm/prims/methodHandles.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -645,6 +645,13 @@ } } methodHandle m = result.resolved_method(); + KlassHandle mklass = m->method_holder(); + KlassHandle receiver_limit = result.resolved_klass(); + if (receiver_limit.is_null() || + // ignore passed-in limit; interfaces are interconvertible + receiver_limit->is_interface() && mklass->is_interface()) { + receiver_limit = mklass; + } oop vmtarget = NULL; int vmindex = methodOopDesc::nonvirtual_vtable_index; if (defc->is_interface()) { @@ -665,6 +672,7 @@ java_lang_invoke_MemberName::set_vmtarget(mname(), vmtarget); java_lang_invoke_MemberName::set_vmindex(mname(), vmindex); java_lang_invoke_MemberName::set_modifiers(mname(), mods); + java_lang_invoke_MemberName::set_clazz(mname(), receiver_limit->java_mirror()); DEBUG_ONLY(KlassHandle junk1; int junk2); assert(decode_MemberName(mname(), junk1, junk2) == result.resolved_method(), "properly stored for later decoding"); diff -r c312054a7ae6 -r 168d05b42b89 src/share/vm/runtime/thread.cpp --- a/src/share/vm/runtime/thread.cpp Mon Mar 04 21:29:12 2013 -0500 +++ b/src/share/vm/runtime/thread.cpp Fri Mar 15 09:33:37 2013 -0700 @@ -3555,6 +3555,9 @@ os::dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), name); library = os::dll_load(buffer, ebuf, sizeof ebuf); #ifdef KERNEL + + // Dead code, KERNEL is never built in JDK7 or later. This code will be removed in a future update release. + // Download instrument dll if (library == NULL && strcmp(name, "instrument") == 0) { char *props = Arguments::get_kernel_properties(); From andrew at icedtea.classpath.org Mon Apr 29 02:24:43 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 09:24:43 +0000 Subject: /hg/release/icedtea7-forest-2.2/jdk: 29 new changesets Message-ID: changeset a487fa826258 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a487fa826258 author: anthony date: Wed Jan 18 19:09:26 2012 +0400 7130662: GTK file dialog crashes with a NPE Summary: Guard adding a back slash to the directory name with an if (!= null) check Reviewed-by: anthony, art Contributed-by: Matt changeset a981b386d095 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a981b386d095 author: andrew date: Wed Apr 17 23:07:34 2013 +0100 6657673: Issues with JAXP Reviewed-by: alanb, lancea, ahgross, mullan changeset efc1c5116059 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=efc1c5116059 author: malenkov date: Fri Feb 08 18:06:56 2013 +0400 7200507: Refactor Introspector internals Reviewed-by: ahgross, art changeset 8e2af6c43702 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=8e2af6c43702 author: michaelm date: Wed Feb 13 10:47:15 2013 +0000 8000724: Improve networking serialization Summary: delegate InetAddress fields to a holder object Reviewed-by: alanb, chegar changeset a180f7cf764f in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a180f7cf764f author: andrew date: Wed Apr 10 17:27:39 2013 +0100 8004986: Better handling of glyph table 8004987: Improve font layout 8004994: Improve checking of glyph table Reviewed-by: bae, mschoene, jgodinez Contributed-by: steven.loomis at oracle.com changeset 5f19d54801bf in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=5f19d54801bf author: andrew date: Wed Apr 10 22:07:37 2013 +0100 8001031: Better font processing. Reviewed-by: vadim, prr, mschoene changeset b3b230165c6e in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=b3b230165c6e author: andrew date: Wed Apr 10 23:02:46 2013 +0100 8001040: Rework RMI model Reviewed-by: alanb, ahgross, coffeys, dmocek changeset a1dbbee035d2 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a1dbbee035d2 author: dfuchs date: Mon Mar 11 15:07:19 2013 +0100 8001322: Refactor deserialization Reviewed-by: mchung, skoivu, smarks changeset cd2f703eddd3 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=cd2f703eddd3 author: dmocek date: Tue Feb 05 16:38:25 2013 -0800 8001329: Augment RMI logging Reviewed-by: smarks, hawtin, alanb changeset a65bf90ddf16 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=a65bf90ddf16 author: chegar date: Thu Dec 20 13:40:27 2012 +0000 8003335: Better handling of Finalizer thread Reviewed-by: alanb, ahgross changeset 6ec8ae49ffa2 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=6ec8ae49ffa2 author: andrew date: Wed Apr 10 23:17:54 2013 +0100 8003445: Adjust JAX-WS to focus on API Reviewed-by: vinnie, ahgross, mgrebac changeset f746da678903 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=f746da678903 author: serb date: Tue Feb 19 20:40:48 2013 +0400 8004261: Improve input validation Reviewed-by: art, mschoene, amenkov changeset 801c5555ce85 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=801c5555ce85 author: andrew date: Wed Apr 17 23:10:35 2013 +0100 8005432: Update access to JAX-WS Summary: newly restricted the whole package com.sun.xml.internal; fix reviewed also by Alexander Fomin Reviewed-by: mullan, skoivu changeset ded1108f80e4 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=ded1108f80e4 author: uta date: Tue Feb 26 15:58:40 2013 +0400 8005943: (process) Improved Runtime.exec Reviewed-by: alanb, ahgross changeset f4b399e11556 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=f4b399e11556 author: dsamersoff date: Mon Feb 25 20:06:22 2013 +0400 8006435: Improvements in JMX Summary: Improvements in JMX Reviewed-by: dfuchs, skoivu changeset c1f3485003c3 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=c1f3485003c3 author: malenkov date: Tue Feb 05 20:18:16 2013 +0400 8006790: Improve checking for windows Reviewed-by: art, mschoene changeset 9743d6154c15 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=9743d6154c15 author: prr date: Thu Feb 07 12:14:31 2013 -0800 8006795: Improve font warning messages Reviewed-by: bae, jgodinez, mschoene changeset 6259097c4563 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=6259097c4563 author: raginip date: Fri Mar 01 14:06:10 2013 +0000 8007406: Improve accessibility of AccessBridge Reviewed-by: skoivu, mullan, ptbrunet changeset 0f306c635ad6 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=0f306c635ad6 author: bae date: Fri Feb 22 15:14:25 2013 +0400 8007617: Better validation of images Reviewed-by: prr, jgodinez changeset 169233173146 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=169233173146 author: bae date: Tue Feb 26 00:15:17 2013 +0400 8007667: Better image reading Reviewed-by: prr, jgodinez changeset ff8674237901 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=ff8674237901 author: andrew date: Wed Apr 10 23:35:45 2013 +0100 8007918: Better image writing Reviewed-by: prr, jgodinez changeset 203f49ff7749 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=203f49ff7749 author: vlivanov date: Fri Mar 01 03:50:33 2013 +0400 8008140: Better method handle resolution Reviewed-by: jrose, twisti, jdn changeset 7aa8c0da022e in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=7aa8c0da022e author: vlivanov date: Fri Mar 01 03:50:17 2013 +0400 8009049: Better method handle binding Reviewed-by: jrose, twisti, jdn changeset 98d52c7c4ad3 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=98d52c7c4ad3 author: andrew date: Wed Apr 17 23:16:21 2013 +0100 8009063: Improve reliability of ConcurrentHashMap Reviewed-by: alanb, ahgross changeset 0f65e7b9b285 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=0f65e7b9b285 author: dfuchs date: Thu Mar 14 17:27:32 2013 +0100 8009305: Improve AWT data transfer Reviewed-by: art, skoivu, smarks, ant changeset f56d07347549 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=f56d07347549 author: kvn date: Thu Mar 14 08:55:04 2013 -0700 8009677: Better setting of setters Reviewed-by: ahgross, jrose, twisti changeset 50e9123bc958 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=50e9123bc958 author: lancea date: Sat Mar 16 10:08:14 2013 -0400 8009814: Better driver management Reviewed-by: alanb, skoivu changeset b98ebb94940c in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=b98ebb94940c author: smarks date: Mon Mar 18 18:05:31 2013 -0700 8009857: Problem with plugin Reviewed-by: jdn, mchung changeset 010dc791dc14 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=010dc791dc14 author: andrew date: Mon Apr 15 23:39:14 2013 +0100 Handle bad font in TCK diffstat: src/macosx/classes/sun/lwawt/LWWindowPeer.java | 8 +- src/macosx/classes/sun/lwawt/macosx/CFileDialog.java | 4 +- src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java | 4 +- src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java | 293 ++++- src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java | 147 ++- src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java | 6 +- src/share/classes/com/sun/media/sound/AbstractMidiDevice.java | 25 +- src/share/classes/com/sun/media/sound/FastShortMessage.java | 2 +- src/share/classes/com/sun/media/sound/FastSysexMessage.java | 2 +- src/share/classes/com/sun/media/sound/MidiOutDevice.java | 16 +- src/share/classes/com/sun/media/sound/RealTimeSequencer.java | 2 +- src/share/classes/java/awt/Window.java | 4 +- src/share/classes/java/awt/peer/WindowPeer.java | 13 +- src/share/classes/java/beans/ThreadGroupContext.java | 7 +- src/share/classes/java/beans/WeakIdentityMap.java | 181 +++ src/share/classes/java/io/ObjectInputStream.java | 19 + src/share/classes/java/lang/ProcessBuilder.java | 19 +- src/share/classes/java/lang/invoke/MethodHandles.java | 36 +- src/share/classes/java/lang/ref/Finalizer.java | 18 +- src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java | 2 +- src/share/classes/java/net/Inet4Address.java | 39 +- src/share/classes/java/net/Inet4AddressImpl.java | 2 +- src/share/classes/java/net/Inet6Address.java | 19 +- src/share/classes/java/net/Inet6AddressImpl.java | 2 +- src/share/classes/java/net/InetAddress.java | 120 +- src/share/classes/java/net/InetSocketAddress.java | 4 +- src/share/classes/java/rmi/server/LogStream.java | 9 +- src/share/classes/java/sql/DriverManager.java | 4 +- src/share/classes/java/util/concurrent/ConcurrentHashMap.java | 28 +- src/share/classes/sun/awt/EmbeddedFrame.java | 4 +- src/share/classes/sun/awt/datatransfer/TransferableProxy.java | 20 +- src/share/classes/sun/awt/image/ImageRepresentation.java | 19 +- src/share/classes/sun/font/CMap.java | 3 - src/share/classes/sun/invoke/util/Wrapper.java | 3 + src/share/classes/sun/reflect/misc/MethodUtil.java | 40 +- src/share/classes/sun/reflect/misc/ReflectUtil.java | 10 +- src/share/classes/sun/rmi/server/MarshalInputStream.java | 14 +- src/share/lib/security/java.security | 40 +- src/share/lib/security/java.security-macosx | 40 +- src/share/lib/security/java.security-solaris | 40 +- src/share/lib/security/java.security-windows | 42 +- src/share/native/java/net/InetAddress.c | 23 +- src/share/native/java/net/net_util.c | 70 +- src/share/native/java/net/net_util.h | 12 +- src/share/native/sun/awt/image/awt_ImageRep.c | 173 ++- src/share/native/sun/awt/image/jpeg/imageioJPEG.c | 45 +- src/share/native/sun/font/FontInstanceAdapter.cpp | 47 +- src/share/native/sun/font/FontInstanceAdapter.h | 1 + src/share/native/sun/font/fontscalerdefs.h | 21 +- src/share/native/sun/font/layout/AlternateSubstSubtables.cpp | 11 +- src/share/native/sun/font/layout/AlternateSubstSubtables.h | 6 +- src/share/native/sun/font/layout/ArabicLayoutEngine.cpp | 36 +- src/share/native/sun/font/layout/ArabicLayoutEngine.h | 2 +- src/share/native/sun/font/layout/ArabicShaping.cpp | 14 +- src/share/native/sun/font/layout/ArabicShaping.h | 2 + src/share/native/sun/font/layout/AttachmentPosnSubtables.h | 6 +- src/share/native/sun/font/layout/CanonData.cpp | 5 + src/share/native/sun/font/layout/CanonShaping.cpp | 10 +- src/share/native/sun/font/layout/CanonShaping.h | 2 + src/share/native/sun/font/layout/ClassDefinitionTables.cpp | 104 +- src/share/native/sun/font/layout/ClassDefinitionTables.h | 27 +- src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp | 48 +- src/share/native/sun/font/layout/ContextualGlyphSubstProc.h | 8 +- src/share/native/sun/font/layout/ContextualSubstSubtables.cpp | 8 +- src/share/native/sun/font/layout/ContextualSubstSubtables.h | 22 + src/share/native/sun/font/layout/CoverageTables.h | 3 + src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp | 6 +- src/share/native/sun/font/layout/CursiveAttachmentSubtables.h | 3 +- src/share/native/sun/font/layout/DeviceTables.h | 1 + src/share/native/sun/font/layout/ExtensionSubtables.cpp | 8 +- src/share/native/sun/font/layout/Features.cpp | 12 +- src/share/native/sun/font/layout/GDEFMarkFilter.cpp | 7 +- src/share/native/sun/font/layout/GDEFMarkFilter.h | 4 +- src/share/native/sun/font/layout/GXLayoutEngine.cpp | 5 +- src/share/native/sun/font/layout/GXLayoutEngine.h | 4 +- src/share/native/sun/font/layout/GlyphDefinitionTables.cpp | 28 +- src/share/native/sun/font/layout/GlyphDefinitionTables.h | 20 +- src/share/native/sun/font/layout/GlyphIterator.cpp | 27 +- src/share/native/sun/font/layout/GlyphIterator.h | 6 +- src/share/native/sun/font/layout/GlyphLookupTables.cpp | 15 +- src/share/native/sun/font/layout/GlyphLookupTables.h | 4 +- src/share/native/sun/font/layout/GlyphPositioningTables.cpp | 6 +- src/share/native/sun/font/layout/GlyphPositioningTables.h | 5 +- src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp | 36 +- src/share/native/sun/font/layout/GlyphPosnLookupProc.h | 4 +- src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp | 28 +- src/share/native/sun/font/layout/GlyphSubstLookupProc.h | 4 +- src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp | 7 +- src/share/native/sun/font/layout/GlyphSubstitutionTables.h | 5 +- src/share/native/sun/font/layout/HanLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/HanLayoutEngine.h | 2 +- src/share/native/sun/font/layout/HangulLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/HangulLayoutEngine.h | 2 +- src/share/native/sun/font/layout/ICUFeatures.h | 9 +- src/share/native/sun/font/layout/IndicLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/IndicLayoutEngine.h | 2 +- src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp | 14 +- src/share/native/sun/font/layout/IndicRearrangementProcessor.h | 7 +- src/share/native/sun/font/layout/IndicReordering.cpp | 5 + src/share/native/sun/font/layout/KernTable.cpp | 55 +- src/share/native/sun/font/layout/KernTable.h | 12 +- src/share/native/sun/font/layout/KhmerLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/KhmerLayoutEngine.h | 2 +- src/share/native/sun/font/layout/LEFontInstance.h | 19 + src/share/native/sun/font/layout/LEScripts.h | 22 +- src/share/native/sun/font/layout/LETableReference.h | 497 ++++++++++ src/share/native/sun/font/layout/LETypes.h | 45 +- src/share/native/sun/font/layout/LayoutEngine.cpp | 103 +- src/share/native/sun/font/layout/LayoutEngine.h | 8 +- src/share/native/sun/font/layout/LigatureSubstProc.cpp | 68 +- src/share/native/sun/font/layout/LigatureSubstProc.h | 6 +- src/share/native/sun/font/layout/LigatureSubstSubtables.cpp | 4 +- src/share/native/sun/font/layout/LigatureSubstSubtables.h | 5 +- src/share/native/sun/font/layout/LookupProcessor.cpp | 127 +- src/share/native/sun/font/layout/LookupProcessor.h | 19 +- src/share/native/sun/font/layout/LookupTables.cpp | 29 +- src/share/native/sun/font/layout/LookupTables.h | 10 +- src/share/native/sun/font/layout/Lookups.cpp | 36 +- src/share/native/sun/font/layout/Lookups.h | 29 +- src/share/native/sun/font/layout/MarkArrays.h | 1 + src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToBasePosnSubtables.h | 4 +- src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h | 5 +- src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp | 6 +- src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h | 4 +- src/share/native/sun/font/layout/MorphTables.cpp | 40 +- src/share/native/sun/font/layout/MorphTables.h | 7 +- src/share/native/sun/font/layout/MultipleSubstSubtables.cpp | 4 +- src/share/native/sun/font/layout/MultipleSubstSubtables.h | 4 +- src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp | 23 +- src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h | 6 +- src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp | 81 +- src/share/native/sun/font/layout/OpenTypeLayoutEngine.h | 16 +- src/share/native/sun/font/layout/OpenTypeTables.h | 3 +- src/share/native/sun/font/layout/OpenTypeUtilities.cpp | 98 +- src/share/native/sun/font/layout/OpenTypeUtilities.h | 13 +- src/share/native/sun/font/layout/PairPositioningSubtables.cpp | 27 +- src/share/native/sun/font/layout/PairPositioningSubtables.h | 10 +- src/share/native/sun/font/layout/ScriptAndLanguage.cpp | 65 +- src/share/native/sun/font/layout/ScriptAndLanguage.h | 9 +- src/share/native/sun/font/layout/SegmentArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/SegmentArrayProcessor.h | 6 +- src/share/native/sun/font/layout/SegmentSingleProcessor.cpp | 17 +- src/share/native/sun/font/layout/SegmentSingleProcessor.h | 6 +- src/share/native/sun/font/layout/ShapingTypeData.cpp | 2 + src/share/native/sun/font/layout/SimpleArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/SimpleArrayProcessor.h | 6 +- src/share/native/sun/font/layout/SinglePositioningSubtables.cpp | 18 +- src/share/native/sun/font/layout/SinglePositioningSubtables.h | 7 +- src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp | 18 +- src/share/native/sun/font/layout/SingleSubstitutionSubtables.h | 7 +- src/share/native/sun/font/layout/SingleTableProcessor.cpp | 13 +- src/share/native/sun/font/layout/SingleTableProcessor.h | 6 +- src/share/native/sun/font/layout/StateTableProcessor.cpp | 24 +- src/share/native/sun/font/layout/StateTableProcessor.h | 9 +- src/share/native/sun/font/layout/StateTables.h | 36 + src/share/native/sun/font/layout/SubtableProcessor.cpp | 6 +- src/share/native/sun/font/layout/SubtableProcessor.h | 6 +- src/share/native/sun/font/layout/ThaiLayoutEngine.cpp | 9 +- src/share/native/sun/font/layout/TibetanLayoutEngine.cpp | 2 +- src/share/native/sun/font/layout/TibetanLayoutEngine.h | 2 +- src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp | 20 +- src/share/native/sun/font/layout/TrimmedArrayProcessor.h | 6 +- src/share/native/sun/font/layout/ValueRecords.h | 1 + src/share/native/sun/font/sunFont.c | 18 +- src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java | 9 +- src/solaris/classes/sun/awt/X11/XWindowPeer.java | 6 +- src/solaris/native/java/net/Inet4AddressImpl.c | 22 +- src/solaris/native/java/net/Inet6AddressImpl.c | 13 +- src/solaris/native/java/net/NetworkInterface.c | 13 +- src/solaris/native/java/net/PlainDatagramSocketImpl.c | 55 +- src/solaris/native/java/net/net_util_md.c | 6 +- src/windows/classes/java/lang/ProcessImpl.java | 125 ++- src/windows/classes/sun/awt/windows/WFileDialogPeer.java | 4 +- src/windows/classes/sun/awt/windows/WPrintDialogPeer.java | 4 +- src/windows/classes/sun/awt/windows/WWindowPeer.java | 6 +- src/windows/native/java/net/Inet4AddressImpl.c | 14 +- src/windows/native/java/net/Inet6AddressImpl.c | 13 +- src/windows/native/java/net/NetworkInterface.c | 9 +- src/windows/native/java/net/NetworkInterface.h | 1 - src/windows/native/java/net/NetworkInterface_winXP.c | 6 +- src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c | 52 +- src/windows/native/java/net/TwoStacksPlainSocketImpl.c | 9 +- src/windows/native/java/net/net_util_md.c | 6 +- test/Makefile | 2 +- test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java | 3 +- test/java/rmi/registry/readTest/readTest.sh | 3 +- test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java | 4 + test/java/rmi/server/RMIClassLoader/downloadArrayClass/security.policy | 2 + test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java | 3 +- test/java/rmi/testlibrary/RMID.java | 3 + 192 files changed, 3242 insertions(+), 1280 deletions(-) diffs (truncated from 10001 to 500 lines): diff -r 7e8272d637c7 -r 010dc791dc14 src/macosx/classes/sun/lwawt/LWWindowPeer.java --- a/src/macosx/classes/sun/lwawt/LWWindowPeer.java Mon Jan 28 15:15:10 2013 -0800 +++ b/src/macosx/classes/sun/lwawt/LWWindowPeer.java Mon Apr 15 23:39:14 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -167,7 +167,7 @@ setTitle(((Dialog)getTarget()).getTitle()); } - setAlwaysOnTop(getTarget().isAlwaysOnTop()); + updateAlwaysOnTopState(); updateMinimumSize(); setOpacity(getTarget().getOpacity()); @@ -409,8 +409,8 @@ } @Override - public void setAlwaysOnTop(boolean value) { - platformWindow.setAlwaysOnTop(value); + public void updateAlwaysOnTopState() { + platformWindow.setAlwaysOnTop(getTarget().isAlwaysOnTop()); } @Override diff -r 7e8272d637c7 -r 010dc791dc14 src/macosx/classes/sun/lwawt/macosx/CFileDialog.java --- a/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Mon Jan 28 15:15:10 2013 -0800 +++ b/src/macosx/classes/sun/lwawt/macosx/CFileDialog.java Mon Apr 15 23:39:14 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -174,7 +174,7 @@ } @Override - public void setAlwaysOnTop(boolean alwaysOnTop) { + public void updateAlwaysOnTopState() { } @Override diff -r 7e8272d637c7 -r 010dc791dc14 src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java --- a/src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java Mon Jan 28 15:15:10 2013 -0800 +++ b/src/macosx/classes/sun/lwawt/macosx/CPrinterDialogPeer.java Mon Apr 15 23:39:14 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,7 @@ } // 1.6 peer method - public void setAlwaysOnTop(boolean value) { + public void updateAlwaysOnTopState() { // no-op, since we just show the native print dialog } diff -r 7e8272d637c7 -r 010dc791dc14 src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java --- a/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java Mon Jan 28 15:15:10 2013 -0800 +++ b/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java Mon Apr 15 23:39:14 2013 +0100 @@ -238,12 +238,17 @@ * sending warnings to listeners. */ protected void warningOccurred(int code) { - if ((code < 0) || (code > MAX_WARNING)){ - throw new InternalError("Invalid warning index"); + cbLock.lock(); + try { + if ((code < 0) || (code > MAX_WARNING)){ + throw new InternalError("Invalid warning index"); + } + processWarningOccurred + ("com.sun.imageio.plugins.jpeg.JPEGImageReaderResources", + Integer.toString(code)); + } finally { + cbLock.unlock(); } - processWarningOccurred - ("com.sun.imageio.plugins.jpeg.JPEGImageReaderResources", - Integer.toString(code)); } /** @@ -260,7 +265,12 @@ * library warnings from being printed to stderr. */ protected void warningWithMessage(String msg) { - processWarningOccurred(msg); + cbLock.lock(); + try { + processWarningOccurred(msg); + } finally { + cbLock.unlock(); + } } public void setInput(Object input, @@ -269,18 +279,55 @@ { setThreadLock(); try { + cbLock.check(); + super.setInput(input, seekForwardOnly, ignoreMetadata); this.ignoreMetadata = ignoreMetadata; resetInternalState(); iis = (ImageInputStream) input; // Always works - setSource(structPointer, iis); + setSource(structPointer); } finally { clearThreadLock(); } } - private native void setSource(long structPointer, - ImageInputStream source); + /** + * This method is called from native code in order to fill + * native input buffer. + * + * We block any attempt to change the reading state during this + * method, in order to prevent a corruption of the native decoder + * state. + * + * @return number of bytes read from the stream. + */ + private int readInputData(byte[] buf, int off, int len) throws IOException { + cbLock.lock(); + try { + return iis.read(buf, off, len); + } finally { + cbLock.unlock(); + } + } + + /** + * This method is called from the native code in order to + * skip requested number of bytes in the input stream. + * + * @param n + * @return + * @throws IOException + */ + private long skipInputBytes(long n) throws IOException { + cbLock.lock(); + try { + return iis.skipBytes(n); + } finally { + cbLock.unlock(); + } + } + + private native void setSource(long structPointer); private void checkTablesOnly() throws IOException { if (debug) { @@ -332,6 +379,8 @@ public int getNumImages(boolean allowSearch) throws IOException { setThreadLock(); try { // locked thread + cbLock.check(); + return getNumImagesOnThread(allowSearch); } finally { clearThreadLock(); @@ -531,8 +580,13 @@ if (debug) { System.out.println("pushing back " + num + " bytes"); } - iis.seek(iis.getStreamPosition()-num); - // The buffer is clear after this, so no need to set haveSeeked. + cbLock.lock(); + try { + iis.seek(iis.getStreamPosition()-num); + // The buffer is clear after this, so no need to set haveSeeked. + } finally { + cbLock.unlock(); + } } /** @@ -639,7 +693,12 @@ * Ignore this profile. */ iccCS = null; - warningOccurred(WARNING_IGNORE_INVALID_ICC); + cbLock.lock(); + try { + warningOccurred(WARNING_IGNORE_INVALID_ICC); + } finally { + cbLock.unlock(); + } } } } @@ -648,6 +707,7 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } return width; @@ -660,6 +720,7 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } return height; @@ -688,6 +749,8 @@ setThreadLock(); try { if (currentImage != imageIndex) { + cbLock.check(); + readHeader(imageIndex, true); } @@ -711,6 +774,7 @@ private Iterator getImageTypesOnThread(int imageIndex) throws IOException { if (currentImage != imageIndex) { + cbLock.check(); readHeader(imageIndex, true); } @@ -926,6 +990,7 @@ setThreadLock(); try { if (!tablesOnlyChecked) { + cbLock.check(); checkTablesOnly(); } return streamMetadata; @@ -946,6 +1011,8 @@ return imageMetadata; } + cbLock.check(); + gotoImage(imageIndex); imageMetadata = new JPEGMetadata(false, false, iis, this); @@ -962,6 +1029,7 @@ throws IOException { setThreadLock(); try { + cbLock.check(); try { readInternal(imageIndex, param, false); } catch (RuntimeException e) { @@ -1191,58 +1259,63 @@ } target.setRect(destROI.x, destROI.y + y, raster); - processImageUpdate(image, - destROI.x, destROI.y+y, - raster.getWidth(), 1, - 1, 1, - destinationBands); - if ((y > 0) && (y%progInterval == 0)) { - int height = target.getHeight()-1; - float percentOfPass = ((float)y)/height; - if (progressive) { - if (knownPassCount != UNKNOWN) { - processImageProgress((pass + percentOfPass)*100.0F - / knownPassCount); - } else if (maxProgressivePass != Integer.MAX_VALUE) { - // Use the range of allowed progressive passes - processImageProgress((pass + percentOfPass)*100.0F - / (maxProgressivePass - minProgressivePass + 1)); + cbLock.lock(); + try { + processImageUpdate(image, + destROI.x, destROI.y+y, + raster.getWidth(), 1, + 1, 1, + destinationBands); + if ((y > 0) && (y%progInterval == 0)) { + int height = target.getHeight()-1; + float percentOfPass = ((float)y)/height; + if (progressive) { + if (knownPassCount != UNKNOWN) { + processImageProgress((pass + percentOfPass)*100.0F + / knownPassCount); + } else if (maxProgressivePass != Integer.MAX_VALUE) { + // Use the range of allowed progressive passes + processImageProgress((pass + percentOfPass)*100.0F + / (maxProgressivePass - minProgressivePass + 1)); + } else { + // Assume there are a minimum of MIN_ESTIMATED_PASSES + // and that there is always one more pass + // Compute the percentage as the percentage at the end + // of the previous pass, plus the percentage of this + // pass scaled to be the percentage of the total remaining, + // assuming a minimum of MIN_ESTIMATED_PASSES passes and + // that there is always one more pass. This is monotonic + // and asymptotic to 1.0, which is what we need. + int remainingPasses = // including this one + Math.max(2, MIN_ESTIMATED_PASSES-pass); + int totalPasses = pass + remainingPasses-1; + progInterval = Math.max(height/20*totalPasses, + totalPasses); + if (y%progInterval == 0) { + percentToDate = previousPassPercentage + + (1.0F - previousPassPercentage) + * (percentOfPass)/remainingPasses; + if (debug) { + System.out.print("pass= " + pass); + System.out.print(", y= " + y); + System.out.print(", progInt= " + progInterval); + System.out.print(", % of pass: " + percentOfPass); + System.out.print(", rem. passes: " + + remainingPasses); + System.out.print(", prev%: " + + previousPassPercentage); + System.out.print(", %ToDate: " + percentToDate); + System.out.print(" "); + } + processImageProgress(percentToDate*100.0F); + } + } } else { - // Assume there are a minimum of MIN_ESTIMATED_PASSES - // and that there is always one more pass - // Compute the percentage as the percentage at the end - // of the previous pass, plus the percentage of this - // pass scaled to be the percentage of the total remaining, - // assuming a minimum of MIN_ESTIMATED_PASSES passes and - // that there is always one more pass. This is monotonic - // and asymptotic to 1.0, which is what we need. - int remainingPasses = // including this one - Math.max(2, MIN_ESTIMATED_PASSES-pass); - int totalPasses = pass + remainingPasses-1; - progInterval = Math.max(height/20*totalPasses, - totalPasses); - if (y%progInterval == 0) { - percentToDate = previousPassPercentage + - (1.0F - previousPassPercentage) - * (percentOfPass)/remainingPasses; - if (debug) { - System.out.print("pass= " + pass); - System.out.print(", y= " + y); - System.out.print(", progInt= " + progInterval); - System.out.print(", % of pass: " + percentOfPass); - System.out.print(", rem. passes: " - + remainingPasses); - System.out.print(", prev%: " - + previousPassPercentage); - System.out.print(", %ToDate: " + percentToDate); - System.out.print(" "); - } - processImageProgress(percentToDate*100.0F); - } + processImageProgress(percentOfPass * 100.0F); } - } else { - processImageProgress(percentOfPass * 100.0F); } + } finally { + cbLock.unlock(); } } @@ -1255,33 +1328,58 @@ } private void passStarted (int pass) { - this.pass = pass; - previousPassPercentage = percentToDate; - processPassStarted(image, - pass, - minProgressivePass, - maxProgressivePass, - 0, 0, - 1,1, - destinationBands); + cbLock.lock(); + try { + this.pass = pass; + previousPassPercentage = percentToDate; + processPassStarted(image, + pass, + minProgressivePass, + maxProgressivePass, + 0, 0, + 1,1, + destinationBands); + } finally { + cbLock.unlock(); + } } private void passComplete () { - processPassComplete(image); + cbLock.lock(); + try { + processPassComplete(image); + } finally { + cbLock.unlock(); + } } void thumbnailStarted(int thumbnailIndex) { - processThumbnailStarted(currentImage, thumbnailIndex); + cbLock.lock(); + try { + processThumbnailStarted(currentImage, thumbnailIndex); + } finally { + cbLock.unlock(); + } } // Provide access to protected superclass method void thumbnailProgress(float percentageDone) { - processThumbnailProgress(percentageDone); + cbLock.lock(); + try { + processThumbnailProgress(percentageDone); + } finally { + cbLock.unlock(); + } } // Provide access to protected superclass method void thumbnailComplete() { - processThumbnailComplete(); + cbLock.lock(); + try { + processThumbnailComplete(); + } finally { + cbLock.unlock(); + } } /** @@ -1305,6 +1403,11 @@ public void abort() { setThreadLock(); try { + /** + * NB: we do not check the call back lock here, + * we allow to abort the reader any time. + */ + super.abort(); abortRead(structPointer); } finally { @@ -1327,6 +1430,7 @@ setThreadLock(); Raster retval = null; try { + cbLock.check(); /* * This could be further optimized by not resetting the dest. * offset and creating a translated raster in readInternal() @@ -1366,6 +1470,8 @@ public int getNumThumbnails(int imageIndex) throws IOException { setThreadLock(); try { + cbLock.check(); + getImageMetadata(imageIndex); // checks iis state for us // Now check the jfif segments JFIFMarkerSegment jfif = @@ -1386,6 +1492,8 @@ throws IOException { setThreadLock(); try { + cbLock.check(); + if ((thumbnailIndex < 0) || (thumbnailIndex >= getNumThumbnails(imageIndex))) { throw new IndexOutOfBoundsException("No such thumbnail"); @@ -1404,6 +1512,8 @@ throws IOException { setThreadLock(); try { + cbLock.check(); + if ((thumbnailIndex < 0) || (thumbnailIndex >= getNumThumbnails(imageIndex))) { throw new IndexOutOfBoundsException("No such thumbnail"); @@ -1423,6 +1533,8 @@ throws IOException { setThreadLock(); try { From ptisnovs at icedtea.classpath.org Mon Apr 29 04:31:17 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 29 Apr 2013 11:31:17 +0000 Subject: /hg/icedtea6: Added two JTreg tests for checking TextLayout clas... Message-ID: changeset 11353b3c2109 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=11353b3c2109 author: Pavel Tisnovsky date: Mon Apr 29 13:27:32 2013 +0200 Added two JTreg tests for checking TextLayout class behaviour. diffstat: ChangeLog | 8 ++++ Makefile.am | 4 +- patches/textLayoutGetCharacterCount.patch | 54 +++++++++++++++++++++++++++++++ patches/textLayoutLimits.patch | 49 ++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 1 deletions(-) diffs (140 lines): diff -r 485b2d3dfd09 -r 11353b3c2109 ChangeLog --- a/ChangeLog Fri Apr 26 15:39:35 2013 +0100 +++ b/ChangeLog Mon Apr 29 13:27:32 2013 +0200 @@ -1,3 +1,11 @@ +2013-04-29 Pavel Tisnovsky + + * Makefile.am: + (ICEDTEA_PATCHES): Add two new patches. + * patches/textLayoutGetCharacterCount.patch: + * patches/textLayoutLimits.patch: + Two JTreg tests for checking TextLayout class behaviour. + 2013-04-26 Andrew John Hughes * Makefile.am: diff -r 485b2d3dfd09 -r 11353b3c2109 Makefile.am --- a/Makefile.am Fri Apr 26 15:39:35 2013 +0100 +++ b/Makefile.am Mon Apr 29 13:27:32 2013 +0200 @@ -544,7 +544,9 @@ patches/openjdk/6500343-bad_code_from_conditionals.patch \ patches/jaxws-tempfiles-ioutils-6.patch \ patches/object-factory-cl-internal.patch \ - patches/openjdk/8009530-icu_kern_table_support_broken.patch + patches/openjdk/8009530-icu_kern_table_support_broken.patch \ + patches/textLayoutGetCharacterCount.patch \ + patches/textLayoutLimits.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 485b2d3dfd09 -r 11353b3c2109 patches/textLayoutGetCharacterCount.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/textLayoutGetCharacterCount.patch Mon Apr 29 13:27:32 2013 +0200 @@ -0,0 +1,54 @@ +--- ./openjdk-old/jdk/test/java/awt/font/TextLayout/TextLayoutGetCharacterCount.java 2013-04-26 11:51:19.000000000 +0200 ++++ ./openjdk/jdk/test/java/awt/font/TextLayout/TextLayoutGetCharacterCount.java 2013-04-26 11:51:19.000000000 +0200 +@@ -0,0 +1,51 @@ ++/* ++ * Copyright 2013 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.awt.Font; ++import java.awt.font.TextLayout; ++import java.awt.font.FontRenderContext; ++ ++/** ++ * @test ++ * @run main TextLayoutGetCharacterCount ++ * @author Pavel Tisnovsky ++ * ++ * Test if TextLayout's method getCharacterCount() works properly. ++ */ ++public class TextLayoutGetCharacterCount { ++ public static void main(String []args) { ++ Font font = new Font("Times New Roman", Font.BOLD, 10); ++ check(font, "."); ++ check(font, " "); ++ check(font, " "); ++ check(font, "JAVA"); ++ check(font, " JAVA "); ++ } ++ ++ public static void check(Font font, String string) { ++ TextLayout tl = new TextLayout(string, font, new FontRenderContext(null, false, false)); ++ int characterCount = tl.getCharacterCount(); ++ int expected = string.length(); ++ ++ if (characterCount != expected) { ++ throw new RuntimeException("getCharacterCount() returns " + characterCount + " instead of " + expected); ++ } ++ } ++} ++ diff -r 485b2d3dfd09 -r 11353b3c2109 patches/textLayoutLimits.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/textLayoutLimits.patch Mon Apr 29 13:27:32 2013 +0200 @@ -0,0 +1,49 @@ +--- ./openjdk-old/jdk/test/java/awt/font/TextLayout/TextLayoutLimits.java 2013-04-26 11:51:19.000000000 +0200 ++++ ./openjdk/jdk/test/java/awt/font/TextLayout/TextLayoutLimits.java 2013-04-26 11:51:19.000000000 +0200 +@@ -0,0 +1,46 @@ ++/* ++ * Copyright 2013 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.awt.Font; ++import java.awt.font.TextLayout; ++import java.awt.font.FontRenderContext; ++ ++/** ++ * @test ++ * @run main TextLayoutLimits ++ * @author Pavel Tisnovsky ++ * ++ * Test if TextLayout's method getBounds() works properly. ++ */ ++public class TextLayoutLimits { ++ public static void main(String []args) { ++ Font font = new Font("Times New Roman", Font.BOLD, 10); ++ TextLayout tl = new TextLayout("JAVA", font, new FontRenderContext(null, false, false)); ++ ++ int width = (int) tl.getBounds().getWidth(); ++ int height = (int) tl.getBounds().getHeight(); ++ if (width <= 0) { ++ throw new RuntimeException("Width " + width + " is <=0"); ++ } ++ if (height <= 0) { ++ throw new RuntimeException("Height " + height + " is <=0"); ++ } ++ } ++} ++ From jfabriko at redhat.com Mon Apr 29 04:48:00 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Mon, 29 Apr 2013 13:48:00 +0200 Subject: [rfc][icedtea-web] AWTFramework - modifying return values in ImageSeeker and ComponentFinder Message-ID: <1367236080.1852.6.camel@jana-2-174.nrt.redhat.com> Hi, please see the attached patch that modifies three files in AWTFramework thanks, Jana 2013-04-29 Jana Fabrikova * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: fixing method (captureScreenAndFindAppletByIconTryKTimes), which should not throw AWTFrameworkException * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: fixing the return values of several search methods * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: fixing the return values of several search methods -------------- next part -------------- A non-text attachment was scrubbed... Name: modifying_AWTFramework_nulls.patch Type: text/x-patch Size: 5165 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/4362df72/modifying_AWTFramework_nulls.patch From jvanek at redhat.com Mon Apr 29 04:50:14 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Apr 2013 13:50:14 +0200 Subject: [rfc][icedtea-web] AWTFramework - modifying return values in ImageSeeker and ComponentFinder In-Reply-To: <1367236080.1852.6.camel@jana-2-174.nrt.redhat.com> References: <1367236080.1852.6.camel@jana-2-174.nrt.redhat.com> Message-ID: <517E5E76.2070501@redhat.com> On 04/29/2013 01:48 PM, Jana Fabrikova wrote: > Hi, > > please see the attached patch that modifies three files in AWTFramework > > thanks, > Jana > > 2013-04-29 Jana Fabrikova > * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: > fixing method (captureScreenAndFindAppletByIconTryKTimes), > which should not throw AWTFrameworkException > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: > fixing the return values of several search methods > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: > fixing the return values of several search methods > Looks good. J. From jfabriko at icedtea.classpath.org Mon Apr 29 04:51:20 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Mon, 29 Apr 2013 11:51:20 +0000 Subject: /hg/icedtea-web: AWTFramework - fixing return values of searchin... Message-ID: changeset 9f602cd4d895 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9f602cd4d895 author: Jana Fabrikova date: Mon Apr 29 13:54:26 2013 +0200 AWTFramework - fixing return values of searching methods diffstat: tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java | 7 +-- tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java | 30 +++++++-- tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java | 11 ++- 3 files changed, 31 insertions(+), 17 deletions(-) diffs (117 lines): diff -r c5e4fbd65bc0 -r 9f602cd4d895 tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 09:25:50 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 13:54:26 2013 +0200 @@ -346,14 +346,9 @@ * @param height * @param K * @throws ComponentNotFoundException - * @throws AWTFrameworkException */ - public void captureScreenAndFindAppletByIconTryKTimes(BufferedImage icon, Rectangle iconPosition, int width, int height, int K) throws ComponentNotFoundException, AWTFrameworkException { + public void captureScreenAndFindAppletByIconTryKTimes(BufferedImage icon, Rectangle iconPosition, int width, int height, int K) throws ComponentNotFoundException { - if(!markerGiven){ - throw new AWTFrameworkException("AWTFramework cannot find applet without marker!"); - } - int count = 0; appletFound = false; while ((count < K) && !appletFound) { diff -r c5e4fbd65bc0 -r 9f602cd4d895 tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java Mon Apr 29 09:25:50 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java Mon Apr 29 13:54:26 2013 +0200 @@ -43,7 +43,7 @@ import java.awt.image.BufferedImage; public class ComponentFinder { - + /** * method findColoredRectangle determines coordinates of a rectangle colored * by rectangleColor surrounded by a neighbourhood of surroundingColor @@ -56,7 +56,11 @@ public static Rectangle findColoredRectangle(Color rectangleColor, Color surroundingColor, BufferedImage screenshot) { Rectangle r = ImageSeeker.findColoredAreaGap(screenshot, rectangleColor, surroundingColor, 0, screenshot.getHeight(), 0); - return r; + if( ImageSeeker.isRectangleValid(r)){ + return r; + }else{ + return null; + } } /** @@ -73,7 +77,11 @@ public static Rectangle findColoredRectangle(Color rectangleColor, Color surroundingColor, BufferedImage screenshot, int gap) { Rectangle r = ImageSeeker.findColoredAreaGap(screenshot, rectangleColor, surroundingColor, 0, screenshot.getHeight(), gap); - return r; + if( ImageSeeker.isRectangleValid(r)){ + return r; + }else{ + return null; + } } @@ -92,16 +100,24 @@ */ public static Rectangle findWindowByIcon(BufferedImage icon, Rectangle iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot) { Rectangle r = ImageSeeker.findExactImage(icon, screenshot); - return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + if( ImageSeeker.isRectangleValid(r)){ + return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + }else{ + return null; + } } public static Rectangle findWindowByIconBlurred(BufferedImage icon, Rectangle iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot, double minCorrelation) { Rectangle r = ImageSeeker.findBlurredImage(icon, screenshot, minCorrelation); - return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + if( ImageSeeker.isRectangleValid(r)){ + return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + }else{ + return null; + } } public static Rectangle windowPositionFromIconPosition(Rectangle iconAbsolute, Rectangle iconRelative, int windowWidth, int windowHeight){ - return new Rectangle( iconAbsolute.x - iconRelative.x, iconAbsolute.y - iconRelative.y, - windowWidth, windowHeight); + return new Rectangle( iconAbsolute.x - iconRelative.x, iconAbsolute.y - iconRelative.y, + windowWidth, windowHeight); } } diff -r c5e4fbd65bc0 -r 9f602cd4d895 tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java Mon Apr 29 09:25:50 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java Mon Apr 29 13:54:26 2013 +0200 @@ -73,12 +73,15 @@ result.width = marker.getWidth(); }else{ ok = true; - } - + } } } - return result; + if(found){ + return result; + }else{ + return null; + } } public static Rectangle findBlurredImage(BufferedImage marker, BufferedImage testImage, double minCorrelation){ @@ -119,7 +122,7 @@ if(bestCorrelation > minCorrelation){ return new Rectangle(bestX, bestY, marker.getWidth(), marker.getHeight()); }else{ - return new Rectangle(0,0,0,0); + return null; } } From jfabriko at redhat.com Mon Apr 29 06:00:02 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Mon, 29 Apr 2013 15:00:02 +0200 Subject: [rfc][icedtea-web] AWTFramework - Point instead of Rectangle as icon position Message-ID: <1367240402.1852.9.camel@jana-2-174.nrt.redhat.com> Hello, I am sending the "Point instead of Rectangle as icon position" change as a patch in the attachment, thanks for any comments, Jana 2013-04-29 Jana Fabrikova * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: refactoring Point instead of Rectangle as icon position as markerPosition * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: refactoring Point instead of Rectangle as icon position as markerPosition -------------- next part -------------- A non-text attachment was scrubbed... Name: modifying_AWTFramework_point.patch Type: text/x-patch Size: 6272 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/b6274635/modifying_AWTFramework_point.patch From jfabriko at icedtea.classpath.org Mon Apr 29 06:02:09 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Mon, 29 Apr 2013 13:02:09 +0000 Subject: /hg/icedtea-web: fixing ChangeLog Message-ID: changeset fc98e8df7cee in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fc98e8df7cee author: Jana Fabrikova date: Mon Apr 29 15:05:14 2013 +0200 fixing ChangeLog diffstat: ChangeLog | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diffs (17 lines): diff -r 9f602cd4d895 -r fc98e8df7cee ChangeLog --- a/ChangeLog Mon Apr 29 13:54:26 2013 +0200 +++ b/ChangeLog Mon Apr 29 15:05:14 2013 +0200 @@ -1,3 +1,13 @@ +2013-04-29 Jana Fabrikova + + * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: + fixing method (captureScreenAndFindAppletByIconTryKTimes), + which should not throw AWTFrameworkException + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: + fixing the return values of several search methods + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: + fixing the return values of several search methods + 2013-04-26 Jana Fabrikova * /tests/test-extensions/net/sourceforge/jnlp/closinglisteners/RulesFolowingClosingListener.java: From jvanek at redhat.com Mon Apr 29 06:10:42 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Apr 2013 15:10:42 +0200 Subject: [rfc][icedtea-web] AWTFramework - Point instead of Rectangle as icon position In-Reply-To: <1367240402.1852.9.camel@jana-2-174.nrt.redhat.com> References: <1367240402.1852.9.camel@jana-2-174.nrt.redhat.com> Message-ID: <517E7152.8080003@redhat.com> On 04/29/2013 03:00 PM, Jana Fabrikova wrote: > Hello, > > I am sending the "Point instead of Rectangle as icon position" change as > a patch in the attachment, > > thanks for any comments, > Jana > > 2013-04-29 Jana Fabrikova > * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: > refactoring Point instead of Rectangle as icon position as > markerPosition > * > tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: > refactoring Point instead of Rectangle as icon position as > markerPosition > yy, go on. btw - in chnangelog is good habit if you mention each affected method. But not necessary this time. J. From jfabriko at icedtea.classpath.org Mon Apr 29 06:26:39 2013 From: jfabriko at icedtea.classpath.org (jfabriko at icedtea.classpath.org) Date: Mon, 29 Apr 2013 13:26:39 +0000 Subject: /hg/icedtea-web: refactoring AWTFramework - iconPosition is of t... Message-ID: changeset 105f8cb6d988 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=105f8cb6d988 author: Jana Fabrikova date: Mon Apr 29 15:29:46 2013 +0200 refactoring AWTFramework - iconPosition is of type Point diffstat: ChangeLog | 9 +++++ tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java | 18 +++++---- tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java | 16 ++++---- 3 files changed, 27 insertions(+), 16 deletions(-) diffs (153 lines): diff -r fc98e8df7cee -r 105f8cb6d988 ChangeLog --- a/ChangeLog Mon Apr 29 15:05:14 2013 +0200 +++ b/ChangeLog Mon Apr 29 15:29:46 2013 +0200 @@ -1,3 +1,12 @@ +2013-04-29 Jana Fabrikova + + * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: + refactoring Point instead of Rectangle as icon position as + markerPosition + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: + refactoring Point instead of Rectangle as icon position in several + search methods + 2013-04-29 Jana Fabrikova * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: diff -r fc98e8df7cee -r 105f8cb6d988 tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 15:05:14 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 15:29:46 2013 +0200 @@ -38,6 +38,7 @@ import java.awt.AWTException; import java.awt.Color; +import java.awt.Point; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; @@ -62,7 +63,7 @@ private String initStr = ""; private Color appletColor; private BufferedImage marker; - private Rectangle markerPosition; + private Point markerPosition; private int appletHeight; private int appletWidth; private int tryKTimes = DEFAULT_K; @@ -132,7 +133,7 @@ * @param appletHeight */ - public AWTHelper(BufferedImage icon, Rectangle iconPosition, int appletWidth, int appletHeight){ + public AWTHelper(BufferedImage icon, Point iconPosition, int appletWidth, int appletHeight){ this(); this.marker = icon; this.markerPosition = iconPosition; @@ -143,7 +144,7 @@ this.appletDimensionGiven = true; } - public AWTHelper(String initString, BufferedImage icon, Rectangle iconPosition, int appletWidth, int appletHeight) throws AWTException{ + public AWTHelper(String initString, BufferedImage icon, Point iconPosition, int appletWidth, int appletHeight) throws AWTException{ this(icon, iconPosition, appletWidth, appletHeight); this.initStr = initString; @@ -160,16 +161,17 @@ */ public AWTHelper(int appletWidth, int appletHeight){ this(); + String test_server_dir_path = System.getProperty("test.server.dir"); try { this.marker = ImageIO.read(new File(test_server_dir_path + "/marker.png")); - this.markerPosition = new Rectangle(0,0,marker.getWidth(),marker.getHeight()); + this.markerPosition = new Point(0,0); this.markerGiven = true; } catch (IOException e) { throw new RuntimeException("AWTHelper could not read marker.png.",e); } - + this.appletWidth = appletWidth; this.appletHeight = appletHeight; this.appletDimensionGiven = true; @@ -297,7 +299,7 @@ this.initStrGiven = true; } - public void setMarker(BufferedImage marker, Rectangle markerPosition) { + public void setMarker(BufferedImage marker, Point markerPosition) { this.marker = marker; this.markerPosition = markerPosition; this.markerGiven = true; @@ -347,7 +349,7 @@ * @param K * @throws ComponentNotFoundException */ - public void captureScreenAndFindAppletByIconTryKTimes(BufferedImage icon, Rectangle iconPosition, int width, int height, int K) throws ComponentNotFoundException { + public void captureScreenAndFindAppletByIconTryKTimes(BufferedImage icon, Point iconPosition, int width, int height, int K) throws ComponentNotFoundException { int count = 0; appletFound = false; @@ -551,4 +553,4 @@ public void typeKey(int key) { KeyboardActions.typeKey(this.robot, key); } -} + } diff -r fc98e8df7cee -r 105f8cb6d988 tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java Mon Apr 29 15:05:14 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java Mon Apr 29 15:29:46 2013 +0200 @@ -39,6 +39,7 @@ package net.sourceforge.jnlp.awt.imagesearch; import java.awt.Color; +import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; @@ -86,10 +87,9 @@ /** - * method findWindowByIcon finds the application area assuming there is a + * Method findWindowByIcon finds the application area assuming there is a * given icon in given position on the application window - * (the left upper corner by default) the dimension of the window has to - * be given + * the dimension of the window has to be given. * * @param icon * @param iconPosition @@ -98,25 +98,25 @@ * @param screenshot * @return Rectangle rectangle where the applet resides */ - public static Rectangle findWindowByIcon(BufferedImage icon, Rectangle iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot) { + public static Rectangle findWindowByIcon(BufferedImage icon, Point iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot) { Rectangle r = ImageSeeker.findExactImage(icon, screenshot); if( ImageSeeker.isRectangleValid(r)){ - return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + return windowPositionFromIconPosition(r.getLocation(), iconPosition, windowWidth, windowHeight); }else{ return null; } } - public static Rectangle findWindowByIconBlurred(BufferedImage icon, Rectangle iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot, double minCorrelation) { + public static Rectangle findWindowByIconBlurred(BufferedImage icon, Point iconPosition, int windowWidth, int windowHeight, BufferedImage screenshot, double minCorrelation) { Rectangle r = ImageSeeker.findBlurredImage(icon, screenshot, minCorrelation); if( ImageSeeker.isRectangleValid(r)){ - return windowPositionFromIconPosition(r, iconPosition, windowWidth, windowHeight); + return windowPositionFromIconPosition(r.getLocation(), iconPosition, windowWidth, windowHeight); }else{ return null; } } - public static Rectangle windowPositionFromIconPosition(Rectangle iconAbsolute, Rectangle iconRelative, int windowWidth, int windowHeight){ + public static Rectangle windowPositionFromIconPosition(Point iconAbsolute, Point iconRelative, int windowWidth, int windowHeight){ return new Rectangle( iconAbsolute.x - iconRelative.x, iconAbsolute.y - iconRelative.y, windowWidth, windowHeight); } From jvanek at redhat.com Mon Apr 29 06:36:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Apr 2013 15:36:50 +0200 Subject: [rfc][icedtea-web] awt framework - added handling of alpha and small performance improvement Message-ID: <517E7772.5070403@redhat.com> Hi! This aptch is adding masks for iamges using alpha. Parts of pattern with alpha chanel are unpredictable, so this is simply removing those parts. Also I think it is worthy to save image we are looking fro into array and to avoid repeated getRGB() J. -------------- next part -------------- A non-text attachment was scrubbed... Name: masks.patch Type: text/x-patch Size: 3945 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/5741b93d/masks.patch From jvanek at redhat.com Mon Apr 29 06:38:45 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Apr 2013 15:38:45 +0200 Subject: [rfc][icedtea-web] - awt - made initialisation method more scalable Message-ID: <517E77E5.6000007@redhat.com> Hi! I think sometimes the screanshot is already initialised, and still it is worthy to use AwtHelper. So I split the your original initialisation code to more methods. Is it ok? J. -------------- next part -------------- A non-text attachment was scrubbed... Name: moreGranularMethods.patch Type: text/x-patch Size: 3394 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/7b0a085a/moreGranularMethods.patch From ptisnovs at redhat.com Mon Apr 29 06:52:37 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 29 Apr 2013 09:52:37 -0400 (EDT) Subject: [rfc][icedtea-web] awt framework - added handling of alpha and small performance improvement In-Reply-To: <517E7772.5070403@redhat.com> References: <517E7772.5070403@redhat.com> Message-ID: <1256958135.4231275.1367243557672.JavaMail.root@redhat.com> Hi Jiri, your patch looks ok in overall. Ok to push to HEAD if following minor issues would be fixed: + //to filter oout values with alpha filter out + //accessing those to often, copying too often + int w=icon.getWidth(); + int h = icon.getHeight(); + boolean[][] b= getMask(icon); ^^^ needs autoformating (spaces between operands and operators) + int w=icon.getWidth(); + int h = icon.getHeight(); + boolean[][] r = new boolean[w][h]; It would be faster to construct all arrays transposed, ie. new boolean[h][w] and then rearrange for-loops in following way: for (y:all_rows) { for (x:all_columns) { } } because it will make CPU caches more happy :-) Cheers, Pavel ----- Jiri Vanek wrote: > Hi! > This aptch is adding masks for iamges using alpha. > Parts of pattern with alpha chanel are unpredictable, so this is simply removing those parts. > > Also I think it is worthy to save image we are looking fro into array and to avoid repeated getRGB() > > J. From andrew at icedtea.classpath.org Mon Apr 29 06:59:49 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 13:59:49 +0000 Subject: /hg/release/icedtea7-forest-2.2: Added tag icedtea-2.2.8 for cha... Message-ID: changeset e9f163772cc1 in /hg/release/icedtea7-forest-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2?cmd=changeset;node=e9f163772cc1 author: andrew date: Mon Apr 29 14:47:22 2013 +0100 Added tag icedtea-2.2.8 for changeset 1a406488fe33 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 1a406488fe33 -r e9f163772cc1 .hgtags --- a/.hgtags Mon Mar 04 21:29:07 2013 -0500 +++ b/.hgtags Mon Apr 29 14:47:22 2013 +0100 @@ -181,3 +181,4 @@ 431257be50142366a1ab02920c45392cc86a28e8 icedtea-2.2.5 ac5792f240c017780b09a8ac3e5e04b73c4db4ac icedtea-2.2.6 cf1afd9bb9364eff333a7186caa81e958bffbc00 icedtea-2.2.7 +1a406488fe3392f5a1d432fa4d5024b71eac89c2 icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 06:59:56 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 13:59:56 +0000 Subject: /hg/release/icedtea7-forest-2.2/corba: Added tag icedtea-2.2.8 f... Message-ID: changeset ac8577a3d814 in /hg/release/icedtea7-forest-2.2/corba details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/corba?cmd=changeset;node=ac8577a3d814 author: andrew date: Mon Apr 29 14:47:23 2013 +0100 Added tag icedtea-2.2.8 for changeset 529355376925 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 529355376925 -r ac8577a3d814 .hgtags --- a/.hgtags Mon Mar 04 21:29:10 2013 -0500 +++ b/.hgtags Mon Apr 29 14:47:23 2013 +0100 @@ -185,3 +185,4 @@ 9c1ee05d1f2edbb912bf68c94361b1f0c508d94d icedtea-2.2.5 5a9a1b4aecd3e1ad36a139d53222be6c8c09fdf8 icedtea-2.2.6 5fcf70e41383eb93989ddb75de8f592b3ec395ae icedtea-2.2.7 +529355376925824e8dfe7fb2365df832816ed40d icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 07:00:02 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:00:02 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxp: Added tag icedtea-2.2.8 fo... Message-ID: changeset 15ed6fe28351 in /hg/release/icedtea7-forest-2.2/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxp?cmd=changeset;node=15ed6fe28351 author: andrew date: Mon Apr 29 14:47:24 2013 +0100 Added tag icedtea-2.2.8 for changeset 839055d03a54 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 839055d03a54 -r 15ed6fe28351 .hgtags --- a/.hgtags Sat Feb 16 18:03:23 2013 -0800 +++ b/.hgtags Mon Apr 29 14:47:24 2013 +0100 @@ -181,3 +181,4 @@ 5ac7b9e75614f15e2f8b4ea31b12f1afa4623ec3 icedtea-2.2.5 7d285e628870edf9e3d69b46ea8a7ef2584a6ecb icedtea-2.2.6 988fa5bfeeec56dd27a23fa0baf1ab1a51b9ffa3 icedtea-2.2.7 +839055d03a5469a3f4724d3dfc64eac3ec793087 icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 07:00:08 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:00:08 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxws: Added tag icedtea-2.2.8 f... Message-ID: changeset a8bd8eb5f503 in /hg/release/icedtea7-forest-2.2/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxws?cmd=changeset;node=a8bd8eb5f503 author: andrew date: Mon Apr 29 14:47:25 2013 +0100 Added tag icedtea-2.2.8 for changeset c7ac0744f92f diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r c7ac0744f92f -r a8bd8eb5f503 .hgtags --- a/.hgtags Wed Feb 20 22:42:04 2013 +0100 +++ b/.hgtags Mon Apr 29 14:47:25 2013 +0100 @@ -181,3 +181,4 @@ c620184ea4250a1988f5a2e25abcef29900108a2 icedtea-2.2.5 acf0bd2643a58566c259ea9a9a73c446d11cc28c icedtea-2.2.6 1b6e40dd07568ca0f9eb20b8685b11f1b103898e icedtea-2.2.7 +c7ac0744f92f0d732b5afa0aad345c344809f196 icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 07:00:15 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:00:15 +0000 Subject: /hg/release/icedtea7-forest-2.2/langtools: Added tag icedtea-2.2... Message-ID: changeset ec2046261dd2 in /hg/release/icedtea7-forest-2.2/langtools details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/langtools?cmd=changeset;node=ec2046261dd2 author: andrew date: Mon Apr 29 14:47:26 2013 +0100 Added tag icedtea-2.2.8 for changeset ae5ba074188d diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r ae5ba074188d -r ec2046261dd2 .hgtags --- a/.hgtags Mon Mar 04 21:29:16 2013 -0500 +++ b/.hgtags Mon Apr 29 14:47:26 2013 +0100 @@ -182,3 +182,4 @@ 206668cf21e5c72ca48ebfc1aa45a012676681f6 icedtea-2.2.5 de74a816c73afcefc37d9edaacf165d7394f3cf3 icedtea-2.2.6 e89d5b6f21a69b052fda26bc8024bbc9d0a3efc9 icedtea-2.2.7 +ae5ba074188dd2b4c458243c6788b57b68ca4f15 icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 07:00:21 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:00:21 +0000 Subject: /hg/release/icedtea7-forest-2.2/hotspot: Added tag icedtea-2.2.8... Message-ID: changeset bb93816a6af8 in /hg/release/icedtea7-forest-2.2/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=bb93816a6af8 author: andrew date: Mon Apr 29 14:47:27 2013 +0100 Added tag icedtea-2.2.8 for changeset 168d05b42b89 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 168d05b42b89 -r bb93816a6af8 .hgtags --- a/.hgtags Fri Mar 15 09:33:37 2013 -0700 +++ b/.hgtags Mon Apr 29 14:47:27 2013 +0100 @@ -292,3 +292,4 @@ da3747196112fca6f8f3db3b80712bcd3b10c477 icedtea-2.2.5 d2e4bf94d38d76aa3e1908f9e01f8b8933caf09b icedtea-2.2.6 de365dd264846fcb73fed2afc3cd41652eb44ce1 icedtea-2.2.7 +168d05b42b8900de8974b5d5cee9e65d19c9db02 icedtea-2.2.8 From andrew at icedtea.classpath.org Mon Apr 29 07:00:28 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:00:28 +0000 Subject: /hg/release/icedtea7-forest-2.2/jdk: 2 new changesets Message-ID: changeset 1a455d17b871 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=1a455d17b871 author: andrew date: Mon Apr 29 14:59:19 2013 +0100 8009530: ICU Kern table support broken Reviewed-by: prr, vadim changeset dd9d3f378968 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=dd9d3f378968 author: andrew date: Mon Apr 29 14:59:40 2013 +0100 Added tag icedtea-2.2.8 for changeset 1a455d17b871 diffstat: .hgtags | 1 + src/share/native/sun/font/layout/KernTable.cpp | 28 ++++- src/share/native/sun/font/layout/LETableReference.h | 72 ++-------------- test/java/awt/font/TextLayout/TestKerning.java | 94 +++++++++++++++++++++ 4 files changed, 126 insertions(+), 69 deletions(-) diffs (322 lines): diff -r 010dc791dc14 -r dd9d3f378968 .hgtags --- a/.hgtags Mon Apr 15 23:39:14 2013 +0100 +++ b/.hgtags Mon Apr 29 14:59:40 2013 +0100 @@ -197,3 +197,4 @@ 0000000000000000000000000000000000000000 icedtea-2.2.6 87ea64734ee654cb63e9cccba9dd93510cf4c400 icedtea-2.2.6 40640be5d6a050443c7037ed81a3792e35e07eee icedtea-2.2.7 +1a455d17b871c75369b477a1fe464c071f16edc2 icedtea-2.2.8 diff -r 010dc791dc14 -r dd9d3f378968 src/share/native/sun/font/layout/KernTable.cpp --- a/src/share/native/sun/font/layout/KernTable.cpp Mon Apr 15 23:39:14 2013 +0100 +++ b/src/share/native/sun/font/layout/KernTable.cpp Mon Apr 29 14:59:40 2013 +0100 @@ -48,7 +48,7 @@ le_int16 value; // fword, kern value in funits }; #define KERN_PAIRINFO_SIZE 6 - +LE_CORRECT_SIZE(PairInfo, KERN_PAIRINFO_SIZE) struct Subtable_0 { le_uint16 nPairs; le_uint16 searchRange; @@ -56,6 +56,7 @@ le_uint16 rangeShift; }; #define KERN_SUBTABLE_0_HEADER_SIZE 8 +LE_CORRECT_SIZE(Subtable_0, KERN_SUBTABLE_0_HEADER_SIZE) // Kern table version 0 only struct SubtableHeader { @@ -64,6 +65,7 @@ le_uint16 coverage; }; #define KERN_SUBTABLE_HEADER_SIZE 6 +LE_CORRECT_SIZE(SubtableHeader, KERN_SUBTABLE_HEADER_SIZE) // Version 0 only, version 1 has different layout struct KernTableHeader { @@ -71,6 +73,7 @@ le_uint16 nTables; }; #define KERN_TABLE_HEADER_SIZE 4 +LE_CORRECT_SIZE(KernTableHeader, KERN_TABLE_HEADER_SIZE) #define COVERAGE_HORIZONTAL 0x1 #define COVERAGE_MINIMUM 0x2 @@ -92,8 +95,8 @@ * TODO: support multiple subtables * TODO: respect header flags */ -KernTable::KernTable(const LETableReference &table, LEErrorCode &success) - : pairs(table, success), pairsSwapped(NULL), fTable(table) +KernTable::KernTable(const LETableReference& base, LEErrorCode &success) + : pairs(), pairsSwapped(NULL), fTable(base) { if(LE_FAILURE(success) || (fTable.isEmpty())) { #if DEBUG @@ -106,7 +109,7 @@ #if DEBUG // dump first 32 bytes of header for (int i = 0; i < 64; ++i) { - fprintf(stderr, "%0.2x ", ((const char*)tableData)[i]&0xff); + fprintf(stderr, "%0.2x ", ((const char*)header.getAlias())[i]&0xff); if (((i+1)&0xf) == 0) { fprintf(stderr, "\n"); } else if (((i+1)&0x7) == 0) { @@ -140,7 +143,14 @@ #endif if(LE_SUCCESS(success) && nPairs>0) { - pairs.setToOffsetInParent(table, KERN_SUBTABLE_0_HEADER_SIZE, nPairs, success); + // pairs is an instance member, and table is on the stack. + // set 'pairs' based on table.getAlias(). This will range check it. + + pairs = LEReferenceToArrayOf(fTable, // based on overall table + success, + (const PairInfo*)table.getAlias(), // subtable 0 + .. + KERN_SUBTABLE_0_HEADER_SIZE, // .. offset of header size + nPairs); // count } if (LE_SUCCESS(success) && pairs.isValid()) { pairsSwapped = (PairInfo*)(malloc(nPairs*sizeof(PairInfo))); @@ -152,6 +162,11 @@ fTable.getFont()->setKernPairs((void*)pairsSwapped); // store it } +#if 0 + fprintf(stderr, "coverage: %0.4x nPairs: %d pairs %p\n", coverage, nPairs, pairs.getAlias()); + fprintf(stderr, " searchRange: %d entrySelector: %d rangeShift: %d\n", searchRange, entrySelector, rangeShift); + fprintf(stderr, "[[ ignored font table entries: range %d selector %d shift %d ]]\n", SWAPW(table->searchRange), SWAPW(table->entrySelector), SWAPW(table->rangeShift)); +#endif #if DEBUG fprintf(stderr, "coverage: %0.4x nPairs: %d pairs 0x%x\n", coverage, nPairs, pairs); fprintf(stderr, @@ -208,7 +223,8 @@ le_uint32 key = storage[0]; // no need to mask off high bits float adjust = 0; - for (int i = 1, e = storage.getGlyphCount(); i < e; ++i) { + + for (int i = 1, e = storage.getGlyphCount(); LE_SUCCESS(success)&& i < e; ++i) { key = key << 16 | (storage[i] & 0xffff); // argh, to do a binary search, we need to have the pair list in sorted order diff -r 010dc791dc14 -r dd9d3f378968 src/share/native/sun/font/layout/LETableReference.h --- a/src/share/native/sun/font/layout/LETableReference.h Mon Apr 15 23:39:14 2013 +0100 +++ b/src/share/native/sun/font/layout/LETableReference.h Mon Apr 29 14:59:40 2013 +0100 @@ -1,4 +1,5 @@ /* + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -20,7 +21,6 @@ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. - * */ /* @@ -52,7 +52,7 @@ * defined in OpenTypeUtilities.cpp * @internal */ -U_INTERNAL void U_EXPORT2 _debug_LETableReference(const char *f, int l, const char *msg, const LETableReference *what, const void *ptr, size_t len); +extern void _debug_LETableReference(const char *f, int l, const char *msg, const LETableReference *what, const void *ptr, size_t len); #define LE_DEBUG_TR(x) _debug_LETableReference(__FILE__, __LINE__, x, this, NULL, 0); #define LE_DEBUG_TR3(x,y,z) _debug_LETableReference(__FILE__, __LINE__, x, this, (const void*)y, (size_t)z); @@ -204,18 +204,6 @@ return fLength; } - le_bool isSubsetOf(const LETableReference& base) const { - if(this == &base) return true; - if(fStart < base.fStart) return false; - if(base.hasBounds()) { - if(fStart >= base.fStart + base.fLength) return false; - if(hasBounds()) { - if(fStart + fLength > base.fStart + base.fLength) return false; - } - } - return true; - } - /** * Change parent link to another */ @@ -278,6 +266,12 @@ * dereferencing NULL is valid here because we never actually dereference it, just inside sizeof. */ #define LE_VAR_ARRAY(x,y) template<> inline size_t LETableVarSizer::getSize() { return sizeof(x) - (sizeof(((const x*)0)->y)); } +/** + * \def LE_CORRECT_SIZE + * @param x type (T) + * @param y fixed size for T + */ +#define LE_CORRECT_SIZE(x,y) template<> inline size_t LETableVarSizer::getSize() { return y; } /** * Open a new entry based on an existing table @@ -338,15 +332,7 @@ using LETableReference::getAlias; const T *getAlias(le_uint32 i, LEErrorCode &success) const { - if(LE_SUCCESS(success)&& i"); return (const T*)fStart; } @@ -377,46 +363,6 @@ LE_TRACE_TR("INFO: null RTAO") } - /** - * set this to point within our fParent, but based on 'base' as a subtable. - */ - void setToOffsetInParent(const LETableReference& base, size_t offset, le_uint32 count, LEErrorCode &success) { -LE_TRACE_TR("INFO: sTOIP") - if(LE_FAILURE(success)) return; - if(!fParent->isSubsetOf(base)) { // Ensure that 'base' is containable within our parent. - clear(); // otherwise, it's not a subtable of our parent. - LE_DEBUG_TR("setToOffsetInParents called on non subsets"); - success = LE_ILLEGAL_ARGUMENT_ERROR; return; - } - size_t baseOffset = fParent->ptrToOffset(((const le_uint8*)base.getAlias())+offset, success); - if(LE_FAILURE(success)) return; // base was outside of parent's range - if(fParent->hasBounds()) { - if((baseOffset >= fParent->getLength()) || // start off end of parent - (baseOffset+(count*LETableVarSizer::getSize()) >= fParent->getLength()) || // or off end of parent - count > LE_UINTPTR_MAX/LETableVarSizer::getSize()) { // or more than would fit in memory - LE_DEBUG_TR("setToOffsetInParent called with bad length"); - success = LE_INDEX_OUT_OF_BOUNDS_ERROR; - clear(); - return; // start would go off end of parent - } - } - fStart = (const le_uint8*)(fParent->getAlias()) + baseOffset; - //fLength = count*LETableVarSizer::getSize(); - no- do not shrink fLength. - if(fParent->hasBounds()) { - fLength = (fParent->getLength() - (fStart-(const le_uint8*)fParent->getAlias())); // reduces fLength accordingly. - } else { - fLength = LE_UINTPTR_MAX; // unbounded - } - if((fStart < fParent->getAlias()) || - (hasBounds()&&(fStart+fLength < fStart))) { // wrapped - LE_DEBUG_TR("setToOffsetInParent called with bad length"); - success = LE_INDEX_OUT_OF_BOUNDS_ERROR; - clear(); - return; // start would go off end of parent - } - fCount = count; - } - private: le_uint32 fCount; }; diff -r 010dc791dc14 -r dd9d3f378968 test/java/awt/font/TextLayout/TestKerning.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/java/awt/font/TextLayout/TestKerning.java Mon Apr 29 14:59:40 2013 +0100 @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + * @summary Test Kerning is working. + * @bug 8009530 + */ + +import java.applet.*; +import java.awt.*; +import java.awt.event.*; +import java.awt.font.*; +import java.util.Map; +import java.util.HashMap; +import java.util.Locale; + +public class TestKerning extends Applet { + private Panel panel; + + static public void main(String[] args) { +System.out.println(System.getProperty("os.name")); + + Applet test = new TestKerning(); + test.init(); + test.start(); + + Frame f = new Frame("Test Kerning"); + f.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + f.add("Center", test); + f.pack(); + f.setVisible(true); + } + + public Dimension getPreferredSize() { + return new Dimension(500, 200); + } + + public Dimension getMaximumSize() { + return getPreferredSize(); + } + + private static final String testString = "To WAVA 1,45 office glyph."; + + public void paint(Graphics g) { + Graphics2D g2d = (Graphics2D)g; + Font f = new Font("Arial", Font.PLAIN, 36); + // testing Arial on Solaris. + if (!("SunOS".equals(System.getProperty("os.name")))) { + return; + } + if (!("Arial".equals(f.getFamily(Locale.ENGLISH)))) { + return; + } + Map m = new HashMap(); + m.put(TextAttribute.KERNING, TextAttribute.KERNING_ON); + Font kf = f.deriveFont(m); + g.setFont(f); + FontMetrics fm1 = g.getFontMetrics(); + int sw1 = fm1.stringWidth(testString); + g.drawString(testString, 10, 50); + g.setFont(kf); + FontMetrics fm2 = g.getFontMetrics(); + int sw2 = fm2.stringWidth(testString); + g.drawString(testString, 10, 90); + if (sw1 == sw2) { + System.out.println(sw1+" " + sw2); + throw new RuntimeException("No kerning"); + } + } +} From jfabriko at redhat.com Mon Apr 29 07:09:21 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Mon, 29 Apr 2013 16:09:21 +0200 Subject: [rfc][icedtea-web] - awt - made initialisation method more scalable In-Reply-To: <517E77E5.6000007@redhat.com> References: <517E77E5.6000007@redhat.com> Message-ID: <1367244561.1751.1.camel@jana-2-174.nrt.redhat.com> Ok, seems good and does the same as the original method. Only too many spaces for one tab in (captureScreenAndFindAppletByIconTryKTimes), Jana On Mon, 2013-04-29 at 15:38 +0200, Jiri Vanek wrote: > Hi! > I think sometimes the screanshot is already initialised, and still it is worthy to use AwtHelper. So > I split the your original initialisation code to more methods. > Is it ok? > > J. From jvanek at icedtea.classpath.org Mon Apr 29 07:24:21 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 29 Apr 2013 14:24:21 +0000 Subject: /hg/icedtea-web: Modularised initialization of AwtHelper and imp... Message-ID: changeset e34db561b7b9 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e34db561b7b9 author: Jiri Vanek date: Mon Apr 29 16:24:37 2013 +0200 Modularised initialization of AwtHelper and improoved performance of ImageSeeker. Added masking to ImageSeeker diffstat: ChangeLog | 20 ++ tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 6 +- tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java | 36 +++- tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java | 77 ++++++++- 4 files changed, 120 insertions(+), 19 deletions(-) diffs (192 lines): diff -r 105f8cb6d988 -r e34db561b7b9 ChangeLog --- a/ChangeLog Mon Apr 29 15:29:46 2013 +0200 +++ b/ChangeLog Mon Apr 29 16:24:37 2013 +0200 @@ -1,3 +1,23 @@ +2013-04-29 Jiri Vanek + + More granular initialization of AwtHelper + * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: added + (executeBrowser) which can work upon fully constructed url + * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: + (captureScreenAndFindAppletByIconTryKTimes) split to three: + (captureScreenAndFindAppletByIconTryKTimes) - unchanged, now using following + (initialiseOnScreenshot) initialize from given buffered image, creating area + (initialiseOnScreenshotAndArea) initialize from two given buffered images + +2013-04-29 Jiri Vanek + + Improved performance of scanning images, added masking of images + * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java: + (findExactImage) now using masks and is iterating over rows + (getMaskImage) new method to visualize mask + (getMask) new method to create mask + (getPixels) method to extract pixels from image to int array + 2013-04-29 Jana Fabrikova * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: diff -r 105f8cb6d988 -r e34db561b7b9 tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java --- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Mon Apr 29 15:29:46 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java Mon Apr 29 16:24:37 2013 +0200 @@ -598,7 +598,11 @@ } public ProcessResult executeBrowser(List otherargs, String resource) throws Exception { - ProcessWrapper rpw = new ProcessWrapper(getBrowserLocation(), otherargs, getUrlUponThisInstance(resource)); + return executeBrowser(otherargs, getUrlUponThisInstance(resource)); + } + + public ProcessResult executeBrowser(List otherargs, URL url) throws Exception { + ProcessWrapper rpw = new ProcessWrapper(getBrowserLocation(), otherargs, url); rpw.setReactingProcess(getCurrentBrowser());//current browser may be null, but it does not metter return rpw.execute(); } diff -r 105f8cb6d988 -r e34db561b7b9 tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 15:29:46 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java Mon Apr 29 16:24:37 2013 +0200 @@ -354,24 +354,42 @@ int count = 0; appletFound = false; while ((count < K) && !appletFound) { - robot.delay(defaultWaitForApplet); - screenshot = robot.createScreenCapture( new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() ) ); - screenshotTaken = true; - actionArea = ComponentFinder.findWindowByIcon(icon, iconPosition, width, height, screenshot); - if (ImageSeeker.isRectangleValid(actionArea)) { - appletFound = true; - } - count++; + robot.delay(defaultWaitForApplet); + try { + screenshot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); + initialiseOnScreenshot(icon, iconPosition, width, height, screenshot); + } catch (ComponentNotFoundException ex) { + //keeping silent and try more-times + } + count++; } if (ImageSeeker.isRectangleValid(actionArea)) { appletFound = true; } else { - throw new ComponentNotFoundException("Applet not found in the screenshot!"); + throw new ComponentNotFoundException("Object not found in the screenshot!"); } } + public void initialiseOnScreenshot(BufferedImage icon, Point iconPosition, int width, int height, BufferedImage screenshot) throws ComponentNotFoundException { + Rectangle r = ComponentFinder.findWindowByIcon(icon, iconPosition, width, height, screenshot); + initialiseOnScreenshotAndArea(screenshot, r); + + } + + public void initialiseOnScreenshotAndArea(BufferedImage screenshot, Rectangle actionArea) throws ComponentNotFoundException { + this.screenshot = screenshot; + screenshotTaken = true; + this.actionArea = actionArea; + if (ImageSeeker.isRectangleValid(actionArea)) { + appletFound = true; + } else { + throw new ComponentNotFoundException("set invalid area!"); + } + } + + /** * auxiliary method writeAppletScreen for writing Buffered image into png * diff -r 105f8cb6d988 -r e34db561b7b9 tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java --- a/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java Mon Apr 29 15:29:46 2013 +0200 +++ b/tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ImageSeeker.java Mon Apr 29 16:24:37 2013 +0200 @@ -50,17 +50,28 @@ return findExactImage(marker, screen, new Rectangle(0,0,screen.getWidth(), screen.getHeight())); } - public static Rectangle findExactImage(BufferedImage marker, BufferedImage screen, Rectangle actionArea){ - Rectangle result = new Rectangle(0,0,0,0); + public static Rectangle findExactImage(BufferedImage marker /*usually small*/, BufferedImage screen, Rectangle actionArea) { + Rectangle result = new Rectangle(0, 0, 0, 0); boolean found = false; boolean ok = true; - - for(int x = actionArea.x; (x < (actionArea.x + actionArea.width - marker.getWidth()) ) && !found; x++){ - for(int y= actionArea.y; (y < (actionArea.y + actionArea.height - marker.getHeight()) ) && !found; y++){ - - for(int mx = 0; (mx < marker.getWidth()) && ok; mx++){ - for(int my = 0; (my < marker.getHeight()) && ok; my++){ - if(marker.getRGB(mx, my) != screen.getRGB(x+mx,y+my)){ + //to filter out values with alpha + boolean[][] mask = getMask(marker); + //accessing those too often, copying + int[][] markerPixels = getPixels(marker); + int mw = marker.getWidth(); + int mh = marker.getHeight(); + for (int y = actionArea.y; (y < (actionArea.y + actionArea.height - marker.getHeight())) && !found; y++) { + for (int x = actionArea.x; (x < (actionArea.x + actionArea.width - marker.getWidth())) && !found; x++) { + + + for (int my = 0; (my < mh) && ok; my++) { + for (int mx = 0; (mx < mw) && ok; mx++) { + + //ignore masked (having alpha) values + if (!mask[mx][my]) { + continue; + } + if (markerPixels[mx][my] != screen.getRGB(x + mx, y + my)) { ok = false; } } @@ -325,4 +336,52 @@ return (r.width != 0)&&(r.height != 0)&&(r.x != Integer.MIN_VALUE)&&(r.y != Integer.MIN_VALUE); } + public static BufferedImage getMaskImage(BufferedImage icon) { + int w = icon.getWidth(); + int h = icon.getHeight(); + boolean[][] b = getMask(icon); + BufferedImage mask = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_BINARY); + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + if (b[x][y]) { + mask.setRGB(x, y, Color.white.getRGB()); + } else { + mask.setRGB(x, y, Color.black.getRGB()); + } + } + } + return mask; + } + + public static boolean[][] getMask(BufferedImage icon) { + int w = icon.getWidth(); + int h = icon.getHeight(); + boolean[][] r = new boolean[w][h]; + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + int i = icon.getRGB(x, y); + int alpha = (i >> 24) & 0xff; + if (alpha == 255) { + r[x][y] = true; + } else { + r[x][y] = false; + } + } + } + return r; + } + + public static int[][] getPixels(BufferedImage icon) { + int w = icon.getWidth(); + int h = icon.getHeight(); + int[][] r = new int[w][h]; + for (int x = 0; x < w; x++) { + for (int y = 0; y < h; y++) { + int i = icon.getRGB(x, y); + //remove mask? not yet... + r[x][y] = i; + } + } + return r; + } } From ptisnovs at redhat.com Mon Apr 29 07:38:59 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 29 Apr 2013 10:38:59 -0400 (EDT) Subject: Reviewer needed: three new JTreg ComponentOrientation-related tests for IcedTea6 HEAD Message-ID: <1006831237.4280163.1367246339352.JavaMail.root@redhat.com> Hi everyone, I'd like to add three new JTreg tests into IcedTea6 HEAD. These tests check the basic behavior of ComponentOrientation subsystem (this is part of IT which is AFAIK not thoroughly tested ATM and new patches/backports could break this part w/o alerts). FYI: I'm also going to ask for inclusion of these three test into OpenJDK8 HEAD and then backporting them into OpenJDK7 too. ChangeLog entry: 2013-04-29 Pavel Tisnovsky * Makefile.am: (ICEDTEA_PATCHES): Added new patch. * patches/componentOrientationTests.patch: Three JTreg tests for checking ComponentOrientation subsystem behaviour. Can anybody please review this change? Thank you in advance, Pavel Tisnovsky -------------- next part -------------- A non-text attachment was scrubbed... Name: hg.diff Type: text/x-patch Size: 10416 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/6d774faa/hg.diff From jvanek at redhat.com Mon Apr 29 09:03:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Apr 2013 18:03:38 +0200 Subject: [rfc][icedtea-web] fixfor portalbank.no Message-ID: <517E99DA.2080604@redhat.com> Hi! Today I accidentally stumbled accross another regression in HEAD portalbank.no donot implements HTTP requests but provides desired jars on GET. So I made (findBestUrl) less strict. J. * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) now trying GET after each error request of HEAD -------------- next part -------------- A non-text attachment was scrubbed... Name: portalankRegression.diff Type: text/x-patch Size: 5210 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/e0232db9/portalankRegression.diff From omajid at redhat.com Mon Apr 29 09:15:37 2013 From: omajid at redhat.com (Omair Majid) Date: Mon, 29 Apr 2013 12:15:37 -0400 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517E99DA.2080604@redhat.com> References: <517E99DA.2080604@redhat.com> Message-ID: <517E9CA9.9010907@redhat.com> On 04/29/2013 12:03 PM, Jiri Vanek wrote: > Hi! > > Today I accidentally stumbled accross another regression in HEAD > portalbank.no donot implements HTTP requests but provides desired jars > on GET. > So I made (findBestUrl) less strict. The change itself looks okay to me. We are dealing with more-or-less misconfigured servers here, so I guess we should not be too concerned about optimizing this case. A fallback to GET seems appropriate. > * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) > now trying GET after each error request of HEAD Please complete the ChangeLog ;) > @@ -910,7 +911,7 @@ > > int responseCode = getUrlResponseCode(url, requestProperties, "HEAD"); > > - if (responseCode == HttpURLConnection.HTTP_NOT_IMPLEMENTED ) { > + if (responseCode < 200 || responseCode >= 300) { > System.err.println("NOTE: The server does not appear to support HEAD requests, falling back to GET requests."); The error message is not very accurate now. We are going through a list of URLs, searching for the best one. It's likely the URLs will not exist and so we will probably get 404 errors. The message can be very misleading in that case. > +public class HttpUtils { Could you add a unit test for this? Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From adomurad at redhat.com Mon Apr 29 09:20:56 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 29 Apr 2013 12:20:56 -0400 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517E99DA.2080604@redhat.com> References: <517E99DA.2080604@redhat.com> Message-ID: <517E9DE8.1080401@redhat.com> On 04/29/2013 12:03 PM, Jiri Vanek wrote: > Hi! > > Today I accidentally stumbled accross another regression in HEAD > portalbank.no donot implements HTTP requests but provides desired jars > on GET. > So I made (findBestUrl) less strict. > > > J. > > * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) > now trying GET after each error request of HEAD Looks good, thanks for the fix! One nit (I noted this on IRC) please update the comment for the utility method to something like 'Ensure the HTTP input stream is fully read, required for correct behaviour with HTTP requests.' Good to push then. -Adam From adomurad at redhat.com Mon Apr 29 09:31:26 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 29 Apr 2013 12:31:26 -0400 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517E9DE8.1080401@redhat.com> References: <517E99DA.2080604@redhat.com> <517E9DE8.1080401@redhat.com> Message-ID: <517EA05E.5080504@redhat.com> On 04/29/2013 12:20 PM, Adam Domurad wrote: > On 04/29/2013 12:03 PM, Jiri Vanek wrote: >> Hi! >> >> Today I accidentally stumbled accross another regression in HEAD >> portalbank.no donot implements HTTP requests but provides desired >> jars on GET. >> So I made (findBestUrl) less strict. >> >> >> J. >> >> * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) >> now trying GET after each error request of HEAD > > Looks good, thanks for the fix! > > One nit (I noted this on IRC) please update the comment for the > utility method to something like > 'Ensure the HTTP input stream is fully read, required for correct > behaviour with HTTP requests.' > > Good to push then. Sorry, once you respond to Omair's concerns of course. > > -Adam From adomurad at redhat.com Mon Apr 29 12:15:22 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 29 Apr 2013 15:15:22 -0400 Subject: [rfc][icedtea-web] Remove wrongly 'undummied' JSObject->Java array code from MethodOverloadResolver Message-ID: <517EC6CA.3050701@redhat.com> So part of what motivated me to rewrite the old MethodOverloadResolver was the fact that I noticed it had a dummy JSObject defined at the bottom of the code, and it was mistakenly using that. It puzzled me why this wasn't observable. Well, it seems it is because the only code path that relied on JSObject itself was incorrect. Thanks to Jana for the thorough tests that caught this! It looks like we do not support conversion of JSObject to a Java array in method signatures. This will bring the code back to its old functionality. There is a want for the real fix, but I think we should do a fix in a separate step. Happy hacking, -Adam -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/a0ac1b9a/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: remove-incorrect-method-overload-resolver-code.patch Type: text/x-patch Size: 2575 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/a0ac1b9a/remove-incorrect-method-overload-resolver-code.patch From doko at ubuntu.com Mon Apr 29 14:00:11 2013 From: doko at ubuntu.com (Matthias Klose) Date: Mon, 29 Apr 2013 23:00:11 +0200 Subject: some 32bit builds broken in icedtea 2.3.9 Message-ID: <517EDF5B.7000505@ubuntu.com> at least on some 32bit platforms, icedtea builds are broken: see https://buildd.debian.org/status/package.php?p=openjdk-7 the i386 and s390 build logs. this is caused by the changes below: --- build/openjdk/jdk/make/common/shared/Platform.gmk +++ build/openjdk/jdk/make/common/shared/Platform.gmk @@ -537,7 +537,7 @@ else \ echo "false"; \ fi) - MAX_VM_MEMORY := 512 + MAX_VM_MEMORY := 1536 MIN_VM_MEMORY := $(MAX_VM_MEMORY) else MB_OF_MEMORY := unknown --- build/openjdk/jdk/make/docs/Makefile 2013-04-29 21:06:38.450777732 +0200 +++ build/openjdk/jdk/make/docs/Makefile 2013-04-29 21:22:19.085051363 +0200 @@ -69,11 +69,11 @@ # NOTE: javadoc will not complete without these larger settings. # WARNING: This could cause thrashing on low memory machines. ifeq ($(ARCH_DATA_MODEL),64) - MAX_VM_MEMORY = 1536 + MAX_VM_MEMORY = 1792 else ifeq ($(ARCH),universal) - MAX_VM_MEMORY = 1536 + MAX_VM_MEMORY = 1792 else - MAX_VM_MEMORY = $(shell if [ $(MIN_VM_MEMORY) -gt 768 ]; then echo $(MIN_VM_MEMORY); else echo 768; fi) + MAX_VM_MEMORY = 768 endif # List of all possible directories for javadoc to look for sources building the docs on i386: .../java ... -client -Xmx768m -Xms1536m ... Error occurred during initialization of VM Incompatible minimum and maximum heap sizes specified make[5]: *** [/build/buildd-openjdk-7_7u21-2.3.9-2-i386-pV_IFD/openjdk-7-7u21-2.3.9/build/openjdk.build/docs/api/index.html] Error 1 this is caused by re-setting MAX_VM_MEMORY without re-setting MIN_VM_MEMORY in openjdk/jdk/make/docs/Makefile. proposed fix: MIN_VM_MEMORY := $(MAX_VM_MEMORY) MIN_VM_MEMORY should not be a simply expanded variable in openjdk/jdk/make/common/shared/Platform.gmk, so that the re-set affects MIN_VM_MEMORY too. Just use: MIN_VM_MEMORY = $(MAX_VM_MEMORY) This build failure did only show on Debian, not Ubuntu, however I couldn't yet find out why it did fail on the former, while it did succeed on the latter. the zero s390 build failure is caused by increasing MAX_VM_MEMORY by 1G, which is two high on s390. afaics the highest value the s390 vm does accept is about 768+128m. Can somebody else verify this on another s390 machine? Setting this to 768 for the s390 build lets the build succeed. Why was this value changed in the first place? which platform does require a 300% memory increase for the build? Matthias From adomurad at redhat.com Mon Apr 29 14:00:09 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 29 Apr 2013 17:00:09 -0400 Subject: [rfc][icedtea-web] Fix most cases of error splash not appearing Message-ID: <517EDF59.7030305@redhat.com> Hi all. I am disappointed a bit that I do not know exactly *why* this patch has the effect that it does, beyond removing a difference between the error path (ie, LaunchException occurs) and the normal code-path. With this patch applied I always see the error splash on my desktop, and rarely don't see it on my laptop. I will investigate further but I think it is worth including as a harmless patch. 2013-XX-XX Adam Domurad Ensure that PluginAppletviewer is resized in case of error. This fixes most of the cases of the error splash screen not appearing. * plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java (createPanel): Resize earlier, before erroring out. * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (PluginAppletViewer): Set size, remove fixme. Apologies for 'magic' patch, -Adam -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/d478ebce/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-splash-not-appearing.patch Type: text/x-patch Size: 5498 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130429/d478ebce/fix-splash-not-appearing.patch From doko at ubuntu.com Mon Apr 29 17:37:37 2013 From: doko at ubuntu.com (Matthias Klose) Date: Tue, 30 Apr 2013 02:37:37 +0200 Subject: some 32bit builds broken in icedtea 2.3.9 In-Reply-To: <517EDF5B.7000505@ubuntu.com> References: <517EDF5B.7000505@ubuntu.com> Message-ID: <517F1251.90008@ubuntu.com> Am 29.04.2013 23:00, schrieb Matthias Klose: > at least on some 32bit platforms, icedtea builds are broken: ok, this is because cacao was built as an additional VM, and the cacao/memory.patch was applied. From ptisnovs at icedtea.classpath.org Tue Apr 30 00:57:53 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 30 Apr 2013 07:57:53 +0000 Subject: /hg/rhino-tests: Updated four tests in BindingsClassTest for (Op... Message-ID: changeset e74a55b0a132 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=e74a55b0a132 author: Pavel Tisnovsky date: Tue Apr 30 10:01:10 2013 +0200 Updated four tests in BindingsClassTest for (Open)JDK8 API: getField, getDeclaredField, getFields and getDeclaredFields. diffstat: ChangeLog | 6 +++ src/org/RhinoTests/BindingsClassTest.java | 62 +++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 4 deletions(-) diffs (113 lines): diff -r 1b9cfd28c6e2 -r e74a55b0a132 ChangeLog --- a/ChangeLog Mon Apr 29 10:25:19 2013 +0200 +++ b/ChangeLog Tue Apr 30 10:01:10 2013 +0200 @@ -1,3 +1,9 @@ +2013-04-30 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Updated four tests in BindingsClassTest for (Open)JDK8 API: + getField, getDeclaredField, getFields and getDeclaredFields. + 2013-04-29 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r 1b9cfd28c6e2 -r e74a55b0a132 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Mon Apr 29 10:25:19 2013 +0200 +++ b/src/org/RhinoTests/BindingsClassTest.java Tue Apr 30 10:01:10 2013 +0200 @@ -440,9 +440,22 @@ }; final String[] fieldsThatShouldExist_jdk7 = { }; + final String[] fieldsThatShouldExist_jdk8 = { + }; // get the right array of field signatures - final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + String[] fieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + fieldsThatShouldExist = fieldsThatShouldExist_jdk6; + break; + case 7: + fieldsThatShouldExist = fieldsThatShouldExist_jdk7; + break; + case 8: + fieldsThatShouldExist = fieldsThatShouldExist_jdk8; + break; + } // get all fields Field[] fields = this.bindingsClass.getFields(); @@ -467,10 +480,23 @@ }; final String[] declaredFieldsThatShouldExist_jdk7 = { }; + final String[] declaredFieldsThatShouldExist_jdk8 = { + }; // get the right array of field signatures // following fields should be declared - final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + String[] declaredFieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk6; + break; + case 7: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk7; + break; + case 8: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk8; + break; + } // get all declared fields Field[] declaredFields = this.bindingsClass.getDeclaredFields(); @@ -495,8 +521,21 @@ }; final String[] fieldsThatShouldExist_jdk7 = { }; + final String[] fieldsThatShouldExist_jdk8 = { + }; - final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + String[] fieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + fieldsThatShouldExist = fieldsThatShouldExist_jdk6; + break; + case 7: + fieldsThatShouldExist = fieldsThatShouldExist_jdk7; + break; + case 8: + fieldsThatShouldExist = fieldsThatShouldExist_jdk8; + break; + } // check if all required fields really exists for (String fieldThatShouldExists : fieldsThatShouldExist) { @@ -522,8 +561,23 @@ }; final String[] declaredFieldsThatShouldExist_jdk7 = { }; + final String[] declaredFieldsThatShouldExist_jdk8 = { + }; - final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get the right array of field signatures + // following fields should be declared + String[] declaredFieldsThatShouldExist = null; + switch (getJavaVersion()) { + case 6: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk6; + break; + case 7: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk7; + break; + case 8: + declaredFieldsThatShouldExist = declaredFieldsThatShouldExist_jdk8; + break; + } // check if all required declared fields really exists for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { From ptisnovs at icedtea.classpath.org Tue Apr 30 01:34:59 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 30 Apr 2013 08:34:59 +0000 Subject: /hg/gfx-test: Added eight new tests into BitBltBasicTests test s... Message-ID: changeset b1ac76ce1c1a in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=b1ac76ce1c1a author: Pavel Tisnovsky date: Tue Apr 30 10:37:55 2013 +0200 Added eight new tests into BitBltBasicTests test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 120 ++++++++++++++++++++++- 2 files changed, 124 insertions(+), 1 deletions(-) diffs (142 lines): diff -r 9051b1fb2fa2 -r b1ac76ce1c1a ChangeLog --- a/ChangeLog Mon Apr 29 10:13:34 2013 +0200 +++ b/ChangeLog Tue Apr 30 10:37:55 2013 +0200 @@ -1,3 +1,8 @@ +2013-04-30 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Added eight new tests into BitBltBasicTests test suite. + 2013-04-29 Pavel Tisnovsky * src/org/gfxtest/testsuites/ClippingCircleByConvexPolygonalShape.java: diff -r 9051b1fb2fa2 -r b1ac76ce1c1a src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Mon Apr 29 10:13:34 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Apr 30 10:37:55 2013 +0200 @@ -3731,7 +3731,125 @@ return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_RGB); } - + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeIntARGB_Pre(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientBufferedImageTypeUshortGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY); + } + + /** + * Test basic BitBlt operation for horizontal blue gradient buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalBlueGradientBufferedImageType3ByteBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalBlueGradientImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR); + } + + /** + * Test basic BitBlt operation for horizontal blue gradient buffered image with type TYPE_4BYTE_ABGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalBlueGradientBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalBlueGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR); + } + + /** + * Test basic BitBlt operation for horizontal blue gradient buffered image with type TYPE_4BYTE_ABGR_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalBlueGradientBufferedImageType4ByteABGR_PRE(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalBlueGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE); + } /** * Test basic BitBlt operation for horizontal blue gradient buffered image From jvanek at redhat.com Tue Apr 30 02:09:21 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Apr 2013 11:09:21 +0200 Subject: Reviewer needed: three new JTreg ComponentOrientation-related tests for IcedTea6 HEAD In-Reply-To: <1006831237.4280163.1367246339352.JavaMail.root@redhat.com> References: <1006831237.4280163.1367246339352.JavaMail.root@redhat.com> Message-ID: <517F8A41.5060307@redhat.com> On 04/29/2013 04:38 PM, Pavel Tisnovsky wrote: > Hi everyone, > > I'd like to add three new JTreg tests into IcedTea6 HEAD. These tests > check the basic behavior of ComponentOrientation subsystem (this is part > of IT which is AFAIK not thoroughly tested ATM and new patches/backports > could break this part w/o alerts). > > FYI: I'm also going to ask for inclusion of these three test into > OpenJDK8 HEAD and then backporting them into OpenJDK7 too. > > ChangeLog entry: > > 2013-04-29 Pavel Tisnovsky > > * Makefile.am: > (ICEDTEA_PATCHES): Added new patch. > * patches/componentOrientationTests.patch: > Three JTreg tests for checking ComponentOrientation subsystem behaviour. > > > Can anybody please review this change? > > Thank you in advance, > Pavel Tisnovsky > Hi! Maybe more detailed changelog (taking care of all three files in the patch may be worthy) Although all three files compile fine, they never stops when running from commandline. I suspect swing thread is keep running. Can you please fix it? java version "1.7.0_19" OpenJDK Runtime Environment (fedora-2.3.9.3.fc18-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) J. From ptisnovs at redhat.com Tue Apr 30 03:03:24 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 30 Apr 2013 06:03:24 -0400 (EDT) Subject: Reviewer needed: three new JTreg ComponentOrientation-related tests for IcedTea6 HEAD In-Reply-To: <517F8A41.5060307@redhat.com> References: <1006831237.4280163.1367246339352.JavaMail.root@redhat.com> <517F8A41.5060307@redhat.com> Message-ID: <1339670520.4932744.1367316204623.JavaMail.root@redhat.com> ----- Jiri Vanek wrote: > On 04/29/2013 04:38 PM, Pavel Tisnovsky wrote: > > Hi everyone, > > > > I'd like to add three new JTreg tests into IcedTea6 HEAD. These tests > > check the basic behavior of ComponentOrientation subsystem (this is part > > of IT which is AFAIK not thoroughly tested ATM and new patches/backports > > could break this part w/o alerts). > > > > FYI: I'm also going to ask for inclusion of these three test into > > OpenJDK8 HEAD and then backporting them into OpenJDK7 too. > > > > ChangeLog entry: > > > > 2013-04-29 Pavel Tisnovsky > > > > * Makefile.am: > > (ICEDTEA_PATCHES): Added new patch. > > * patches/componentOrientationTests.patch: > > Three JTreg tests for checking ComponentOrientation subsystem behaviour. > > > > > > Can anybody please review this change? > > > > Thank you in advance, > > Pavel Tisnovsky > > > > Hi! > Maybe more detailed changelog (taking care of all three files in the patch may be worthy) > Although all three files compile fine, they never stops when running from commandline. > I suspect swing thread is keep running. > Can you please fix it? > Hi Jiri, you are right that there should be problem when tests are started directly from CLI and not indirectly using JTreg tool. I've fixed all three tests and checked if it works correctly. I've also changed one test to work correctly in Gnome Shell and similar "modern" desktop environments :-) New ChangeLog entry: 2013-04-30 Pavel Tisnovsky * Makefile.am: (ICEDTEA_PATCHES): Added new patch. * patches/componentOrientationTests.patch: Patch containing three new JTreg tests ComponentOrientationTest.java, ComponentPlacementTest.java and ComponentSizeTest.java. These tests check if ComponentOrientation subsystem behaviour is correct even when right-to-left orientation is used. Ok now? Cheers, Pavel > > java version "1.7.0_19" > OpenJDK Runtime Environment (fedora-2.3.9.3.fc18-x86_64) > OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) > > J. > -------------- next part -------------- A non-text attachment was scrubbed... Name: hg.diff Type: text/x-patch Size: 10978 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/457ab248/hg.diff From jvanek at redhat.com Tue Apr 30 04:05:08 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Apr 2013 13:05:08 +0200 Subject: Reviewer needed: three new JTreg ComponentOrientation-related tests for IcedTea6 HEAD In-Reply-To: <1339670520.4932744.1367316204623.JavaMail.root@redhat.com> References: <1006831237.4280163.1367246339352.JavaMail.root@redhat.com> <517F8A41.5060307@redhat.com> <1339670520.4932744.1367316204623.JavaMail.root@redhat.com> Message-ID: <517FA564.5040900@redhat.com> On 04/30/2013 12:03 PM, Pavel Tisnovsky wrote: > ----- Jiri Vanek wrote: >> On 04/29/2013 04:38 PM, Pavel Tisnovsky wrote: >>> Hi everyone, >>> >>> I'd like to add three new JTreg tests into IcedTea6 HEAD. These tests >>> check the basic behavior of ComponentOrientation subsystem (this is part >>> of IT which is AFAIK not thoroughly tested ATM and new patches/backports >>> could break this part w/o alerts). >>> >>> FYI: I'm also going to ask for inclusion of these three test into >>> OpenJDK8 HEAD and then backporting them into OpenJDK7 too. >>> >>> ChangeLog entry: >>> >>> 2013-04-29 Pavel Tisnovsky >>> >>> * Makefile.am: >>> (ICEDTEA_PATCHES): Added new patch. >>> * patches/componentOrientationTests.patch: >>> Three JTreg tests for checking ComponentOrientation subsystem behaviour. >>> >>> >>> Can anybody please review this change? >>> >>> Thank you in advance, >>> Pavel Tisnovsky >>> >> >> Hi! >> Maybe more detailed changelog (taking care of all three files in the patch may be worthy) >> Although all three files compile fine, they never stops when running from commandline. >> I suspect swing thread is keep running. >> Can you please fix it? >> > > Hi Jiri, > > you are right that there should be problem when tests are started directly from CLI and not indirectly > using JTreg tool. I've fixed all three tests and checked if it works correctly. I've also changed > one test to work correctly in Gnome Shell and similar "modern" desktop environments :-) > > New ChangeLog entry: > > 2013-04-30 Pavel Tisnovsky > > * Makefile.am: > (ICEDTEA_PATCHES): Added new patch. > * patches/componentOrientationTests.patch: > Patch containing three new JTreg tests ComponentOrientationTest.java, > ComponentPlacementTest.java and ComponentSizeTest.java. These tests > check if ComponentOrientation subsystem behaviour is correct even > when right-to-left orientation is used. > > Ok now? ok now :) > > Cheers, > Pavel > >> >> java version "1.7.0_19" >> OpenJDK Runtime Environment (fedora-2.3.9.3.fc18-x86_64) >> OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) >> >> J. >> > From ptisnovs at icedtea.classpath.org Tue Apr 30 04:18:56 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 30 Apr 2013 11:18:56 +0000 Subject: /hg/icedtea6: Added patch containing three new JTreg tests Compo... Message-ID: changeset 3b76dff83564 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3b76dff83564 author: Pavel Tisnovsky date: Tue Apr 30 13:18:33 2013 +0200 Added patch containing three new JTreg tests ComponentOrientationTest.java, ComponentPlacementTest.java and ComponentSizeTest.java. diffstat: ChangeLog | 10 + Makefile.am | 3 +- patches/componentOrientationTests.patch | 246 ++++++++++++++++++++++++++++++++ 3 files changed, 258 insertions(+), 1 deletions(-) diffs (280 lines): diff -r 11353b3c2109 -r 3b76dff83564 ChangeLog --- a/ChangeLog Mon Apr 29 13:27:32 2013 +0200 +++ b/ChangeLog Tue Apr 30 13:18:33 2013 +0200 @@ -1,3 +1,13 @@ +2013-04-30 Pavel Tisnovsky + + * Makefile.am: + (ICEDTEA_PATCHES): Added new patch. + * patches/componentOrientationTests.patch: + Patch containing three new JTreg tests ComponentOrientationTest.java, + ComponentPlacementTest.java and ComponentSizeTest.java. These tests + check if ComponentOrientation subsystem behaviour is correct even + when right-to-left orientation is used. + 2013-04-29 Pavel Tisnovsky * Makefile.am: diff -r 11353b3c2109 -r 3b76dff83564 Makefile.am --- a/Makefile.am Mon Apr 29 13:27:32 2013 +0200 +++ b/Makefile.am Tue Apr 30 13:18:33 2013 +0200 @@ -546,7 +546,8 @@ patches/object-factory-cl-internal.patch \ patches/openjdk/8009530-icu_kern_table_support_broken.patch \ patches/textLayoutGetCharacterCount.patch \ - patches/textLayoutLimits.patch + patches/textLayoutLimits.patch \ + patches/componentOrientationTests.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 11353b3c2109 -r 3b76dff83564 patches/componentOrientationTests.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/componentOrientationTests.patch Tue Apr 30 13:18:33 2013 +0200 @@ -0,0 +1,246 @@ +diff -uN ComponentOrientation/ComponentOrientationTest.java /jck/icedtea6/openjdk/jdk/test/java/awt/ComponentOrientation/ComponentOrientationTest.java +--- openjdk.old/jdk/test/java/awt/ComponentOrientation/ComponentOrientationTest.java 2013-04-29 15:24:56.000000000 +0200 ++++ openjdk/jdk/test/java/awt/ComponentOrientation/ComponentOrientationTest.java 2013-04-29 15:24:56.000000000 +0200 +@@ -0,0 +1,77 @@ ++/* ++ * Copyright 2013 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.awt.ComponentOrientation; ++import java.awt.FlowLayout; ++import java.awt.Rectangle; ++ ++import javax.swing.JFrame; ++import javax.swing.JLabel; ++ ++/** ++ * @test ++ * @run main ComponentOrientationTest ++ * @author Pavel Tisnovsky ++ * ++ * Basic test if component orientation subsystem works properly. ++ */ ++public class ComponentOrientationTest { ++ ++ public static void main(String[] args) { ++ int[] aligns = {FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT}; ++ ++ for (int align : aligns) { ++ testComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT, align, true); ++ testComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT, align, false); ++ } ++ } ++ ++ private static void testComponentOrientation(ComponentOrientation componentOrientation, int align, boolean firstLabelBeforeSecondOne) { ++ JFrame panel = new JFrame(); ++ JLabel label1 = new JLabel("JAVA"); ++ JLabel label2 = new JLabel("JAVA"); ++ ++ panel.setLayout(new FlowLayout(align)); ++ panel.applyComponentOrientation(componentOrientation); ++ ++ panel.add(label1); ++ panel.add(label2); ++ panel.pack(); ++ ++ Rectangle rect1 = firstLabelBeforeSecondOne ? label1.getBounds() : label2.getBounds(); ++ Rectangle rect2 = firstLabelBeforeSecondOne ? label2.getBounds() : label1.getBounds(); ++ ++ // test the order of two components ++ if (rect1.x >= rect2.x) { ++ panel.dispose(); ++ throw new RuntimeException("Components are positioned in a wrong order!"); ++ } ++ if (rect1.x + rect1.width >= rect2.x) { ++ panel.dispose(); ++ throw new RuntimeException("Components are positioned on the same place!"); ++ } ++ ++ // test vertical position of two components ++ if (rect1.y != rect2.y) { ++ panel.dispose(); ++ throw new RuntimeException("Components are not positioned on the same vertical position!"); ++ } ++ panel.dispose(); ++ } ++} +diff -uN ComponentOrientation/ComponentPlacementTest.java /jck/icedtea6/openjdk/jdk/test/java/awt/ComponentOrientation/ComponentPlacementTest.java +--- openjdk.old/jdk/test/java/awt/ComponentOrientation/ComponentPlacementTest.java 2013-04-29 15:24:56.000000000 +0200 ++++ openjdk/jdk/test/java/awt/ComponentOrientation/ComponentPlacementTest.java 2013-04-29 15:24:56.000000000 +0200 +@@ -0,0 +1,79 @@ ++/* ++ * Copyright 2013 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.awt.ComponentOrientation; ++import java.awt.FlowLayout; ++import java.awt.Rectangle; ++ ++import javax.swing.JFrame; ++import javax.swing.JLabel; ++ ++/** ++ * @test ++ * @run main ComponentPlacementTest ++ * @author Pavel Tisnovsky ++ * ++ * Basic test if component orientation and component placement subsystem works properly. ++ */ ++public class ComponentPlacementTest ++{ ++ public static void main(String[] args) { ++ int[] aligns = {FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT}; ++ for (int align : aligns) { ++ testComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT, align, true); ++ testComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT, align, false); ++ } ++ } ++ ++ private static void testComponentOrientation(ComponentOrientation componentOrientation, int align, boolean firstLabelBeforeSecondOne) { ++ JFrame panel = new JFrame(); ++ JLabel label1 = new JLabel("JAVA1"); ++ JLabel label2 = new JLabel("JAVA2"); ++ ++ panel.setLayout(new FlowLayout(align)); ++ panel.applyComponentOrientation(componentOrientation); ++ ++ panel.add(label1); ++ panel.add(label2); ++ panel.pack(); ++ ++ Rectangle panelRect = panel.getBounds(); ++ Rectangle rect1 = firstLabelBeforeSecondOne ? label1.getBounds() : label2.getBounds(); ++ Rectangle rect2 = firstLabelBeforeSecondOne ? label2.getBounds() : label1.getBounds(); ++ rect1.x += panelRect.x; ++ rect1.y += panelRect.y; ++ rect2.x += panelRect.x; ++ rect2.y += panelRect.y; ++ ++ if (!panelRect.contains(rect1)) { ++ panel.dispose(); ++ throw new RuntimeException("First component is not placed inside the frame!"); ++ } ++ if (!panelRect.contains(rect2)) { ++ panel.dispose(); ++ throw new RuntimeException("Second component is not placed inside the frame!"); ++ } ++ if (!rect1.intersection(rect2).isEmpty()) { ++ panel.dispose(); ++ throw new RuntimeException("Component intersection detected!"); ++ } ++ panel.dispose(); ++ } ++ ++} +diff -uN ComponentOrientation/ComponentSizeTest.java /jck/icedtea6/openjdk/jdk/test/java/awt/ComponentOrientation/ComponentSizeTest.java +--- openjdk.old/jdk/test/java/awt/ComponentOrientation/ComponentSizeTest.java 2013-04-29 15:24:56.000000000 +0200 ++++ openjdk/jdk/test/java/awt/ComponentOrientation/ComponentSizeTest.java 2013-04-29 15:24:56.000000000 +0200 +@@ -0,0 +1,78 @@ ++/* ++ * Copyright 2013 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++import java.awt.ComponentOrientation; ++import java.awt.FlowLayout; ++import java.awt.Rectangle; ++ ++import javax.swing.JFrame; ++import javax.swing.JLabel; ++ ++/** ++ * @test ++ * @run main ComponentSizeTest ++ * @author Pavel Tisnovsky ++ * ++ * Basic test if component orientation and component placement subsystem works properly. ++ */ ++public class ComponentSizeTest ++{ ++ public static void main(String[] args) { ++ int[] aligns = {FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT}; ++ for (int align : aligns) { ++ testComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT, align, true); ++ testComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT, align, false); ++ } ++ } ++ ++ private static void testComponentOrientation(ComponentOrientation componentOrientation, int align, boolean firstLabelBeforeSecondOne) { ++ JFrame panel = new JFrame(); ++ JLabel label1 = new JLabel("JAVA"); ++ JLabel label2 = new JLabel("JAVA"); ++ ++ panel.setLayout(new FlowLayout(align)); ++ panel.applyComponentOrientation(componentOrientation); ++ ++ panel.add(label1); ++ panel.add(label2); ++ panel.pack(); ++ ++ Rectangle rect1 = firstLabelBeforeSecondOne ? label1.getBounds() : label2.getBounds(); ++ Rectangle rect2 = firstLabelBeforeSecondOne ? label2.getBounds() : label1.getBounds(); ++ ++ if (rect1.isEmpty()) { ++ panel.dispose(); ++ throw new RuntimeException("First component has zero area!"); ++ } ++ if (rect2.isEmpty()) { ++ panel.dispose(); ++ throw new RuntimeException("Second component has zero area!"); ++ } ++ if (rect1.width != rect2.width) { ++ panel.dispose(); ++ throw new RuntimeException("Components should have the same width!"); ++ } ++ if (rect1.height != rect2.height) { ++ panel.dispose(); ++ throw new RuntimeException("Components should have the same height!"); ++ } ++ panel.dispose(); ++ } ++ ++} From xranby at icedtea.classpath.org Tue Apr 30 06:48:12 2013 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 30 Apr 2013 13:48:12 +0000 Subject: /hg/icedtea: JamVM: JSR 901, 335; OpenJDK 8 selfhosting; Update ... Message-ID: changeset c9942e43a65a in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=c9942e43a65a author: Xerxes Ranby date: Tue Apr 30 18:49:27 2013 +0200 JamVM: JSR 901, 335; OpenJDK 8 selfhosting; Update to 2013-04-30 revision. 2013-04-30 Xerxes R?nby JamVM - JSR 901: VM support for method parameter reflection - JSR 335: (lambda expressions) initial hack - JVM_IsVMGeneratedMethodIx stub - Fix invokesuper check in invokespecial opcode - Do not free unprepared Miranda method code data * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2013-04-30 revision. (JAMVM_SHA256SUM): Updated. (stamps/jamvm.stamp): OpenJDK 8 --with-import-hotspot require the fake libjsig.so to be found next to the imported libjvm.so. OpenJDK 8 also require a fake lib/sa-jdi.jar to be present. (stamps/cacao.stamp): Likewise, add a fake lib/sa-jdi.jar. diffstat: ChangeLog | 17 +++++++++++++++++ Makefile.am | 8 +++++--- NEWS | 5 +++++ 3 files changed, 27 insertions(+), 3 deletions(-) diffs (77 lines): diff -r de5854f8197d -r c9942e43a65a ChangeLog --- a/ChangeLog Fri Apr 12 17:08:21 2013 +0200 +++ b/ChangeLog Tue Apr 30 18:49:27 2013 +0200 @@ -1,3 +1,20 @@ +2013-04-30 Xerxes R??nby + + JamVM + - JSR 901: VM support for method parameter reflection + - JSR 335: (lambda expressions) initial hack + - JVM_IsVMGeneratedMethodIx stub + - Fix invokesuper check in invokespecial opcode + - Do not free unprepared Miranda method code data + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2013-04-30 revision. + (JAMVM_SHA256SUM): Updated. + (stamps/jamvm.stamp): OpenJDK 8 --with-import-hotspot require + the fake libjsig.so to be found next to the imported libjvm.so. + OpenJDK 8 also require a fake lib/sa-jdi.jar to be present. + (stamps/cacao.stamp): Likewise, add a fake lib/sa-jdi.jar. + 2013-04-11 Xerxes R??nby JamVM diff -r de5854f8197d -r c9942e43a65a Makefile.am --- a/Makefile.am Fri Apr 12 17:08:21 2013 +0200 +++ b/Makefile.am Tue Apr 30 18:49:27 2013 +0200 @@ -26,8 +26,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = 10b7c81c597809b2aaf28c8243453a21c33d4af3 -JAMVM_SHA256SUM = 6cce595ee2cfcfbaa425527be9c2fa880ade7b47475925f1c4bf18b017bffffd +JAMVM_VERSION = 938504fb92e8fd2a91276a54b0a0c7be25731c19 +JAMVM_SHA256SUM = b56563270af85eefc7e2d95837b6c94f1c0d2720c579c74e5b3842357988a096 JAMVM_BASE_URL = http://icedtea.classpath.org/download/drops/jamvm JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz @@ -1721,11 +1721,12 @@ $(MAKE) ; \ $(MAKE) install mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/lib + touch $(abs_top_builddir)/jamvm/install/hotspot/lib/sa-jdi.jar mkdir -p $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server cp $(abs_top_builddir)/jamvm/install/lib/libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server ln -sf server $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/client touch $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/server/Xusage.txt - ln -sf client/libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/libjsig.so + ln -sf libjvm.so $(abs_top_builddir)/jamvm/install/hotspot/jre/lib/$(INSTALL_ARCH_DIR)/client/libjsig.so endif mkdir -p stamps touch stamps/jamvm.stamp @@ -1790,6 +1791,7 @@ --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \ $(ARCH_PREFIX) $(MAKE) -j$(PARALLEL_JOBS) install mkdir -p $(abs_top_builddir)/cacao/install/lib + touch $(abs_top_builddir)/cacao/install/hotspot/lib/sa-jdi.jar ln -s server $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/client endif endif diff -r de5854f8197d -r c9942e43a65a NEWS --- a/NEWS Fri Apr 12 17:08:21 2013 +0200 +++ b/NEWS Tue Apr 30 18:49:27 2013 +0200 @@ -15,8 +15,13 @@ * JamVM - JSR 292: Invoke Dynamic - JSR 308: Type Annotations + - JSR 335: (lambda expressions) initial hack + - JSR 901: VM support for method parameter reflection - JEP 171: Implement fence methods in sun.misc.Unsafe + - Fix invokesuper check in invokespecial opcode + - Do not free unprepared Miranda method code data - Set anonymous class protection domain + - JVM_IsVMGeneratedMethodIx stub - Dummy implementation of sun.misc.Perf natives * Bug fixes - PR1346: Filter out -j option to make From adomurad at redhat.com Tue Apr 30 06:55:19 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 09:55:19 -0400 Subject: [rfc][icedtea-web] Missing copyright headers Message-ID: <517FCD47.9000406@redhat.com> Seems I forgot them first time around. Thanks, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: missing-copyright-headers.patch Type: text/x-patch Size: 6033 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/08b13b5f/missing-copyright-headers.patch From jvanek at redhat.com Tue Apr 30 07:01:35 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Apr 2013 16:01:35 +0200 Subject: [rfc][icedtea-web] Fix most cases of error splash not appearing In-Reply-To: <517EDF59.7030305@redhat.com> References: <517EDF59.7030305@redhat.com> Message-ID: <517FCEBF.5010704@redhat.com> On 04/29/2013 11:00 PM, Adam Domurad wrote: > Hi all. I am disappointed a bit that I do not know exactly *why* this patch has the effect that it > does, beyond removing a difference between the error path (ie, LaunchException occurs) and the > normal code-path. > With this patch applied I always see the error splash on my desktop, and rarely don't see it on my > laptop. I will investigate further but I think it is worth including as a harmless patch. > > 2013-XX-XX Adam Domurad > > Ensure that PluginAppletviewer is resized in case of error. > This fixes most of the cases of the error splash screen > not appearing. > * plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java > (createPanel): Resize earlier, before erroring out. > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > (PluginAppletViewer): Set size, remove fixme. > > Apologies for 'magic' patch, > -Adam Well, I'm, ok to give an try to this. Have you run at least some smaller reproducers run? J. From xerxes at zafena.se Tue Apr 30 07:09:51 2013 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Tue, 30 Apr 2013 16:09:51 +0200 Subject: FYI: JamVM + IcedTea 3 & OpenJDK 8 b80 is now self-hosting! Message-ID: <517FD0AF.8080304@zafena.se> Robert Lougher have recently implemented JSR 292: Invoke Dynamic, JSR 308, JSR 335 & JSR 901 into JamVM. http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/log/ Today I updated IcedTea 3 to use Robert's latest JamVM revision and this enabled JamVM + IcedTea 3 & OpenJDK 8 b80 to be self-hosting; KUDOS! http://icedtea.classpath.org/hg/icedtea/rev/c9942e43a65a Cheers Xerxes From jvanek at redhat.com Tue Apr 30 07:24:21 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Apr 2013 16:24:21 +0200 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517E9CA9.9010907@redhat.com> References: <517E99DA.2080604@redhat.com> <517E9CA9.9010907@redhat.com> Message-ID: <517FD415.9090905@redhat.com> On 04/29/2013 06:15 PM, Omair Majid wrote: > On 04/29/2013 12:03 PM, Jiri Vanek wrote: >> Hi! >> >> Today I accidentally stumbled accross another regression in HEAD >> portalbank.no donot implements HTTP requests but provides desired jars >> on GET. >> So I made (findBestUrl) less strict. > > The change itself looks okay to me. We are dealing with more-or-less > misconfigured servers here, so I guess we should not be too concerned > about optimizing this case. A fallback to GET seems appropriate. > >> * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) >> now trying GET after each error request of HEAD > > Please complete the ChangeLog ;) ups:) * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) now trying GET after each error request of HEAD type. Changed and added debug messages. (getUrlResponseCode) closing of stream moved to separate method HttpUtils.consumeAndCloseConnectionSilently * net/sourceforge/jnlp/util/HttpUtils.java: new file designed for http utils. Now contains (consumeAndCloseConnection) and (consumeAndCloseConnectionSilently) which calls consumeAndCloseConnection but do not rethrow exception * netx/net/sourceforge/jnlp/util/StreamUtils.java: removed (consumeAndCloseInputStream) now improved and moved to HttpUtils tests: * netx/net/sourceforge/jnlp/cache/Resource.java: added fixme to warn before wrong url comparator * netx/net/sourceforge/jnlp/Version.java: removed useless main. Its purpose moved to new * tests/netx/unit/net/sourceforge/jnlp/VersionTest: some small tests to version class * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java: added tests to (getUrlResponseCode) and (findBestUrl) * tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java: added tests for (consumeAndCloseConnectionSilently) and (consumeAndCloseConnection) * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest: added license header * tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java: and * tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java: added support for simulation of not working HEAD request > >> @@ -910,7 +911,7 @@ >> >> int responseCode = getUrlResponseCode(url, requestProperties, "HEAD"); >> >> - if (responseCode == HttpURLConnection.HTTP_NOT_IMPLEMENTED ) { >> + if (responseCode < 200 || responseCode >= 300) { >> System.err.println("NOTE: The server does not appear to support HEAD requests, falling back to GET requests."); > > The error message is not very accurate now. We are going through a list > of URLs, searching for the best one. It's likely the URLs will not exist > and so we will probably get 404 errors. The message can be very > misleading in that case. Ok. I have improved the message. > >> +public class HttpUtils { > > Could you add a unit test for this? Ok, I have at the end added unittests to all methods I have touched. Imho it is worthy - but no more bugs was found this time :) If you do not like the tests,please let me push the fix and discuss the tests separately. Also do you mind you can check - Re: [rfc] [icedtea-web] renaming Messages_cs_CZ to Messages_cs (was Re:ITW tranlsation) ? It should just need and experience yes/now. The code change itself should be very simple then (just renaming the file..) > > Cheers, > Omair > -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedPortalBank-tests.diff Type: text/x-patch Size: 34233 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/e04a3885/fixedPortalBank-tests.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedPortalBank-fix.diff Type: text/x-patch Size: 7801 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/e04a3885/fixedPortalBank-fix.diff From gnu.andrew at redhat.com Tue Apr 30 07:25:33 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Tue, 30 Apr 2013 10:25:33 -0400 (EDT) Subject: FYI: JamVM + IcedTea 3 & OpenJDK 8 b80 is now self-hosting! In-Reply-To: <517FD0AF.8080304@zafena.se> References: <517FD0AF.8080304@zafena.se> Message-ID: <942534273.5054544.1367331933039.JavaMail.root@redhat.com> ----- Original Message ----- > Robert Lougher have recently implemented JSR 292: Invoke Dynamic, JSR 308, > JSR 335 & JSR 901 into JamVM. > http://git.berlios.de/cgi-bin/cgit.cgi/jamvm/log/ > > Today I updated IcedTea 3 to use Robert's latest JamVM revision and this > enabled > JamVM + IcedTea 3 & OpenJDK 8 b80 to be self-hosting; KUDOS! > http://icedtea.classpath.org/hg/icedtea/rev/c9942e43a65a > I think the sa-jdi.jar issues represent an issue with the OpenJDK build and shouldn't be worked around by creating fake files. As mentioned before, please keep JamVM changes in sync with 1.x and 2.x. > Cheers > Xerxes > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From jvanek at redhat.com Tue Apr 30 07:54:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Apr 2013 16:54:53 +0200 Subject: [rfc][icedtea-web] Missing copyright headers In-Reply-To: <517FCD47.9000406@redhat.com> References: <517FCD47.9000406@redhat.com> Message-ID: <517FDB3D.4060004@redhat.com> On 04/30/2013 03:55 PM, Adam Domurad wrote: > Seems I forgot them first time around. > > Thanks, > -Adam Sure. Could be no review push. Thank you. From adomurad at redhat.com Tue Apr 30 08:28:31 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 11:28:31 -0400 Subject: [rfc][icedtea-web] Refactor pipe-message mock code from PluginAppletViewerTest into PluginPipeMockUtils Message-ID: <517FE31F.9060504@redhat.com> Hi all. This patch takes out some bits that are strongly not test-specific. This will make it easier to use the pipe mock in other tests. I would still like to add more utility functions here, but this is a good starting base. Some functions call through the pipe even though it is not the main focus of the function, and something really convenient to respond to certain message types would be ideal in that case (I have a little bit written, but I'd like this base reviewed first). Changes: 2013-XX-XX Adam Domurad Introduce PluginPipeMock utility methods. * tests/test-extensions/sun/applet/PluginPipeMockUtil.java: New, enapsulates PluginPipeMock initialization, cleanup. As well, contains utility methods. * tests/netx/unit/sun/applet/PluginAppletViewerTest.java: Use newly introduced utility methods. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: refactor-pipe-messages.patch Type: text/x-patch Size: 13870 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/ca4b6712/refactor-pipe-messages.patch From adomurad at icedtea.classpath.org Tue Apr 30 08:30:12 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 30 Apr 2013 15:30:12 +0000 Subject: /hg/icedtea-web: Add missing copyright headers Message-ID: changeset 3fa3d0fdce30 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=3fa3d0fdce30 author: Adam Domurad date: Tue Apr 30 11:31:28 2013 -0400 Add missing copyright headers diffstat: ChangeLog | 7 + tests/netx/unit/sun/applet/MethodOverloadResolverTest.java | 37 ++++++++++ tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java | 37 ++++++++++ tests/netx/unit/sun/applet/PluginParameterParserTest.java | 37 ++++++++++ 4 files changed, 118 insertions(+), 0 deletions(-) diffs (146 lines): diff -r e34db561b7b9 -r 3fa3d0fdce30 ChangeLog --- a/ChangeLog Mon Apr 29 16:24:37 2013 +0200 +++ b/ChangeLog Tue Apr 30 11:31:28 2013 -0400 @@ -1,3 +1,10 @@ +2013-04-30 Adam Domurad + + * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: Add missing + copyright header. + * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: Same. + * tests/netx/unit/sun/applet/PluginParameterParserTest.java: Same. + 2013-04-29 Jiri Vanek More granular initialization of AwtHelper diff -r e34db561b7b9 -r 3fa3d0fdce30 tests/netx/unit/sun/applet/MethodOverloadResolverTest.java --- a/tests/netx/unit/sun/applet/MethodOverloadResolverTest.java Mon Apr 29 16:24:37 2013 +0200 +++ b/tests/netx/unit/sun/applet/MethodOverloadResolverTest.java Tue Apr 30 11:31:28 2013 -0400 @@ -1,3 +1,40 @@ +/* +Copyright (C) 2013 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 sun.applet; import static org.junit.Assert.assertEquals; diff -r e34db561b7b9 -r 3fa3d0fdce30 tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java --- a/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java Mon Apr 29 16:24:37 2013 +0200 +++ b/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java Tue Apr 30 11:31:28 2013 -0400 @@ -1,3 +1,40 @@ +/* +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 sun.applet; import static org.junit.Assert.assertTrue; diff -r e34db561b7b9 -r 3fa3d0fdce30 tests/netx/unit/sun/applet/PluginParameterParserTest.java --- a/tests/netx/unit/sun/applet/PluginParameterParserTest.java Mon Apr 29 16:24:37 2013 +0200 +++ b/tests/netx/unit/sun/applet/PluginParameterParserTest.java Tue Apr 30 11:31:28 2013 -0400 @@ -1,3 +1,40 @@ +/* +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 sun.applet; import static org.junit.Assert.*; From jfabriko at redhat.com Tue Apr 30 08:43:09 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Tue, 30 Apr 2013 17:43:09 +0200 Subject: [rfc][icedtea-web] Makefile.am modification for AWTFramework, defaultIcon Message-ID: <1367336589.6039.18.camel@jana-2-174.nrt.redhat.com> Hi, please see the attached patch with modifications to Makefile and several files in AWTFramework with which the default icon file (marker.png also attached) will be present in ...awt/imagesearch and test-extensions srcdir will be on the classpath, cheers, Jana ChangeLog: 2013-04-30 Jana Fabrikova * Makefile.am: test/test-extensions added on classpath for reproducers, unit tests and code coverage tests * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: modifying the constructor, the default icon is taken from ComponentFinder instead of loading from file * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/ComponentFinder.java: added a block of initialization code - the default icon * tests/netx/unit/net/sourceforge/jnlp/awt/imagesearch/ComponentFinderTest.java: unit test for the initialization code in ComponentFinder * tests/reproducers/simple/AWTCommonResourcesOnly/resources/marker.png: second copy of the default icon in a reproducer with resources only * tests/reproducers/simple/JavawsAWTRobotUsageSample/resources/javaws-awtrobot-usage-sample.jnlp: jnlp file for displaying the applet * tests/reproducers/simple/JavawsAWTRobotUsageSample/srcs/JavawsAWTRobotUsageSample.java: the applet * tests/reproducers/simple/JavawsAWTRobotUsageSample/testcases/JavawsAWTRobotUsageSampleTest.java: adding 6 testcases testing clicking with different mouse buttons on the applet * tests/test-extensions-tests/net/sourceforge/jnlp/awt/imagesearch/ComponentFinderTest.java: unit test for the initialization code in ComponentFinder * tests/test-extensions/net/sourceforge/jnlp/awt/imagesearch/marker.png: first copy of the default icon, will be on classpath -------------- next part -------------- A non-text attachment was scrubbed... Name: marker.png Type: image/png Size: 180 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/ddeb764f/marker.png -------------- next part -------------- A non-text attachment was scrubbed... Name: modifying_makefile_defaultIcon.patch Type: text/x-patch Size: 30406 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/ddeb764f/modifying_makefile_defaultIcon.patch From gnu.andrew at redhat.com Tue Apr 30 08:48:02 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Tue, 30 Apr 2013 11:48:02 -0400 (EDT) Subject: some 32bit builds broken in icedtea 2.3.9 In-Reply-To: <517EDF5B.7000505@ubuntu.com> References: <517EDF5B.7000505@ubuntu.com> Message-ID: <831567031.5115953.1367336882886.JavaMail.root@redhat.com> [Taking zero off CC as this seems unrelated] ----- Original Message ----- > at least on some 32bit platforms, icedtea builds are broken: > > see https://buildd.debian.org/status/package.php?p=openjdk-7 > the i386 and s390 build logs. > > this is caused by the changes below: > > --- build/openjdk/jdk/make/common/shared/Platform.gmk > +++ build/openjdk/jdk/make/common/shared/Platform.gmk > @@ -537,7 +537,7 @@ > else \ > echo "false"; \ > fi) > - MAX_VM_MEMORY := 512 > + MAX_VM_MEMORY := 1536 > MIN_VM_MEMORY := $(MAX_VM_MEMORY) > else > MB_OF_MEMORY := unknown > --- build/openjdk/jdk/make/docs/Makefile 2013-04-29 21:06:38.450777732 > +0200 > +++ build/openjdk/jdk/make/docs/Makefile 2013-04-29 21:22:19.085051363 > +0200 > @@ -69,11 +69,11 @@ > # NOTE: javadoc will not complete without these larger settings. > # WARNING: This could cause thrashing on low memory machines. > ifeq ($(ARCH_DATA_MODEL),64) > - MAX_VM_MEMORY = 1536 > + MAX_VM_MEMORY = 1792 > else ifeq ($(ARCH),universal) > - MAX_VM_MEMORY = 1536 > + MAX_VM_MEMORY = 1792 > else > - MAX_VM_MEMORY = $(shell if [ $(MIN_VM_MEMORY) -gt 768 ]; then echo > $(MIN_VM_MEMORY); else echo 768; fi) > + MAX_VM_MEMORY = 768 > endif > > # List of all possible directories for javadoc to look for sources > > > building the docs on i386: > > .../java ... -client -Xmx768m -Xms1536m ... > Error occurred during initialization of VM > Incompatible minimum and maximum heap sizes specified > make[5]: *** > [/build/buildd-openjdk-7_7u21-2.3.9-2-i386-pV_IFD/openjdk-7-7u21-2.3.9/build/openjdk.build/docs/api/index.html] > Error 1 > > this is caused by re-setting MAX_VM_MEMORY without re-setting MIN_VM_MEMORY > in > openjdk/jdk/make/docs/Makefile. > > proposed fix: > > MIN_VM_MEMORY := $(MAX_VM_MEMORY) > > MIN_VM_MEMORY should not be a simply expanded variable in > openjdk/jdk/make/common/shared/Platform.gmk, so that the re-set affects > MIN_VM_MEMORY too. > Just use: > > MIN_VM_MEMORY = $(MAX_VM_MEMORY) > > This build failure did only show on Debian, not Ubuntu, however I couldn't > yet > find out why it did fail on the former, while it did succeed on the latter. > > > the zero s390 build failure is caused by increasing MAX_VM_MEMORY by 1G, > which > is two high on s390. afaics the highest value the s390 vm does accept is > about > 768+128m. Can somebody else verify this on another s390 machine? > > Setting this to 768 for the s390 build lets the build succeed. Why was this > value changed in the first place? which platform does require a 300% memory > increase for the build? > hg annotate is your friend in these situations. This change comes from: changeset: 2558:e6d81fc2c943 user: Andrew John Hughes date: Wed Jun 13 00:01:00 2012 +0100 summary: PR986: Allow CACAO builds of IcedTea to be able to build IcedTea without bootstrap. and has been in place for nearly a year. It's not new to 2.3.9, but the 2.3.x series as a whole. As a workaround, you could use 2.2.8 which is about to be released (going through tarball testing). I presume these machines haven't been using 2.3.x prior to this point? I'm guessing your x86 build was using a larger maximum before. It's not clear to me where > - MAX_VM_MEMORY = $(shell if [ $(MIN_VM_MEMORY) -gt 768 ]; then echo > $(MIN_VM_MEMORY); else echo 768; fi) > + MAX_VM_MEMORY = 768 comes from. patches/cacao/memory.patch just shows: diff -Nru openjdk.orig/jdk/make/docs/Makefile openjdk/jdk/make/docs/Makefile --- openjdk.orig/jdk/make/docs/Makefile 2012-06-08 17:12:17.000000000 +0100 +++ openjdk/jdk/make/docs/Makefile 2012-06-12 11:09:31.616702981 +0100 @@ -69,9 +69,9 @@ # NOTE: javadoc will not complete without these larger settings. # WARNING: This could cause thrashing on low memory machines. ifeq ($(ARCH_DATA_MODEL),64) - MAX_VM_MEMORY = 1536 + MAX_VM_MEMORY = 1792 else ifeq ($(ARCH),universal) - MAX_VM_MEMORY = 1536 + MAX_VM_MEMORY = 1792 else MAX_VM_MEMORY = 768 endif which only affects 64-bit builds. The numbers were arrived at by repeated builds, increasing the value, until we got one that passed. We could probably restrict the JDK one to 64-bit only, but this is a delicate issue which varies per-arch. Personally, I don't have the resources to build on x86 as well, especially for a security update, and no means to build on s390, though I believe Red Hat does both. Hooking such builds up to the IcedTea builders would be great in catching this stuff. > Matthias > > -- 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 jfabriko at redhat.com Tue Apr 30 09:04:32 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Tue, 30 Apr 2013 18:04:32 +0200 Subject: [rfc][icedtea-web] AWTHelper small modification Message-ID: <1367337872.6039.22.camel@jana-2-174.nrt.redhat.com> Hello, I am sending only a small modification to the file AWTHelper, part of AWTFramework, in dealing with an initialisation string (it can be null or given), thanks for any comments, Jana ChangeLog: 2013-04-30 Jana Fabrikova * tests/test-extensions/net/sourceforge/jnlp/awt/AWTHelper.java: modifying the (charrReaded) method -------------- next part -------------- A non-text attachment was scrubbed... Name: modifying_AWTHelper_null_initStr.patch Type: text/x-patch Size: 1269 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/ca52804e/modifying_AWTHelper_null_initStr.patch From gitne at excite.co.jp Tue Apr 30 09:33:43 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Wed, 1 May 2013 01:33:43 +0900 Subject: =?ISO-2022-JP?B?UmU6IFJlOiBbaWNlZHRlYS13ZWJdW3JmY10gUG9saXNoIGxvY2FsaXphdGlvbiBhbmQgb3RoZXIgbWVzc2FnZXMgY2xlYW51cA==?= Message-ID: <201304301633.r3UGXhrZ015574@mail-web03.excite.co.jp> "Jiri Vanek" wrote: > On 04/26/2013 10:28 AM, Jacob Wisor wrote: > > "Jiri Vanek" wrote: > >> On 04/25/2013 11:33 PM, Jacob Wisor wrote: > >>> Hello there! > >>> > >>> Finally, here is IcedTea-Web's Polish localization. As with the German localization, it is only as good as the source (and the localizer) is. IMHO the English source needs a more major overhaul, especially the lately added extended applet security's messages. It has quite a few inconsistencies. I have left the last message (html help) untranslated. It probably should be moved to an external html document and localized appropriately. > >>> I have also polished the German localization a bit more and tried to remove the source's most obvious inconsistencies. > >>> > >>> 2013-04-25 Jacob Wisor > >>> > >>> * netx/net/sourceforge/jnlp/resources/Messages.properties: > >>> Streamlined names, removed typos, removed unneccessary trailing white spaces, > >>> fixed inconsistencies > >>> > >>> * netx/net/sourceforge/jnlp/resources/Messages_de.properties: > >>> Applied all changes from modified source > >>> Polished and reformulated some messages to better fit the localization guide > >>> Made a few translation more precise or correct > >>> Syntactic adjustments > >>> > >>> * netx/net/sourceforge/jnlp/resources/Messages_pl.properties: > >>> Added initial Polish localization > >>> > >>> Happy reviewing! ;) > >>> > >>> Jacob > >> thank you very much. I will add the tests let Adam to watch over a bit the text itself. > >> Then I will push for you. > >> > >> The only nit - the long "help". I'm for removing it from localisation (it bubble from original one anyway). > >> As fot he long help itself - I know it is nasty. For 1.5 it will be probably moved outside. > >> > >> > >> Thank you very much for this work! > >> > >> J. > > > > Thank you for reviewing. > > > > While writing the rfc, I forgot to ask you to run that test on complete messages since I have manually added some messages to my pl working document after I started working on it, that is there have been English messages added during the course of my translation. So please, could you see to it that I have not missed anything? Thank you. > > > Ok, here is the result, > > The Error! means that items is missing in translation. > > if you are willing you can add missing keys. In meantime,I will continue in integration of those. > > Thank you very much! > > J. > > Checking for same items between de x unknown_so_default_UNKNOWN_SO_DEFAULT (should be de x default) [...]> Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation [...] Please, anybody help me out here: What is "type-time validation"? Thank you! Jacob From adomurad at redhat.com Tue Apr 30 11:12:18 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 14:12:18 -0400 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <201304301633.r3UGXhrZ015574@mail-web03.excite.co.jp> References: <201304301633.r3UGXhrZ015574@mail-web03.excite.co.jp> Message-ID: <51800982.6060106@redhat.com> > [...]> Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation > [...] > > Please, anybody help me out here: What is "type-time validation"? Hi, in icedtea-web settings, you may choose a JRE, and perform some basic validation that you picked a valid folder. This checkbox refers to the location of Java being validated right when you choose it, or, in the case of typing it, providing feedback as you type it out. I think you can interpret this as "Automatic JRE validation" or similar. > > Thank you! > > Jacob Happy hacking, -Adam From gitne at excite.co.jp Tue Apr 30 11:36:43 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFjb2IgV2lzb3I=?=) Date: Wed, 1 May 2013 03:36:43 +0900 Subject: =?ISO-2022-JP?B?UmU6IFtpY2VkdGVhLXdlYl1bcmZjXSBQb2xpc2ggbG9jYWxpemF0aW9uIGFuZCBvdGhlciBtZXNzYWdlcyBjbGVhbnVw?= Message-ID: <201304301836.r3UIahjb013180@mail-web02.excite.co.jp> "Adam Domurad" wrote: > > [...]> Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation > > [...] > > > > Please, anybody help me out here: What is "type-time validation"? > > Hi, in icedtea-web settings, you may choose a JRE, and perform some > basic validation that you picked a valid folder. This checkbox refers to > the location of Java being validated right when you choose it, or, in > the case of typing it, providing feedback as you type it out. I think > you can interpret this as "Automatic JRE validation" or similar. > > > > > Thank you! > > > > Jacob > > Happy hacking, > -Adam Thanx Adam, I have supposed something similar. :) Should I change it to "Validate JRE immediately", "Validate JRE automatically" or "Automatic JRE validation"? Btw, I would propose to review the English source because some messages are either wrong or make no sense even in English. Regards, Jacob From adomurad at redhat.com Tue Apr 30 11:45:06 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 14:45:06 -0400 Subject: [icedtea-web][rfc] Polish localization and other messages cleanup In-Reply-To: <201304301836.r3UIahjb013180@mail-web02.excite.co.jp> References: <201304301836.r3UIahjb013180@mail-web02.excite.co.jp> Message-ID: <51801132.8060902@redhat.com> On 04/30/2013 02:36 PM, Jacob Wisor wrote: > "Adam Domurad" wrote: >>> [...]> Error! Items equals for: CPJVMPluginAllowTTValidation = Allow type-time validation >>> [...] >>> >>> Please, anybody help me out here: What is "type-time validation"? >> Hi, in icedtea-web settings, you may choose a JRE, and perform some >> basic validation that you picked a valid folder. This checkbox refers to >> the location of Java being validated right when you choose it, or, in >> the case of typing it, providing feedback as you type it out. I think >> you can interpret this as "Automatic JRE validation" or similar. >> >>> Thank you! >>> >>> Jacob >> Happy hacking, >> -Adam > Thanx Adam, I have supposed something similar. :) Should I change it to "Validate JRE immediately", "Validate JRE automatically" or "Automatic JRE validation"? I like 'Validate JRE Immediately' or maybe 'Immediate JRE Validation', feel free to use it as the basis for > > Btw, I would propose to review the English source because some messages are either wrong or make no sense even in English. Well, there are lots parts of icedtea-web that don't get attention often that make little sense :-) As always if you have any specific examples you want changed feel free to propose them. > > Regards, > Jacob Thanks, -Adam From adomurad at redhat.com Tue Apr 30 12:12:40 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 15:12:40 -0400 Subject: [rfc][icedtea-web] Fix most cases of error splash not appearing In-Reply-To: <517FDB06.1070601@redhat.com> References: <517EDF59.7030305@redhat.com> <517FCEBF.5010704@redhat.com> <517FCF39.3020509@redhat.com> <517FDB06.1070601@redhat.com> Message-ID: <518017A8.4030607@redhat.com> On 04/30/2013 10:53 AM, Jiri Vanek wrote: > On 04/30/2013 04:03 PM, Adam Domurad wrote: >> On 04/30/2013 10:01 AM, Jiri Vanek wrote: >>> On 04/29/2013 11:00 PM, Adam Domurad wrote: >>>> Hi all. I am disappointed a bit that I do not know exactly *why* >>>> this patch has the effect that it >>>> does, beyond removing a difference between the error path (ie, >>>> LaunchException occurs) and the >>>> normal code-path. >>>> With this patch applied I always see the error splash on my >>>> desktop, and rarely don't see it on my >>>> laptop. I will investigate further but I think it is worth >>>> including as a harmless patch. >>>> >>>> 2013-XX-XX Adam Domurad >>>> >>>> Ensure that PluginAppletviewer is resized in case of error. >>>> This fixes most of the cases of the error splash screen >>>> not appearing. >>>> * >>>> plugin/icedteanp/java/sun/applet/PluginAppletPanelFactory.java >>>> (createPanel): Resize earlier, before erroring out. >>>> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java >>>> (PluginAppletViewer): Set size, remove fixme. >>>> >>>> Apologies for 'magic' patch, >>>> -Adam >>> Well, I'm, ok to give an try to this. >>> Have you run at least some smaller reproducers run? >> >> Basic ones yes, and a few sites, not that it means much. >> -Adam > > Fair enough:) >> >>> >>> >>> J. >> > OK to push then ? -Adam From adomurad at redhat.com Tue Apr 30 12:28:56 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 15:28:56 -0400 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517FD415.9090905@redhat.com> References: <517E99DA.2080604@redhat.com> <517E9CA9.9010907@redhat.com> <517FD415.9090905@redhat.com> Message-ID: <51801B78.20603@redhat.com> On 04/30/2013 10:24 AM, Jiri Vanek wrote: > On 04/29/2013 06:15 PM, Omair Majid wrote: >> On 04/29/2013 12:03 PM, Jiri Vanek wrote: >>> Hi! >>> >>> Today I accidentally stumbled accross another regression in HEAD >>> portalbank.no donot implements HTTP requests but provides desired jars >>> on GET. >>> So I made (findBestUrl) less strict. >> >> The change itself looks okay to me. We are dealing with more-or-less >> misconfigured servers here, so I guess we should not be too concerned >> about optimizing this case. A fallback to GET seems appropriate. >> >>> * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) >>> now trying GET after each error request of HEAD >> >> Please complete the ChangeLog ;) > > ups:) > > > * net/sourceforge/jnlp/cache/ResourceTracker : (findBestUrl) > now trying GET after each error request of HEAD type. Changed and > added debug messages. (getUrlResponseCode) closing of stream > moved to separate method HttpUtils.consumeAndCloseConnectionSilently > * net/sourceforge/jnlp/util/HttpUtils.java: new file designed for > http utils. Now contains (consumeAndCloseConnection) and > (consumeAndCloseConnectionSilently) which calls consumeAndCloseConnection > but do not rethrow exception > * netx/net/sourceforge/jnlp/util/StreamUtils.java: removed > (consumeAndCloseInputStream) > now improved and moved to HttpUtils > > > tests: > > * netx/net/sourceforge/jnlp/cache/Resource.java: added fixme to warn > before wrong url comparator > * netx/net/sourceforge/jnlp/Version.java: removed useless main. Its > purpose moved to new > * tests/netx/unit/net/sourceforge/jnlp/VersionTest: some small tests > to version class > * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java: > added tests to > (getUrlResponseCode) and (findBestUrl) > * tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java: added > tests for > (consumeAndCloseConnectionSilently) and (consumeAndCloseConnection) > * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest: added > license header > * tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java: and > * tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java: added > support for simulation > of not working HEAD request > > > >> >>> @@ -910,7 +911,7 @@ >>> >>> int responseCode = getUrlResponseCode(url, >>> requestProperties, "HEAD"); >>> >>> - if (responseCode == >>> HttpURLConnection.HTTP_NOT_IMPLEMENTED ) { >>> + if (responseCode < 200 || re sponseCode >= 300) { >>> System.err.println("NOTE: The server does not >>> appear to support HEAD requests, falling back to GET requests."); >> >> The error message is not very accurate now. We are going through a list >> of URLs, searching for the best one. It's likely the URLs will not exist >> and so we will probably get 404 errors. The message can be very >> misleading in that case. > > Ok. I have improved the message. >> >>> +public class HttpUtils { >> >> Could you add a unit test for this? > > Ok, I have at the end added unittests to all methods I have touched. > Imho it is worthy - but no more bugs was found this time :) > > If you do not like the tests,please let me push the fix and discuss > the tests separately. > > Also do you mind you can check - Re: [rfc] [icedtea-web] renaming > Messages_cs_CZ to Messages_cs (was Re:ITW tranlsation) ? It should > just need and experience yes/now. The code change itself should be > very simple then (just renaming the file..) >> >> Cheers, >> Omair >> > > diff -r e34db561b7b9 netx/net/sourceforge/jnlp/cache/ResourceTracker.java > --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Mon Apr > 29 16:24:37 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Apr > 30 16:12:59 2013 +0200 > @@ -24,14 +24,10 @@ > import java.io.IOException; > import java.io.InputStream; > import java.io.OutputStream; > -import java.io.UnsupportedEncodingException; > import java.net.HttpURLConnection; > import java.net.MalformedURLException; > -import java.net.URI; > -import java.net.URISyntaxException; > import java.net.URL; > import java.net.URLConnection; > -import java.net.URLDecoder; > import java.security.AccessController; > import java.security.PrivilegedAction; > import java.util.ArrayList; > @@ -49,7 +45,7 @@ > import net.sourceforge.jnlp.event.DownloadEvent; > import net.sourceforge.jnlp.event.DownloadListener; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > -import net.sourceforge.jnlp.util.StreamUtils; > +import net.sourceforge.jnlp.util.HttpUtils; > import net.sourceforge.jnlp.util.UrlUtils; > import net.sourceforge.jnlp.util.WeakList; > > @@ -859,7 +855,7 @@ > * @return the response code if HTTP connection, or > HttpURLConnection.HTTP_OK if not. > * @throws IOException > */ > - private static int getUrlResponseCode(URL url, Map String> requestProperties, String requestMethod) throws IOException { > + static int getUrlResponseCode(URL url, Map > requestProperties, String requestMethod) throws IOException { > URLConnection connection = url.openConnection(); > > for (Map.Entry property : > requestProperties.entrySet()){ > @@ -874,7 +870,7 @@ > > /* Fully consuming current request helps with connection > re-use > * See > http://docs.oracle.com/javase/1.5.0/docs/guide/net/http-keepalive.html */ > - StreamUtils.consumeAndCloseInputStream(httpConnection.getInputStream()); > + HttpUtils.consumeAndCloseConnectionSilently(httpConnection); > > return responseCode; > } > @@ -891,7 +887,7 @@ > * @param resource the resource > * @return the best URL, or null if all failed to resolve > */ > - private URL findBestUrl(Resource resource) { > + URL findBestUrl(Resource resource) { > DownloadOptions options = downloadOptions.get(resource); > if (options == null) { > options = new DownloadOptions(false, false); > @@ -910,8 +906,9 @@ > > int responseCode = getUrlResponseCode(url, > requestProperties, "HEAD"); > > - if (responseCode == > HttpURLConnection.HTTP_NOT_IMPLEMENTED ) { > - System.err.println("NOTE: The server does not > appear to support HEAD requests, falling back to GET requests."); > + if (responseCode < 200 || responseCode >= 300) { > + System.err.println("NOTE: The server has returned > " + responseCode + " code for HEAD request for " + > url.toExternalForm() + ". IcedTea-Web will fail back to GET."); > + System.err.println("NOTE: it is possible that > server is just not supporting HEAD request, but more likely the file > is really invalid or missing"); This is a poor error message, please remove it. Or if you wish, you may keep the old message in the case that 'responseCode == HttpURLConnection.HTTP_NOT_IMPLEMENTED'. In that case the server is telling us they do not support HEAD requests. Actually, this method would be a bit better (and not require 2 connections per failure) if the outer loop was: /* Use GET request as a fallback in the rare case the server does not support HEAD requests */ final String requestMethods = {"HEAD", "GET"}; for (String requestMethod : requestMethods) { for (URL url : urls) { ....snip... int responseCode = getUrlResponseCode(url, requestProperties, requestMethod); ....snip... Then we need not fall-back inside the loop at all. The logic would remain pretty much the same. In this case we can still explicitly check for ==NOT_IMPLEMENTED in which case we will report '"Server does not support " + requestMethod'. (Not supporting GET would really be something special though :-) I am in favour of this variation (Omair seemed to prefer it too :-). It guarantees the largest benefit from HEAD requests in the case of trial-and-error jar name guesses, for just a little bit of restructuring. > /* Fallback: use GET request in the rare case the > server does not support HEAD requests */ > responseCode = getUrlResponseCode(url, > requestProperties, "GET"); > } > @@ -922,6 +919,10 @@ > System.err.println("best url for " + > resource.toString() + " is " + url.toString()); > } > return url; /* This is the best URL */ > + } else { > + if (JNLPRuntime.isDebug()) { > + System.err.println(resource.toString() + "'s > url " + url.toString()+" returned "+responseCode); > + } OK. > } > } catch (IOException e) { > // continue to next candidate > diff -r e34db561b7b9 netx/net/sourceforge/jnlp/util/HttpUtils.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/netx/net/sourceforge/jnlp/util/HttpUtils.java Tue Apr 30 > 16:12:59 2013 +0200 > @@ -0,0 +1,71 @@ > +/* > + 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. > + */ > +package net.sourceforge.jnlp.util; > + > +import java.io.IOException; > +import java.io.InputStream; > +import java.net.HttpURLConnection; > + > +public class HttpUtils { > + > + /** > + * Ensure a HttpURLConnection is fully read, required for correct > behaviour > + * in some APIs, namely HttpURLConnection. > + */ This message is confusing. Please drop the last part ('in some APIs, namely HttpURLConnection'). Please duplicate this comment for 'consumeAndCloseConnection', and additionally indicate for 'consumeAndCloseConnection' that IOException's are caught and printed. > + public static void > consumeAndCloseConnectionSilently(HttpURLConnection c) { > + try { > + consumeAndCloseConnection(c); > + } catch (IOException ex) { > + ex.printStackTrace(System.err); > + } > + } > + > + public static void consumeAndCloseConnection(HttpURLConnection c) > throws IOException { > + InputStream in = null; > + try { > + in = c.getInputStream(); > + byte[] throwAwayBuffer = new byte[256]; > + while (in.read(throwAwayBuffer) > 0) { > + /* ignore contents */ > + } > + } finally { > + if (in!=null){ > + in.close(); > + } > + } > + } > +} > diff -r e34db561b7b9 netx/net/sourceforge/jnlp/util/StreamUtils.java > --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Mon Apr 29 > 16:24:37 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Tue Apr 30 > 16:12:59 2013 +0200 > @@ -42,22 +42,10 @@ > import java.io.IOException; > import java.io.InputStream; > import java.io.InputStreamReader; > +import java.net.HttpURLConnection; > > public class StreamUtils { > > - /** > - * Ensure a stream is fully read, required for correct behaviour > in some > - * APIs, namely HttpURLConnection. > - * @throws IOException > - */ > - public static void consumeAndCloseInputStream(InputStream in) > throws IOException { > - byte[] throwAwayBuffer = new byte[256]; > - while (in.read(throwAwayBuffer) > 0) { > - /* ignore contents */ > - } > - in.close(); > - } > - > /*** > * Closes a stream, without throwing IOException. > * In case of IOException, prints the stack trace to System.err. Will review tests separately. Thanks, -Adam From adomurad at redhat.com Tue Apr 30 13:24:44 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 30 Apr 2013 16:24:44 -0400 Subject: [rfc][icedtea-web] fixfor portalbank.no In-Reply-To: <517FD415.9090905@redhat.com> References: <517E99DA.2080604@redhat.com> <517E9CA9.9010907@redhat.com> <517FD415.9090905@redhat.com> Message-ID: <5180288C.3090204@redhat.com> Commenting on tests now. Be warned this review is a little pedantic, however I think a bit of review pain here and there forces one to write better code :-)). I do like the patch's methodology though. > diff -r e34db561b7b9 netx/net/sourceforge/jnlp/Version.java > --- a/netx/net/sourceforge/jnlp/Version.java Mon Apr 29 16:24:37 > 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/Version.java Tue Apr 30 16:12:59 > 2013 +0200 > @@ -308,42 +308,6 @@ > > public String toString() { > return versionString; > - } > - > - /** > - * Test. > - */ > - /* > - public static void main(String args[]) { > - Version jvms[] = { > - new Version("1.1* 1.3*"), > - new Version("1.2+"), > - }; > - > - Version versions[] = { > - new Version("1.1"), > - new Version("1.1.8"), > - new Version("1.2"), > - new Version("1.3"), > - new Version("2.0"), > - new Version("1.3.1"), > - new Version("1.2.1"), > - new Version("1.3.1-beta"), > - new Version("1.1 1.2"), > - new Version("1.2 1.3"), > - }; > - > - for (int j = 0; j < jvms.length; j++) { > - for (int v = 0; v < versions.length; v++) { > - System.out.print( jvms[j].toString() + " " ); > - if (!jvms[j].matches(versions[v])) > - System.out.print( "!" ); > - System.out.println( "matches " + > versions[v].toString() ); > - } > - } > - > - System.out.println("Test completed"); > - } > - */ Strong +1 :-) > + } > > } > diff -r e34db561b7b9 netx/net/sourceforge/jnlp/cache/Resource.java > --- a/netx/net/sourceforge/jnlp/cache/Resource.java Mon Apr 29 > 16:24:37 2013 +0200 > +++ b/netx/net/sourceforge/jnlp/cache/Resource.java Tue Apr 30 > 16:12:59 2013 +0200 > @@ -109,6 +109,8 @@ > synchronized (resources) { > Resource resource = new Resource(location, > requestVersion, updatePolicy); > > + //FIXME - url ignores port during its comparsion s/comparsion/comparison/ > + //this may affect testsuites [nit] 'test-suites' Why don't you fix it ? Isn't it a simple matter of uncommenting CacheUtil line 89 ? (Although I think the true way to compare URL's is URL.toURI().equals... And to that extent, I think we should use URI wherever possible. Out of scope but worth considering if you do end up touching the caching code a lot in the future.) > int index = resources.indexOf(resource); > if (index >= 0) { // return existing object > Resource result = resources.get(index); > diff -r e34db561b7b9 tests/netx/unit/net/sourceforge/jnlp/VersionTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/VersionTest.java Tue Apr > 30 16:12:59 2013 +0200 > @@ -0,0 +1,99 @@ > +/* > + 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. > + */ > +package net.sourceforge.jnlp; > + > +import org.junit.Assert; > +import org.junit.Test; > + > +public class VersionTest { > + > + private static boolean[] results = {true, > + true, > + false, > + true, > + false, > + true, > + false, > + true, > + false, > + false, > + false, > + false, > + true, > + true, > + true, > + true, > + true, > + true, > + false, > + true}; No :-) > + private static Version jvms[] = { > + new Version("1.1* 1.3*"), > + new Version("1.2+"),}; Please instead format this into a positive (ie, should pass) & negative (ie, shouldFail) list for both version strings. > + private static Version versions[] = { > + new Version("1.1"), > + new Version("1.1.8"), > + new Version("1.2"), > + new Version("1.3"), > + new Version("2.0"), > + new Version("1.3.1"), > + new Version("1.2.1"), > + new Version("1.3.1-beta"), > + new Version("1.1 1.2"), > + new Version("1.2 1.3"),}; > + > + @Test > + public void iterateVersions() { Please name this testMatches. > + > + int i = 0; > + for (int j = 0; j < jvms.length; j++) { > + for (int v = 0; v < versions.length; v++) { > + i++; > + String s = i + " " + jvms[j].toString() + " "; Please name this variable. > + if (!jvms[j].matches(versions[v])) { > + s += "!"; > + } > + s += "matches " + versions[v].toString(); > + //System.out.println(s); Please remove the commented out println. > + ServerAccess.logOutputReprint(s); > + Assert.assertEquals(results[i - 1], > jvms[j].matches(versions[v])); > + } > + } > + > + > + } > +} > diff -r e34db561b7b9 > tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java > --- > a/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java > Mon Apr 29 16:24:37 2013 +0200 > +++ > b/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceTrackerTest.java > Tue Apr 30 16:12:59 2013 +0200 > @@ -1,54 +1,74 @@ > /* ResourceTrackerTest.java > -Copyright (C) 2012 Red Hat, Inc. > + Copyright (C) 2012 Red Hat, Inc. > > -This file is part of IcedTea. > + This file is part of IcedTea. > > -IcedTea is free software; you can redistribute it and/or > -modify it under the terms of the GNU General Public License as > published by > -the Free Software Foundation, version 2. > + IcedTea is free software; you can redistribute it and/or > + modify it under the terms of the GNU General Public License as > published by > + the Free Software Foundation, version 2. > > -IcedTea is distributed in the hope that it will be useful, > -but WITHOUT ANY WARRANTY; without even the implied warranty of > -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -General Public License for more details. > + IcedTea is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + General Public License for more details. > > -You should have received a copy of the GNU General Public License > -along with IcedTea; see the file COPYING. If not, write to > -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > -02110-1301 USA. > + You should have received a copy of the GNU General Public License > + along with IcedTea; see the file COPYING. If not, write to > + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > + 02110-1301 USA. > > -Linking this library statically or dynamically with other modules is > -making a combined work based on this library. Thus, the terms and > -conditions of the GNU General Public License cover the whole > -combination. > + Linking this library statically or dynamically with other modules is > + making a combined work based on this library. Thus, the terms and > + conditions of the GNU General Public License cover the whole > + combination. > > -As a special exception, the copyright holders of this library give you > -permission to link this library with independent modules to produce an > -executable, regardless of the license terms of these independent > -modules, and to copy and distribute the resulting executable under > -terms of your choice, provided that you also meet, for each linked > -independent module, the terms and conditions of the license of that > -module. An independent module is a module which is not derived from > -or based on this library. If you modify this library, you may extend > -this exception to your version of the library, but you are not > -obligated to do so. If you do not wish to do so, delete this > -exception statement from your version. > + As a special exception, the copyright holders of this library give you > + permission to link this library with independent modules to produce an > + executable, regardless of the license terms of these independent > + modules, and to copy and distribute the resulting executable under > + terms of your choice, provided that you also meet, for each linked > + independent module, the terms and conditions of the license of that > + module. An independent module is a module which is not derived from > + or based on this library. If you modify this library, you may extend > + this exception to your version of the library, but you are not > + obligated to do so. If you do not wish to do so, delete this > + exception statement from your version. > */ > package net.sourceforge.jnlp.cache; > > +import java.io.ByteArrayOutputStream; > +import java.io.File; > +import java.io.IOException; > +import java.io.PrintStream; > import java.io.UnsupportedEncodingException; > +import java.net.HttpURLConnection; > import java.net.MalformedURLException; > import java.net.URISyntaxException; > import java.net.URL; > - > +import java.util.HashMap; > +import net.sourceforge.jnlp.LoggingBottleneck; > +import net.sourceforge.jnlp.ServerAccess; > +import net.sourceforge.jnlp.ServerLauncher; > +import net.sourceforge.jnlp.Version; > +import net.sourceforge.jnlp.runtime.JNLPRuntime; > import net.sourceforge.jnlp.util.UrlUtils; > - > +import org.junit.AfterClass; > import org.junit.Assert; > +import org.junit.BeforeClass; > import org.junit.Test; > > -/** Test various corner cases of the parser */ > +/** > + * Test various corner cases of the parser > + */ Reformatting is nice, but this comment needs to go :-). (It seems copied from ParserCornerCases, at any rate it doesn't belong here.) > public class ResourceTrackerTest { > > + public static ServerLauncher s; > + public static ServerLauncher s2; Please name these variables. Why not serverLauncher1 & serverLauncher2 ? > + private static PrintStream backupedStream; 'backedUpStream' > + private static ByteArrayOutputStream nwErrorStream; I'm not sure what 'nw' refers to. Consider renaming. > + private static final String nameStub1 = "itw-server"; > + private static final String nameStub2 = "test-file"; > + > @Test > public void testNormalizeUrl() throws Exception { > URL[] u = getUrls(); > @@ -64,7 +84,6 @@ > Assert.assertFalse("url " + i + " must be normalized (and > so not equals) too normlaized url " + i, u[i].equals(n[i])); normlaized -> normalized. > } > } > - > public static final int CHANGE_BORDER = 6; > > public static URL[] getUrls() throws MalformedURLException { > @@ -97,4 +116,230 @@ > return n; > > } > + > + @BeforeClass > + public static void redirectErr() { > + if (backupedStream == null) { > + backupedStream = System.err; > + } > + nwErrorStream = new ByteArrayOutputStream(); > + System.setErr(new PrintStream(nwErrorStream)); > + > + } > + > + @AfterClass > + public static void redirectErrBack() throws > UnsupportedEncodingException { > + ServerAccess.logErrorReprint(nwErrorStream.toString("utf-8")); > + //System.err.println(nwErrorStream.toString("utf-8")); Please remove this comment. > + System.setErr(backupedStream); > + > + } > + > + @BeforeClass > + public static void onDebug() { > + JNLPRuntime.setDebug(true); > + } > + > + @AfterClass > + public static void offDebug() { > + JNLPRuntime.setDebug(false); > + } > + > + @BeforeClass > + public static void startServer() throws IOException { > + s = > ServerAccess.getIndependentInstance(System.getProperty("java.io.tmpdir"), > ServerAccess.findFreePort()); > + } > + > + @BeforeClass > + public static void startServer2() throws IOException { > + s2 = > ServerAccess.getIndependentInstance(System.getProperty("java.io.tmpdir"), > ServerAccess.findFreePort()); > + s2.setSupportsHead(false); > + } > + > + @AfterClass > + public static void stopServer() { > + s.stop(); > + } > + > + @AfterClass > + public static void stopServer2() { > + s2.stop(); > + } > + > + @Test > + public void getUrlResponseCodeTestWorkingHeadRequest() throws > IOException { > + redirectErr(); > + try { > + File f = File.createTempFile(nameStub1, nameStub2); > + int i = > ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "HEAD"); > + Assert.assertEquals(HttpURLConnection.HTTP_OK, i); > + f.delete(); > + i = > ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "HEAD"); > + Assert.assertEquals(HttpURLConnection.HTTP_NOT_FOUND, i); > + } finally { > + redirectErrBack(); > + } > + } > + > + @Test > + public void getUrlResponseCodeTestNotWorkingHeadRequest() throws > IOException { > + redirectErr(); > + try { > + File f = File.createTempFile(nameStub1, nameStub2); > + int i = > ResourceTracker.getUrlResponseCode(s2.getUrl(f.getName()), new > HashMap(), "HEAD"); > + Assert.assertEquals(HttpURLConnection.HTTP_NOT_IMPLEMENTED, i); > + f.delete(); > + i = > ResourceTracker.getUrlResponseCode(s2.getUrl(f.getName()), new > HashMap(), "HEAD"); > + Assert.assertEquals(HttpURLConnection.HTTP_NOT_IMPLEMENTED, i); > + } finally { > + redirectErrBack(); > + } > + } > + > + @Test > + public void > getUrlResponseCodeTestGetReequestOnNotWorkingHeadRequest() throws > IOException { Reequest -> Request > + redirectErr(); > + try { > + File f = File.createTempFile(nameStub1, nameStub2); > + int i = > ResourceTracker.getUrlResponseCode(s2.getUrl(f.getName()), new > HashMap(), "GET"); > + Assert.assertEquals(HttpURLConnection.HTTP_OK, i); > + f.delete(); > + i = > ResourceTracker.getUrlResponseCode(s2.getUrl(f.getName()), new > HashMap(), "GET"); > + Assert.assertEquals(HttpURLConnection.HTTP_NOT_FOUND, i); > + } finally { > + redirectErrBack(); > + } > + } > + > + @Test > + public void getUrlResponseCodeTestGetRequest() throws IOException { > + redirectErr(); > + try { > + File f = File.createTempFile(nameStub1, nameStub2); > + int i = > ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "GET"); > + Assert.assertEquals(HttpURLConnection.HTTP_OK, i); > + f.delete(); > + i = > ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "GET"); > + Assert.assertEquals(HttpURLConnection.HTTP_NOT_FOUND, i); > + } finally { > + redirectErrBack(); > + } > + } > + > + @Test > + public void getUrlResponseCodeTestWrongRequest() throws IOException { > + redirectErr(); > + try { > + File f = File.createTempFile(nameStub1, nameStub2); > + Exception exception = null; > + try { > + ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "SomethingWrong"); > + } catch (Exception ex) { > + exception = ex; > + } > + Assert.assertNotNull(exception); > + exception = null; > + f.delete(); > + try { > + ResourceTracker.getUrlResponseCode(s.getUrl(f.getName()), new > HashMap(), "SomethingWrong"); > + } catch (Exception ex) { > + exception = ex; > + } > + Assert.assertNotNull(exception);; > + } finally { > + redirectErrBack(); > + } > + > + } > + > + @Test > + public void findBestUrltest() throws IOException { > + redirectErr(); > + try { > + File fs = File.createTempFile(nameStub1, nameStub2); Please use 'file1' and 'file2' at the very least. 'fs' doesn't imply a file to me. > + File versiondFs = new File(fs.getParentFile(), > fs.getName() + "-2.0"); > + versiondFs.createNewFile(); > + > + File fs2 = File.createTempFile(nameStub1, nameStub2); > + File versiondFs2 = new File(fs2.getParentFile(), > fs2.getName() + "-2.0"); > + versiondFs2.createNewFile(); > + > + ResourceTracker rt = new ResourceTracker(); > + Resource r1 = > Resource.getResource(s.getUrl(fs.getName()), null, UpdatePolicy.NEVER); > + Resource r2 = > Resource.getResource(s2.getUrl(fs2.getName()), null, UpdatePolicy.NEVER); > + Resource r3 = > Resource.getResource(s.getUrl(versiondFs.getName()), new > Version("1.0"), UpdatePolicy.NEVER); > + Resource r4 = > Resource.getResource(s2.getUrl(versiondFs2.getName()), new > Version("1.0"), UpdatePolicy.NEVER); > + asserrS1(rt.findBestUrl(r1)); > + asserrS1V1(rt.findBestUrl(r3)); > + asserrS2(rt.findBestUrl(r2)); > + asertS2V1(rt.findBestUrl(r4)); > + > + fs.delete(); > + Assert.assertNull(rt.findBestUrl(r1)); > + asserrS1V1(rt.findBestUrl(r3)); > + asserrS2(rt.findBestUrl(r2)); > + asertS2V1(rt.findBestUrl(r4)); > + > + versiondFs.delete(); > + Assert.assertNull(rt.findBestUrl(r1)); > + Assert.assertNull(rt.findBestUrl(r3)); > + asserrS2(rt.findBestUrl(r2)); > + asertS2V1(rt.findBestUrl(r4)); > + > + versiondFs2.delete(); > + Assert.assertNull(rt.findBestUrl(r1)); > + Assert.assertNull(rt.findBestUrl(r3)); > + asserrS2(rt.findBestUrl(r2)); > + Assert.assertNull(rt.findBestUrl(r4)); > + > + > + fs2.delete(); > + Assert.assertNull(rt.findBestUrl(r1)); > + Assert.assertNull(rt.findBestUrl(r3)); > + Assert.assertNull(rt.findBestUrl(r2)); > + Assert.assertNull(rt.findBestUrl(r4)); [nit] Consider breaking this up into helper methods. > + } finally { > + redirectErrBack(); > + } > + > + } > + > + private void asserrS1(URL u) { 'asserr' -> 'assert'. This isn't understandable at first sight. 'assertOnServer1' or something? Same goes for below. > + assertCommon(u); > + assertPort(u, s.getPort()); > + } > + > + private void asserrS1V1(URL u) { > + assertCommon(u); > + assertPort(u, s.getPort()); > + assertVersion(u); > + } > + > + private void asserrS2(URL u) { > + assertCommon(u); > + assertPort(u, s2.getPort()); > + } > + > + private void asertS2V1(URL u) { > + assertCommon(u); > + assertPort(u, s2.getPort()); > + assertVersion(u); > + } > + > + private void assertCommon(URL u) { [nit] Maybe 'assertCommonComponents'. > + Assert.assertTrue(u.getProtocol().equals("http")); > + Assert.assertTrue(u.getHost().equals("localhost")); > + Assert.assertTrue(u.getPath().contains(nameStub1)); > + Assert.assertTrue(u.getPath().contains(nameStub2)); > + ServerAccess.logOutputReprint(u.toExternalForm()); > + } > + > + private void assertPort(URL u, int port) { > + Assert.assertTrue(u.getPort() == port); > + } > + > + private void assertVersion(URL u) { > + Assert.assertTrue(u.getPath().contains("-2.0")); > + Assert.assertTrue(u.getQuery().contains("version-id=1.0")); > + } > } > diff -r e34db561b7b9 > tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/util/HttpUtilsTest.java > Tue Apr 30 16:12:59 2013 +0200 > @@ -0,0 +1,251 @@ > +/* > + 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.util; > + > +import java.io.ByteArrayOutputStream; > +import java.io.IOException; > +import java.io.PrintStream; > +import java.io.UnsupportedEncodingException; > +import java.net.HttpURLConnection; > +import java.net.URL; > +import net.sourceforge.jnlp.ServerAccess; > +import net.sourceforge.jnlp.ServerLauncher; > +import org.junit.AfterClass; > +import org.junit.Assert; > +import org.junit.BeforeClass; > +import org.junit.Test; > + > +public class HttpUtilsTest { > + > + private static PrintStream backupedStream; 'backedUpStream' > + private static ByteArrayOutputStream nwErrorStream; > + > + public static void redirectErr() { > + if (backupedStream == null) { > + backupedStream = System.err; > + } > + nwErrorStream = new ByteArrayOutputStream(); > + System.setErr(new PrintStream(nwErrorStream)); > + > + } > + > + > + public static void redirectErrBack() throws > UnsupportedEncodingException { > + ServerAccess.logErrorReprint(nwErrorStream.toString("utf-8")); > + //System.err.println(nwErrorStream.toString("utf-8")); Please remove this comment. > + System.setErr(backupedStream); > + > + } > + > + @Test > + public void consumeAndCloseConnectionSilentlyTest() throws > IOException { > + redirectErr(); > + try{ > + Exception exception = null; > + try { > + HttpUtils.consumeAndCloseConnectionSilently(new > HttpURLConnection(null) { > + @Override > + public void disconnect() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public boolean usingProxy() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public void connect() throws IOException { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + }); > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNull("no exception expected - was" + exception, > exception); > + > + > + > + try { > + HttpUtils.consumeAndCloseConnectionSilently(new > HttpURLConnection(new URL("http://localhost/blahblah")) { > + @Override > + public void disconnect() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public boolean usingProxy() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public void connect() throws IOException { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + }); > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNull("no exception expected - was" + exception, > exception); > + > + ServerLauncher s > =ServerAccess.getIndependentInstance(System.getProperty("user.dir"), > ServerAccess.findFreePort()); Please name this 'serverLauncher'. > + try{ > + try { > + HttpUtils.consumeAndCloseConnectionSilently(new > HttpURLConnection(s.getUrl("blahblahblah")) { > + @Override > + public void disconnect() { > + > + } > + > + @Override > + public boolean usingProxy() { > + return false; > + } > + > + @Override > + public void connect() throws IOException { > + > + } > + }); > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNull("no exception expected - was" + exception, > exception); > + }finally{ > + try{ > + s.stop(); > + }catch(Exception ex){ > + ServerAccess.logException(ex); > + } > + } > + }finally{ > + redirectErrBack(); > + } > + } > + > + @Test > + public void consumeAndCloseConnectionTest() throws IOException { > + redirectErr(); > + try{ > + Exception exception = null; > + try { > + HttpUtils.consumeAndCloseConnection(new > HttpURLConnection(null) { > + @Override > + public void disconnect() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public boolean usingProxy() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public void connect() throws IOException { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + }); > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNotNull("exception expected - wasnt" + > exception, exception); > + > + > + > + try { > + HttpUtils.consumeAndCloseConnection(new > HttpURLConnection(new URL("http://localhost/blahblah")) { [nit] 'blahblah' isn't as clear as 'test' or 'testfolder' > + @Override > + public void disconnect() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public boolean usingProxy() { > + throw new UnsupportedOperationException("Not > supported yet."); > + } > + > + @Override > + public void connect() throws IOException { > + throw new UnsupportedOperationException("Not > supported yet."); > + } Do you expect these 'Unsupported' exceptions to be the ones thrown ? I'd prefer a custom RuntimeException in that case, with the appropriate assert. > + }); > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNotNull("exception expected - wasnt" + > exception, exception); > + > + ServerLauncher s > =ServerAccess.getIndependentInstance(System.getProperty("user.dir"), > ServerAccess.findFreePort()); Please name this 'serverLauncher'. > + try{ > + try { > + HttpUtils.consumeAndCloseConnection(new > HttpURLConnection(s.getUrl("blahblahblah")) { [nit] 'blahblahblah' isn't as clear as something like 'testlocation'. > + @Override > + public void disconnect() { > + > + } > + > + @Override > + public boolean usingProxy() { > + return false; > + } > + > + @Override > + public void connect() throws IOException { > + > + } > + }); [nit] You use the dummy HttpURLConnection more than once, consider extracting it to a dummy helper class (still in same file is fine of course). > + } catch (Exception ex) { > + ServerAccess.logException(ex); > + exception = ex; > + } > + Assert.assertNotNull(" exception expected - wasnt" + > exception, exception); > + }finally{ [nit] formatting > + try{ > + s.stop(); > + }catch(Exception ex){ > + ServerAccess.logException(ex); > + } > + } > + }finally{ > + redirectErrBack(); > + } > + } > +} > diff -r e34db561b7b9 > tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java > --- a/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Mon > Apr 29 16:24:37 2013 +0200 > +++ b/tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java Tue > Apr 30 16:12:59 2013 +0200 > @@ -1,3 +1,40 @@ > +/* > + 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.util; > > import static org.junit.Assert.assertEquals; > diff -r e34db561b7b9 > tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java > --- a/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java > Mon Apr 29 16:24:37 2013 +0200 > +++ b/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java > Tue Apr 30 16:12:59 2013 +0200 > @@ -57,7 +57,18 @@ > private final Integer port; > private final File dir; > private ServerSocket serverSocket; > + private boolean supportsHead = true; > > + public void setSupportsHead(boolean supportsHead) { > + this.supportsHead = supportsHead; > + } > + > + public boolean isSupportsHead() { > + return supportsHead; > + } > + > + > + > public String getServerName() { > return serverName; > } > @@ -102,10 +113,12 @@ > try { > serverSocket = new ServerSocket(port); > while (running) { > - new TinyHttpdImpl(serverSocket.accept(), dir, port); > + TinyHttpdImpl serverItself = new > TinyHttpdImpl(serverSocket.accept(), dir, port,false); [nit] I'm in favour of simply 'server' or 'serverImpl'. > + serverItself.setSupportsHead(supportsHead); > + serverItself.start(); > } > } catch (Exception e) { > - e.printStackTrace(); > + ServerAccess.logException(e); > } finally { > running = false; > } > diff -r e34db561b7b9 > tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java > --- a/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java > Mon Apr 29 16:24:37 2013 +0200 > +++ b/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java > Tue Apr 30 16:12:59 2013 +0200 > @@ -42,6 +42,7 @@ > import java.io.File; > import java.io.FileInputStream; > import java.io.InputStreamReader; > +import java.net.HttpURLConnection; > import java.net.Socket; > import java.net.SocketException; > import java.net.URLDecoder; > @@ -55,25 +56,41 @@ > * When resource starts with XslowX prefix, then resouce (without XslowX) > * is returned, but its delivery is delayed > */ > -class TinyHttpdImpl extends Thread { > +public class TinyHttpdImpl extends Thread { > > Socket c; > private final File dir; > private final int port; > private boolean canRun = true; > private static final String XSX = "/XslowX"; > - > + private boolean supportsHead = true; > + > public TinyHttpdImpl(Socket s, File f, int port) { > + this(s, f, port, true); > + } I think it's cleaner to set head-support in the constructor, and not have a setter. This way you won't need a way to avoid the 'start()' method. > + public TinyHttpdImpl(Socket s, File f, int port, boolean start) { > c = s; > this.dir = f; > this.port = port; > - start(); > + if (start){ > + start(); > + } > } > > public void setCanRun(boolean canRun) { > this.canRun = canRun; > } > > + public void setSupportsHead(boolean supportsHead) { > + this.supportsHead = supportsHead; > + } > + > + public boolean isSupportsHead() { 'supportsHead' or 'doesSupportHead' are proper English. Or perhaps 'hasHeadSupport'. > + return supportsHead; > + } > + > + > + > public int getPort() { > return port; > } > @@ -92,6 +109,11 @@ > > boolean isGetRequest = s.startsWith("GET"); > boolean isHeadRequest = s.startsWith("HEAD"); > + > + if (isHeadRequest && !isSupportsHead()){ > + o.writeBytes("HTTP/1.0 > "+HttpURLConnection.HTTP_NOT_IMPLEMENTED+" Not Implemented\n"); > + continue; > + } Ok. > > if (isGetRequest || isHeadRequest ) { > StringTokenizer t = new StringTokenizer(s, " "); > @@ -120,7 +142,7 @@ > } else if (p.toLowerCase().endsWith(".jar")) { > content = ct + "application/x-jar\n"; > } > - o.writeBytes("HTTP/1.0 200 > OK\nContent-Length:" + l + "\n" + content + "\n"); > + o.writeBytes("HTTP/1.0 > "+HttpURLConnection.HTTP_OK+" OK\nContent-Length:" + l + "\n" + > content + "\n"); Ok. > > if (isHeadRequest) { > continue; // Skip sending body Thanks for testing! Sorry for so many style-related comments, but at least for me one letter variable names (with scope more than a few lines, and especially for static variables) require a _lot_ more time to understand. Please consider it when writing code 8-). I won't insist too much. I like the patch a lot from a technical standpoint. Interesting study: http://arxiv.org/pdf/1304.5257v1.pdf Thanks for the patch! I don't think the fix needs to wait on the tests, although see my recommendations there. -Adam From gnu_andrew at member.fsf.org Tue Apr 30 15:57:10 2013 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 30 Apr 2013 23:57:10 +0100 Subject: [SECURITY] IcedTea 2.2.8 Released! Message-ID: <20130430225710.GA13204@carrie.middle-earth.co.uk> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. This release updates our OpenJDK 7 support to include the latest security updates. We recommend that users of the 2.2.x branch upgrade to this latest release as soon as possible. The security fixes are as follows: * S6657673, CVE-2013-1518: Issues with JAXP * S7200507: Refactor Introspector internals * S8000724, CVE-2013-2417: Improve networking serialization * S8001031, CVE-2013-2419: Better font processing * S8001040, CVE-2013-1537: Rework RMI model * S8001322: Refactor deserialization * S8001329, CVE-2013-1557: Augment RMI logging * S8003335: Better handling of Finalizer thread * S8003445: Adjust JAX-WS to focus on API * S8003543, CVE-2013-2415: Improve processing of MTOM attachments * S8004261: Improve input validation * S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames * S8004986, CVE-2013-2383: Better handling of glyph table * S8004987, CVE-2013-2384: Improve font layout * S8004994, CVE-2013-1569: Improve checking of glyph table * S8005432: Update access to JAX-WS * S8005943: (process) Improved Runtime.exec * S8006309: More reliable control panel operation * S8006435, CVE-2013-2424: Improvements in JMX * S8006790: Improve checking for windows * S8006795: Improve font warning messages * S8007406: Improve accessibility of AccessBridge * S8007617, CVE-2013-2420: Better validation of images * S8007667, CVE-2013-2430: Better image reading * S8007918, CVE-2013-2429: Better image writing * S8008140: Better method handle resolution * S8009049, CVE-2013-2436: Better method handle binding * S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap * S8009305, CVE-2013-0401: Improve AWT data transfer * S8009677, CVE-2013-2423: Better setting of setters * S8009699, CVE-2013-2421: Methodhandle lookup * S8009814, CVE-2013-1488: Better driver management * S8009857, CVE-2013-2422: Problem with plugin In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more estoric architectures. If you find an issue with one of these releases, please report it to our bug database (http://icedtea.classpath.org/bugzilla) under the appropriate component. Development discussion takes place on the distro-pkg-dev at openjdk.java.net mailing list and patches are always welcome. Full details of the release can be found below. What's New? =========== New in release 2.2.8 (2013-04-30): * Security fixes - S6657673, CVE-2013-1518: Issues with JAXP - S7200507: Refactor Introspector internals - S8000724, CVE-2013-2417: Improve networking serialization - S8001031, CVE-2013-2419: Better font processing - S8001040, CVE-2013-1537: Rework RMI model - S8001322: Refactor deserialization - S8001329, CVE-2013-1557: Augment RMI logging - S8003335: Better handling of Finalizer thread - S8003445: Adjust JAX-WS to focus on API - S8003543, CVE-2013-2415: Improve processing of MTOM attachments - S8004261: Improve input validation - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames - S8004986, CVE-2013-2383: Better handling of glyph table - S8004987, CVE-2013-2384: Improve font layout - S8004994, CVE-2013-1569: Improve checking of glyph table - S8005432: Update access to JAX-WS - S8005943: (process) Improved Runtime.exec - S8006309: More reliable control panel operation - S8006435, CVE-2013-2424: Improvements in JMX - S8006790: Improve checking for windows - S8006795: Improve font warning messages - S8007406: Improve accessibility of AccessBridge - S8007617, CVE-2013-2420: Better validation of images - S8007667, CVE-2013-2430: Better image reading - S8007918, CVE-2013-2429: Better image writing - S8008140: Better method handle resolution - S8009049, CVE-2013-2436: Better method handle binding - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap - S8009305, CVE-2013-0401: Improve AWT data transfer - S8009677, CVE-2013-2423: Better setting of setters - S8009699, CVE-2013-2421: Methodhandle lookup - S8009814, CVE-2013-1488: Better driver management - S8009857, CVE-2013-2422: Problem with plugin * Backports - S7130662, RH928500: GTK file dialog crashes with a NPE - S8009530: ICU Kern table support broken The tarball can be downloaded from: http://icedtea.classpath.org/download/source/icedtea-2.2.8.tar.gz SHA256 checksums: f51a3b317a2d2877c2891050305805eb7be257c9e5892eecc04e1cb0e582cd84 icedtea-2.2.8.tar.gz The tarball is accompanied by a digital signature, http://icedtea.classpath.org/download/source/icedtea-2.2.8.tar.gz.sig produced using my public key. See details below. PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 The following people helped with these releases: * Andrew Hughes (application of security fixes & backports, release management) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea-2.2.8.tar.gz $ cd icedtea-2.2.8 Full build requirements and instructions are in INSTALL: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea-2.2.8/configure [--enable-zero --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! -- Andii :) -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130430/1bdb294c/attachment.bin From andrew at icedtea.classpath.org Tue Apr 30 16:03:23 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 30 Apr 2013 23:03:23 +0000 Subject: /hg/release/icedtea7-2.2: 5 new changesets Message-ID: changeset 6f4b184367cd in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=6f4b184367cd author: Andrew John Hughes date: Mon Apr 29 14:51:35 2013 +0100 Bring in security fixes and RH928500. 2013-04-29 Andrew John Hughes (HOTSPOT_CHANGESET): Update to IcedTea 2.2 forest HEAD, bringing in security fixes & RH928500. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. * NEWS: Updated. * patches/boot/ecj-diamond.patch: Regenerate due to security patches. changeset b0a9809188dc in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=b0a9809188dc author: Andrew John Hughes date: Sun Apr 21 21:48:09 2013 +0100 Use 'IcedTea' across all versions, not 'IcedTea7' etc. 2013-04-21 Andrew John Hughes * Makefile.am: (ICEDTEA_NAME): Make same across all versions. changeset dca614cd2c4e in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=dca614cd2c4e author: Andrew John Hughes date: Tue Apr 30 15:28:02 2013 +0100 8009530: ICU Kern table support broken 2013-04-30 Andrew John Hughes * Makefile.am: (JDK_CHANGESET): Bring in S8009530 fix. (JDK_SHA256SUM): Likewise. * NEWS: Updated. changeset d3b6c2b728a8 in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=d3b6c2b728a8 author: Andrew John Hughes date: Tue Apr 30 15:29:32 2013 +0100 Prepare for 2.2.8 release. 2013-04-30 Andrew John Hughes * configure.ac: Bump to 2.2.8 proper. * NEWS: Set release date for 2.2.8. changeset eadd0e350101 in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=eadd0e350101 author: Andrew John Hughes date: Wed May 01 00:03:16 2013 +0100 Added tag icedtea-2.2.8 for changeset d3b6c2b728a8 diffstat: .hgtags | 1 + ChangeLog | 32 ++++++++++++++++++++++++++++++++ Makefile.am | 18 +++++++++--------- NEWS | 40 +++++++++++++++++++++++++++++++++++++++- configure.ac | 2 +- patches/boot/ecj-diamond.patch | 4 ++-- 6 files changed, 84 insertions(+), 13 deletions(-) diffs (160 lines): diff -r 53a2da2c4e72 -r eadd0e350101 .hgtags --- a/.hgtags Wed Mar 13 06:49:36 2013 +0000 +++ b/.hgtags Wed May 01 00:03:16 2013 +0100 @@ -41,3 +41,4 @@ bb62d64bd4ea1d79d0a3772dbbac6c219289c558 icedtea-2.2.5 af9f6b25365c6b6f906ca5386649912945bc596f icedtea-2.2.6 f431ba3ea9d46d6c7758c8d1e97c818b43e46b8d icedtea-2.2.7 +d3b6c2b728a8630154557f8bfafc30ebb12524e8 icedtea-2.2.8 diff -r 53a2da2c4e72 -r eadd0e350101 ChangeLog --- a/ChangeLog Wed Mar 13 06:49:36 2013 +0000 +++ b/ChangeLog Wed May 01 00:03:16 2013 +0100 @@ -1,3 +1,35 @@ +2013-04-30 Andrew John Hughes + + * configure.ac: Bump to 2.2.8 proper. + * NEWS: Set release date for 2.2.8. + +2013-04-30 Andrew John Hughes + + * Makefile.am: + (JDK_CHANGESET): Bring in S8009530 fix. + (JDK_SHA256SUM): Likewise. + * NEWS: Updated. + +2013-04-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_NAME): Make same across all versions. + +2013-04-29 Andrew John Hughes + + (HOTSPOT_CHANGESET): Update to IcedTea 2.2 forest HEAD, + bringing in security fixes & RH928500. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + * NEWS: Updated. + * patches/boot/ecj-diamond.patch: + Regenerate due to security patches. + 2013-03-12 Andrew John Hughes * patches/8002344-krb5loginmodule.patch, diff -r 53a2da2c4e72 -r eadd0e350101 Makefile.am --- a/Makefile.am Wed Mar 13 06:49:36 2013 +0000 +++ b/Makefile.am Wed May 01 00:03:16 2013 +0100 @@ -4,19 +4,19 @@ JDK_UPDATE_VERSION = 05 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -HOTSPOT_CHANGESET = c312054a7ae6 +HOTSPOT_CHANGESET = 168d05b42b89 CORBA_CHANGESET = 529355376925 -JAXP_CHANGESET = c8a89a3af782 -JAXWS_CHANGESET = a68ab44db7ee -JDK_CHANGESET = 7e8272d637c7 +JAXP_CHANGESET = 839055d03a54 +JAXWS_CHANGESET = c7ac0744f92f +JDK_CHANGESET = 1a455d17b871 LANGTOOLS_CHANGESET = ae5ba074188d OPENJDK_CHANGESET = 1a406488fe33 -HOTSPOT_SHA256SUM = 44b79ee4443c4ad7ab8fe039fec581df416d1c027104483a78be62db8709615e +HOTSPOT_SHA256SUM = 873651a61cffe2e37f16bf6e6558e2d72fd7a9a50319fd83e3854710ba9eea65 CORBA_SHA256SUM = b4f0eca0f37b581ace14f24b5aea2db99321e027c4bc2a044b9c796d45804a07 -JAXP_SHA256SUM = 310e77b526f3abb7ed8c117e3b12c3daa54779c8571743faab3a25a3495273f5 -JAXWS_SHA256SUM = eacd5a4a5f05ddeb2d84e02b700643cd43cb6ac8db3cfa937fa18fcf2ba3a676 -JDK_SHA256SUM = 811a41f50078d9cd203fc10265fff1e58eacd3a214cbad617a151bc4ff4cfe47 +JAXP_SHA256SUM = cb1007e7c9bdfc1a12d85dbc31adc2fb33ef4f6e0e36efda95ad3ba80556289b +JAXWS_SHA256SUM = b12a65e8793065da0f4243f2b1029e9e1c6c15611612aeb5d8c45f1e58a91875 +JDK_SHA256SUM = 829ed69c856e7eb344a15f3f3d06166bc6627a6eb5ceec0ccef6ae742ec3d9e6 LANGTOOLS_SHA256SUM = 8193a0309874143e10e8002d8c5fcf10aefc012af74d8a3bb4416611dfe9fb7f OPENJDK_SHA256SUM = 196845c4edcf0d82ed72661b381c83f2d0e6e0d4b8952e002decd3483280388e @@ -383,7 +383,7 @@ ICEDTEA_SHARK_BUILD = true endif -ICEDTEA_NAME = IcedTea7 +ICEDTEA_NAME = IcedTea if HAS_ICEDTEA_REVISION ICEDTEA_REV = +${ICEDTEA_REVISION} endif diff -r 53a2da2c4e72 -r eadd0e350101 NEWS --- a/NEWS Wed Mar 13 06:49:36 2013 +0000 +++ b/NEWS Wed May 01 00:03:16 2013 +0100 @@ -10,7 +10,45 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 2.2.8 (2013-04-XX): +New in release 2.2.8 (2013-04-30): + +* Security fixes + - S6657673, CVE-2013-1518: Issues with JAXP + - S7200507: Refactor Introspector internals + - S8000724, CVE-2013-2417: Improve networking serialization + - S8001031, CVE-2013-2419: Better font processing + - S8001040, CVE-2013-1537: Rework RMI model + - S8001322: Refactor deserialization + - S8001329, CVE-2013-1557: Augment RMI logging + - S8003335: Better handling of Finalizer thread + - S8003445: Adjust JAX-WS to focus on API + - S8003543, CVE-2013-2415: Improve processing of MTOM attachments + - S8004261: Improve input validation + - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames + - S8004986, CVE-2013-2383: Better handling of glyph table + - S8004987, CVE-2013-2384: Improve font layout + - S8004994, CVE-2013-1569: Improve checking of glyph table + - S8005432: Update access to JAX-WS + - S8005943: (process) Improved Runtime.exec + - S8006309: More reliable control panel operation + - S8006435, CVE-2013-2424: Improvements in JMX + - S8006790: Improve checking for windows + - S8006795: Improve font warning messages + - S8007406: Improve accessibility of AccessBridge + - S8007617, CVE-2013-2420: Better validation of images + - S8007667, CVE-2013-2430: Better image reading + - S8007918, CVE-2013-2429: Better image writing + - S8008140: Better method handle resolution + - S8009049, CVE-2013-2436: Better method handle binding + - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap + - S8009305, CVE-2013-0401: Improve AWT data transfer + - S8009677, CVE-2013-2423: Better setting of setters + - S8009699, CVE-2013-2421: Methodhandle lookup + - S8009814, CVE-2013-1488: Better driver management + - S8009857, CVE-2013-2422: Problem with plugin +* Backports + - S7130662, RH928500: GTK file dialog crashes with a NPE + - S8009530: ICU Kern table support broken New in release 2.2.7 (2013-03-11): diff -r 53a2da2c4e72 -r eadd0e350101 configure.ac --- a/configure.ac Wed Mar 13 06:49:36 2013 +0000 +++ b/configure.ac Wed May 01 00:03:16 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.2.8pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.2.8], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 53a2da2c4e72 -r eadd0e350101 patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Wed Mar 13 06:49:36 2013 +0000 +++ b/patches/boot/ecj-diamond.patch Wed May 01 00:03:16 2013 +0100 @@ -966,8 +966,8 @@ */ final class ThreadGroupContext { -- private static final Map contexts = new WeakHashMap<>(); -+ private static final Map contexts = new WeakHashMap(); +- private static final WeakIdentityMap contexts = new WeakIdentityMap<>(); ++ private static final WeakIdentityMap contexts = new WeakIdentityMap(); /** * Returns the appropriate {@code AppContext} for the caller, From andrew at icedtea.classpath.org Tue Apr 30 16:04:47 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 30 Apr 2013 23:04:47 +0000 Subject: /hg/release/icedtea7-2.2: Start 2.2.9 release cycle. Message-ID: changeset 2f50c50bc1d0 in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=2f50c50bc1d0 author: Andrew John Hughes date: Wed May 01 00:04:40 2013 +0100 Start 2.2.9 release cycle. 2013-05-01 Andrew John Hughes * configure.ac: Bump to 2.2.9pre. * NEWS: Add section for 2.2.9. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r eadd0e350101 -r 2f50c50bc1d0 ChangeLog --- a/ChangeLog Wed May 01 00:03:16 2013 +0100 +++ b/ChangeLog Wed May 01 00:04:40 2013 +0100 @@ -1,3 +1,8 @@ +2013-05-01 Andrew John Hughes + + * configure.ac: Bump to 2.2.9pre. + * NEWS: Add section for 2.2.9. + 2013-04-30 Andrew John Hughes * configure.ac: Bump to 2.2.8 proper. diff -r eadd0e350101 -r 2f50c50bc1d0 NEWS --- a/NEWS Wed May 01 00:03:16 2013 +0100 +++ b/NEWS Wed May 01 00:04:40 2013 +0100 @@ -10,6 +10,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 2.2.9 (2013-06-XX): + New in release 2.2.8 (2013-04-30): * Security fixes diff -r eadd0e350101 -r 2f50c50bc1d0 configure.ac --- a/configure.ac Wed May 01 00:03:16 2013 +0100 +++ b/configure.ac Wed May 01 00:04:40 2013 +0100 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.2.8], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.2.9pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile])