From ptisnovs at icedtea.classpath.org Mon Aug 1 02:13:11 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 01 Aug 2011 09:13:11 +0000 Subject: /hg/gfx-test: Code refactoring and added missing JavaDoc in Exte... Message-ID: changeset ffd2c01dbe1d in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=ffd2c01dbe1d author: Pavel Tisnovsky date: Mon Aug 01 11:14:46 2011 +0200 Code refactoring and added missing JavaDoc in ExternalCommands.java. diffstat: ChangeLog | 4 + src/org/gfxtest/harness/ExternalCommands.java | 149 ++++++++++++++++++++----- 2 files changed, 124 insertions(+), 29 deletions(-) diffs (237 lines): diff -r f1aa5b49eb61 -r ffd2c01dbe1d ChangeLog --- a/ChangeLog Fri Jul 29 16:39:12 2011 +0200 +++ b/ChangeLog Mon Aug 01 11:14:46 2011 +0200 @@ -1,3 +1,7 @@ +2011-08-01 Pavel Tisnovsky + * src/org/gfxtest/harness/ExternalCommands.java: + Code refactoring and added missing JavaDoc. + 2011-07-29 Pavel Tisnovsky * src/org/gfxtest/testsuites/AALines.java: improved JavaDoc. diff -r f1aa5b49eb61 -r ffd2c01dbe1d src/org/gfxtest/harness/ExternalCommands.java --- a/src/org/gfxtest/harness/ExternalCommands.java Fri Jul 29 16:39:12 2011 +0200 +++ b/src/org/gfxtest/harness/ExternalCommands.java Mon Aug 01 11:14:46 2011 +0200 @@ -56,7 +56,9 @@ /** * Read all lines from buffered reader and converts all lines to one string. + * * @param bufferedReader + * reader used to read text lines * @return all lines concatenated into one string * @throws IOException */ @@ -73,8 +75,10 @@ /** * Read standard output from the command and put it to String + * * @param process - * @return + * compile or run process + * @return standard output from given process * @throws IOException */ private static String fetchStandardOutput(Process process) throws IOException @@ -85,8 +89,10 @@ /** * Read error output from the command and put it to String + * * @param process - * @return + * compile or run process + * @return error output from given process * @throws IOException */ private static String fetchErrorOutput(Process process) throws IOException @@ -95,12 +101,36 @@ return copyFromBufferedReaderToString(stdError); } + /** + * This method constructs string containing external command to build + * (compile) selected test suite. + * + * @param selectedTestSuite + * name of selected test suite + * @param verboseOperation + * whether to use verbose operation during compile + * @return string containing external command + */ private static String constructBuildCommand(String selectedTestSuite, boolean verboseOperation) { return "javac -d " + Paths.BUILD_DIRECTORY + (verboseOperation ? " -verbose " : "") + " -sourcepath " + Paths.SOURCE_DIRECTORY + "/ " + Paths.PATH_TO_TESTSUITES + "/" + selectedTestSuite + ".java"; } + /** + * This method constructs string containing external command to run selected + * test suite. + * + * @param pathToJava + * path to selected JVM (may be tested JVM or reference one) + * @param selectedTestName + * name of selected test suite + * @param outputDirectoryForSelectedTest + * name of directory, where the output files might be created + * @param verboseOperation + * whether to use verbose operation during test run + * @return string containing external command + */ private static String constructRunCommand(String pathToJava, String selectedTestName, String outputDirectoryForSelectedTest, boolean verboseOperation) { return pathToJava + (verboseOperation ? " -verbose " : "") + " -cp " + Paths.BUILD_DIRECTORY @@ -108,35 +138,55 @@ " -o=" + outputDirectoryForSelectedTest; } + /** + * This method tries to compile selected test suite. + * + * @param selectedTestSuite + * name of selected test suite + * @param verboseOperation + * whether to use verbose operation during test run + * @return standard and error output of external process + * @throws IOException + * @throws InterruptedException + * @throws RuntimeException + */ public static String compileSelectedTestSuite(String selectedTestSuite, boolean verboseOperation) throws IOException, InterruptedException, RuntimeException { FileSystemTools.createDirectory(Paths.BUILD_DIRECTORY); String compilationCommand = constructBuildCommand(selectedTestSuite, verboseOperation); Process process = Runtime.getRuntime().exec(compilationCommand); StringBuffer output = new StringBuffer(); - - output.append("Compilation command:\n"); - output.append(compilationCommand + "\n"); - - output.append("\n"); - output.append("Standard output for compilation: \n"); - output.append("---------------------------------\n"); - + appendCompilationMessageHeader(compilationCommand, output); output.append(fetchStandardOutput(process)); - - output.append("\n"); - output.append("Error output: \n"); - output.append("---------------------------------\n"); - + appendErrorMessageHeader(output); output.append(fetchErrorOutput(process)); + // wait for the external process to finish process.waitFor(); + // check external process's exit value if (process.exitValue() != 0) { throw new RuntimeException("Exit code = " + process.exitValue()); } return output.toString(); } - + + /** + * This method tries to run selected test suite on selected JDK (or to be + * more precise - JVM) + * + * @param pathToJava + * path to selected JVM (may be tested JVM or reference one) + * @param selectedTestName + * name of selected test suite + * @param outputDirectory + * name of directory, where the output files might be created + * @param verboseOperation + * whether to use verbose operation during test run + * @return standard and error output of external process + * @throws IOException + * @throws InterruptedException + * @throws RuntimeException + */ public static String runTestOnGivenJDK(String pathToJava, String selectedTestName, String outputDirectory, boolean verboseOperation) throws IOException, InterruptedException, RuntimeException { String outputDirectoryForSelectedTest = FileSystemTools.constructTestDirectoryName(outputDirectory, selectedTestName); @@ -146,22 +196,13 @@ String runCommand = constructRunCommand(pathToJava, selectedTestName, outputDirectoryForSelectedTest, verboseOperation); Process process = Runtime.getRuntime().exec(runCommand); StringBuffer output = new StringBuffer(); - - output.append("Run command:\n"); - output.append(runCommand + "\n"); - - output.append("\n"); - output.append("Standard output for test run: \n"); - output.append("---------------------------------\n"); - + appendRunMessageHeader(runCommand, output); output.append(fetchStandardOutput(process)); - - output.append("\n"); - output.append("Error output: \n"); - output.append("---------------------------------\n"); - + appendErrorMessageHeader(output); output.append(fetchErrorOutput(process)); + // wait for the external process to finish process.waitFor(); + // check external process's exit value if (process.exitValue() != 0) { throw new RuntimeException("Exit code = " + process.exitValue()); @@ -169,4 +210,54 @@ return output.toString(); } + /** + * Append basic information about compile process to a given output stored + * in a StringBuffer. + * + * @param compilationCommand + * compilation command + * @param output + * output stored in StringBuffer. + */ + private static void appendCompilationMessageHeader(String compilationCommand, StringBuffer output) + { + output.append("Compilation command:\n"); + output.append(compilationCommand + "\n"); + output.append("\n"); + output.append("Standard output for compilation: \n"); + output.append("---------------------------------\n"); + } + + /** + * Append basic information about compile and/or run failures to a given + * output stored in a StringBuffer. + * + * @param output + * output stored in StringBuffer. + */ + private static void appendErrorMessageHeader(StringBuffer output) + { + output.append("\n"); + output.append("Error output: \n"); + output.append("---------------------------------\n"); + } + + /** + * Append basic information test run to a given output stored in a + * StringBuffer. + * + * @param runCommand + * run command + * @param output + * output stored in StringBuffer. + */ + private static void appendRunMessageHeader(String runCommand, StringBuffer output) + { + output.append("Run command:\n"); + output.append(runCommand + "\n"); + output.append("\n"); + output.append("Standard output for test run: \n"); + output.append("---------------------------------\n"); + } + } From ptisnovs at icedtea.classpath.org Mon Aug 1 03:04:34 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 01 Aug 2011 10:04:34 +0000 Subject: /hg/gfx-test: Fixed issue: each test suite can be called from co... Message-ID: changeset a7c8d2ce958c in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a7c8d2ce958c author: Pavel Tisnovsky date: Mon Aug 01 12:06:10 2011 +0200 Fixed issue: each test suite can be called from command line without the needing to specify any configuration parameters. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/GfxTestConfiguration.java | 178 +++++++++++++++++++- src/org/gfxtest/harness/ExternalCommands.java | 14 +- 3 files changed, 191 insertions(+), 8 deletions(-) diffs (292 lines): diff -r ffd2c01dbe1d -r a7c8d2ce958c ChangeLog --- a/ChangeLog Mon Aug 01 11:14:46 2011 +0200 +++ b/ChangeLog Mon Aug 01 12:06:10 2011 +0200 @@ -1,3 +1,10 @@ +2011-08-01 Pavel Tisnovsky + * src/org/gfxtest/harness/ExternalCommands.java: + * src/org/gfxtest/framework/GfxTestConfiguration.java: + Fixed issue: each test suite can be called from command line without + the needing to specify any configuration parameters. Default values + are used instead. Code refactoring, added missing JavaDoc. + 2011-08-01 Pavel Tisnovsky * src/org/gfxtest/harness/ExternalCommands.java: Code refactoring and added missing JavaDoc. diff -r ffd2c01dbe1d -r a7c8d2ce958c src/org/gfxtest/framework/GfxTestConfiguration.java --- a/src/org/gfxtest/framework/GfxTestConfiguration.java Mon Aug 01 11:14:46 2011 +0200 +++ b/src/org/gfxtest/framework/GfxTestConfiguration.java Mon Aug 01 12:06:10 2011 +0200 @@ -48,8 +48,39 @@ import org.gfxtest.common.ConfigurationException; import org.gfxtest.common.InvalidParameterValueException; + + +/** + * Configuration set by gfx-test harness for each test suite. Configuration + * parameters could be specified as command line arguments. + * + * @author Pavel Tisnovsky + */ public class GfxTestConfiguration extends Configuration { + /** + * Default width of the test image (measured in pixels). + * This value is used in case the "-w" parameter is not used. + */ + public static final int DEFAULT_IMAGE_WIDTH = 640; + + /** + * Default height of the test image (measured in pixels). + * This value is used in case the "-h" parameter is not used. + */ + public static final int DEFAULT_IMAGE_HEIGHT = 480; + + /** + * Default image type. + * This value is used in case the "-t" parameter is not used. + */ + public static final String DEFAULT_IMAGE_TYPE = "rgb"; + + /** + * Default output directory. + * This value is used in case the "-o" parameter is not used. + */ + private static final String DEFAULT_OUTPUT_DIRECTORY = "."; /** * Path to generated output files. @@ -73,21 +104,128 @@ */ private int imageType; + /** + * Constructor called indirectly when the test suite are started. + * + * @param args + * command line arguments + * @param log + * logger object + * @throws ConfigurationException + */ public GfxTestConfiguration(String[] args, Log log) throws ConfigurationException { super(args, log); } + /** + * This method reads and process all command line parameters. + * + * @param args + * command line arguments + */ @Override protected void readCommandLineParameters(String[] args) throws ConfigurationException { Map options = resolveAllOptions(args); - this.imageWidth = getIntegerParameter(options, "w"); //$NON-NLS-1$ - this.imageHeight = getIntegerParameter(options, "h"); //$NON-NLS-1$ - this.imageType = getImageType(options); - this.outputPath = new File(getStringParameter(options, "o")); //$NON-NLS-1$ + this.imageWidth = processImageWidthArgument(options); + this.imageHeight = processImageHeightArgument(options); + this.imageType = processImageTypeArgument(options); + this.outputPath = processOutputPathArgument(options); } + /** + * Process argument used for setting image width. + * + * @param options + * command line options + * @return image width + * @throws ConfigurationException + */ + private int processImageWidthArgument(Map options) throws ConfigurationException + { + try + { + return getIntegerParameter(options, "w"); //$NON-NLS-1$ + } + catch (ParameterNotFoundException e) + { + this.log.logWarning("image width not specified in command line, using default setting: " + + DEFAULT_IMAGE_WIDTH); + return DEFAULT_IMAGE_WIDTH; + } + } + + /** + * Process argument used for setting image height. + * + * @param options + * command line options + * @return image height + * @throws ConfigurationException + */ + private int processImageHeightArgument(Map options) throws ConfigurationException + { + try + { + return getIntegerParameter(options, "h"); //$NON-NLS-1$ + } + catch (ParameterNotFoundException e) + { + this.log.logWarning("image height not specified in command line, using default setting: " + + DEFAULT_IMAGE_HEIGHT); + return DEFAULT_IMAGE_HEIGHT; + } + } + + /** + * Process argument used for setting image type (RGB, GrayScale, etc.) + * + * @param options + * command line options + * @return image type + * @throws ConfigurationException + */ + private int processImageTypeArgument(Map options) throws ConfigurationException + { + try + { + return getImageType(options); + } + catch (ParameterNotFoundException e) + { + this.log.logWarning("image type not specified in command line, using default setting: " + + BufferedImage.TYPE_INT_RGB); + return BufferedImage.TYPE_INT_RGB; + } + } + + /** + * Process argument used for setting output path (the name of directory + * where test images are stored). + * + * @param options + * command line options + * @return output path + * @throws ConfigurationException + */ + private File processOutputPathArgument(Map options) throws ConfigurationException + { + try + { + return new File(getStringParameter(options, "o")); //$NON-NLS-1$; + } + catch (ParameterNotFoundException e) + { + this.log.logWarning("output path not specified in command line, using default setting: " + + DEFAULT_OUTPUT_DIRECTORY); + return new File(DEFAULT_OUTPUT_DIRECTORY); + } + } + + /** + * This method prints all test suite parameters. + */ @Override @SuppressWarnings("nls") protected void printParameters() @@ -98,6 +236,14 @@ this.log.logSet("image type", Integer.valueOf(this.imageType)); } + /** + * Process image type parameter. + * + * @param options + * command line options + * @return image type + * @throws ConfigurationException + */ @SuppressWarnings("nls") private int getImageType(Map options) throws ConfigurationException { @@ -112,7 +258,7 @@ } else if ("gray".equals(imgType)) { - return BufferedImage.TYPE_BYTE_GRAY; + return BufferedImage.TYPE_BYTE_GRAY; } else if ("bw".equals(imgType) || ("bit".equals(imgType))) { @@ -120,25 +266,45 @@ } else { - throw new InvalidParameterValueException("t", imgType); + throw new InvalidParameterValueException("t", imgType); } } + /** + * Getter for outputPath attribute. + * + * @return current value of attribute outputPath. + */ public File getOutputPath() { return this.outputPath; } + /** + * Getter for imageWidth attribute. + * + * @return current value of attribute imageWidth. + */ public int getImageWidth() { return this.imageWidth; } + /** + * Getter for imageHeight attribute. + * + * @return current value of attribute imageHeight. + */ public int getImageHeight() { return this.imageHeight; } + /** + * Getter for imageType attribute. + * + * @return current value of attribute imageType. + */ public int getImageType() { return this.imageType; diff -r ffd2c01dbe1d -r a7c8d2ce958c src/org/gfxtest/harness/ExternalCommands.java --- a/src/org/gfxtest/harness/ExternalCommands.java Mon Aug 01 11:14:46 2011 +0200 +++ b/src/org/gfxtest/harness/ExternalCommands.java Mon Aug 01 12:06:10 2011 +0200 @@ -44,6 +44,10 @@ import java.io.IOException; import java.io.InputStreamReader; + + +import org.gfxtest.framework.GfxTestConfiguration; + /** * This class contains methods used for run external commands: compile selected * test suite and run selected test. @@ -52,8 +56,14 @@ */ public class ExternalCommands { - private static final String RUN_OPTIONS = "-w=640 -h=480 -t=rgb"; - + /** + * Run options used to start each test suite. + */ + private static final String RUN_OPTIONS = + "-w=" + GfxTestConfiguration.DEFAULT_IMAGE_WIDTH + " " + + "-h=" + GfxTestConfiguration.DEFAULT_IMAGE_HEIGHT + " " + + "-t=" + GfxTestConfiguration.DEFAULT_IMAGE_TYPE; + /** * Read all lines from buffered reader and converts all lines to one string. * From ahughes at redhat.com Mon Aug 1 06:57:59 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 1 Aug 2011 14:57:59 +0100 Subject: Reviewer needed: another backport to IcedTea6 HEAD - "6934356: Vector.writeObject() serialization may deadlock" In-Reply-To: <4E32E1F1.5020009@redhat.com> References: <4E32E1F1.5020009@redhat.com> Message-ID: <20110801135759.GE16219@rivendell.middle-earth.co.uk> On 18:38 Fri 29 Jul , Pavel Tisnovsky wrote: > Greetings, > > Here's another backport I'd like to push to IcedTea6 HEAD: > "6934356: Vector.writeObject() serialization may deadlock" > > > I had to change the original patch in following way: > > - changed line numbers for patching the file > "jdk/src/share/classes/java/util/Vector.java" > > - replace the new "diamond operator" <> by the style used by JDK6, ie.: > private static final List exceptions = new > ArrayList(); > instead of > private static final List exceptions = new ArrayList<>(); > > > > ChangeLog entry: > > 2011-07-29 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch: > Backport of 6934356. > > > Can anybody please review this fix? > > Cheers, > Pavel Approved. > diff -r c1229a523e02 Makefile.am > --- a/Makefile.am Fri Jul 29 11:23:42 2011 +0200 > +++ b/Makefile.am Fri Jul 29 18:21:12 2011 +0200 > @@ -370,7 +370,8 @@ > 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/6669869-Beans_isDesignTime_should_be_per-AppContext.patch \ > + patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch > > if WITH_RHINO > ICEDTEA_PATCHES += \ > diff -r c1229a523e02 NEWS > --- a/NEWS Fri Jul 29 11:23:42 2011 +0200 > +++ b/NEWS Fri Jul 29 18:21:12 2011 +0200 > @@ -363,6 +363,7 @@ > - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux > - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings > - S6669869: Beans.isDesignTime() and other queries should be per-AppContext > + - S6934356: Vector.writeObject() serialization may deadlock > * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" > * CACAO > - Threadlist & threadobject improvements. > diff -r c1229a523e02 patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch Fri Jul 29 18:21:12 2011 +0200 > @@ -0,0 +1,293 @@ > +# HG changeset patch > +# User mduigou > +# Date 1297708731 28800 > +# Node ID 28037efa90a3ac3740897685b238f4a3318c237e > +# Parent 21a1e86dedc2091d47562a676a19f72bbc58c0bf > +6934356: Vector.writeObject() serialization may deadlock > +Summary: No longer synchronize on self while writing other objects. > +Reviewed-by: alanb, forax, mduigou, peterjones > +Contributed-by: Neil Richards > + > +diff -r 21a1e86dedc2 -r 28037efa90a3 src/share/classes/java/util/Vector.java > +--- openjdk.orig/jdk/src/share/classes/java/util/Vector.java Fri Feb 11 17:09:35 2011 -0800 > ++++ openjdk/jdk/src/share/classes/java/util/Vector.java Mon Feb 14 10:38:51 2011 -0800 > +@@ -1027,13 +1027,21 @@ > + > + /** > + * Save the state of the {@code Vector} instance to a stream (that > +- * is, serialize it). This method is present merely for synchronization. > +- * It just calls the default writeObject method. > ++ * is, serialize it). > ++ * This method performs synchronization to ensure the consistency > ++ * of the serialized data. > + */ > +- private synchronized void writeObject(java.io.ObjectOutputStream s) > +- throws java.io.IOException > +- { > +- s.defaultWriteObject(); > ++ private void writeObject(java.io.ObjectOutputStream s) > ++ throws java.io.IOException { > ++ final java.io.ObjectOutputStream.PutField fields = s.putFields(); > ++ final Object[] data; > ++ synchronized (this) { > ++ fields.put("capacityIncrement", capacityIncrement); > ++ fields.put("elementCount", elementCount); > ++ data = elementData.clone(); > ++ } > ++ fields.put("elementData", data); > ++ s.writeFields(); > + } > + > + /** > +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SerializationDeadlock.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/util/Vector/SerializationDeadlock.java Mon Feb 14 10:38:51 2011 -0800 > +@@ -0,0 +1,157 @@ > ++/* > ++ * Copyright (c) 2010, 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. > ++ */ > ++ > ++/* > ++ * Portions Copyright (c) 2010, 2011 IBM Corporation > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6934356 > ++ * @summary Serializing Vector objects which refer to each other should not be able to deadlock. > ++ * @author Neil Richards , > ++ */ > ++ > ++import java.io.ByteArrayOutputStream; > ++import java.io.IOException; > ++import java.io.ObjectOutputStream; > ++import java.io.PrintWriter; > ++import java.io.Serializable; > ++import java.io.StringWriter; > ++import java.util.ArrayList; > ++import java.util.List; > ++import java.util.Vector; > ++import java.util.concurrent.CyclicBarrier; > ++ > ++public class SerializationDeadlock { > ++ public static void main(final String[] args) throws Exception { > ++ // Test for Vector serialization deadlock > ++ final Vector v1 = new Vector(); > ++ final Vector v2 = new Vector(); > ++ final TestBarrier testStart = new TestBarrier(3); > ++ > ++ // Populate the vectors so that they refer to each other > ++ v1.add(testStart); > ++ v1.add(v2); > ++ v2.add(testStart); > ++ v2.add(v1); > ++ > ++ final CyclicBarrier testEnd = new CyclicBarrier(3); > ++ final TestThread t1 = new TestThread(v1, testEnd); > ++ final TestThread t2 = new TestThread(v2, testEnd); > ++ > ++ t1.start(); > ++ t2.start(); > ++ > ++ // Wait for both test threads to have initiated serialization > ++ // of the 'testStart' object (and hence of both 'v1' and 'v2') > ++ testStart.await(); > ++ > ++ // Wait for both test threads to successfully finish serialization > ++ // of 'v1' and 'v2'. > ++ System.out.println("Waiting for Vector serialization to complete ..."); > ++ System.out.println("(This test will hang if serialization deadlocks)"); > ++ testEnd.await(); > ++ System.out.println("Test PASSED: serialization completed successfully"); > ++ > ++ TestThread.handleExceptions(); > ++ } > ++ > ++ static final class TestBarrier extends CyclicBarrier > ++ implements Serializable { > ++ public TestBarrier(final int count) { > ++ super(count); > ++ } > ++ > ++ private void writeObject(final ObjectOutputStream oos) > ++ throws IOException { > ++ oos.defaultWriteObject(); > ++ // Wait until all test threads have started serializing data > ++ try { > ++ await(); > ++ } catch (final Exception e) { > ++ throw new IOException("Test ERROR: Unexpected exception caught", e); > ++ } > ++ } > ++ } > ++ > ++ static final class TestThread extends Thread { > ++ private static final List exceptions = new ArrayList(); > ++ > ++ private final Vector vector; > ++ private final CyclicBarrier testEnd; > ++ > ++ public TestThread(final Vector vector, final CyclicBarrier testEnd) { > ++ this.vector = vector; > ++ this.testEnd = testEnd; > ++ setDaemon(true); > ++ } > ++ > ++ public void run() { > ++ try { > ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); > ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); > ++ > ++ oos.writeObject(vector); > ++ oos.close(); > ++ } catch (final IOException ioe) { > ++ addException(ioe); > ++ } finally { > ++ try { > ++ testEnd.await(); > ++ } catch (Exception e) { > ++ addException(e); > ++ } > ++ } > ++ } > ++ > ++ private static synchronized void addException(final Exception exception) { > ++ exceptions.add(exception); > ++ } > ++ > ++ public static synchronized void handleExceptions() { > ++ if (false == exceptions.isEmpty()) { > ++ throw new RuntimeException(getErrorText(exceptions)); > ++ } > ++ } > ++ > ++ private static String getErrorText(final List exceptions) { > ++ final StringWriter sw = new StringWriter(); > ++ final PrintWriter pw = new PrintWriter(sw); > ++ > ++ pw.println("Test ERROR: Unexpected exceptions thrown on test threads:"); > ++ for (Exception exception : exceptions) { > ++ pw.print("\t"); > ++ pw.println(exception); > ++ for (StackTraceElement element : exception.getStackTrace()) { > ++ pw.print("\t\tat "); > ++ pw.println(element); > ++ } > ++ } > ++ > ++ pw.close(); > ++ return sw.toString(); > ++ } > ++ } > ++} > ++ > +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SimpleSerialization.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/util/Vector/SimpleSerialization.java Mon Feb 14 10:38:51 2011 -0800 > +@@ -0,0 +1,87 @@ > ++/* > ++ * Copyright (c) 2010, 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. > ++ */ > ++ > ++/* > ++ * Portions Copyright (c) 2010, 2011 IBM Corporation > ++ */ > ++ > ++/* > ++ * @test > ++ * @bug 6934356 > ++ * @summary A serialized Vector can be successfully de-serialized. > ++ * @author Neil Richards , > ++ */ > ++ > ++import java.io.ByteArrayInputStream; > ++import java.io.ByteArrayOutputStream; > ++import java.io.IOException; > ++import java.io.ObjectInputStream; > ++import java.io.ObjectOutputStream; > ++import java.io.PrintWriter; > ++import java.io.StringWriter; > ++import java.util.Vector; > ++ > ++public class SimpleSerialization { > ++ public static void main(final String[] args) throws Exception { > ++ final Vector v1 = new Vector(); > ++ > ++ v1.add("entry1"); > ++ v1.add("entry2"); > ++ > ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); > ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); > ++ > ++ oos.writeObject(v1); > ++ oos.close(); > ++ > ++ final byte[] data = baos.toByteArray(); > ++ final ByteArrayInputStream bais = new ByteArrayInputStream(data); > ++ final ObjectInputStream ois = new ObjectInputStream(bais); > ++ > ++ final Object deserializedObject = ois.readObject(); > ++ ois.close(); > ++ > ++ if (false == v1.equals(deserializedObject)) { > ++ throw new RuntimeException(getFailureText(v1, deserializedObject)); > ++ } > ++ } > ++ > ++ private static String getFailureText(final Object orig, final Object copy) { > ++ final StringWriter sw = new StringWriter(); > ++ final PrintWriter pw = new PrintWriter(sw); > ++ > ++ pw.println("Test FAILED: Deserialized object is not equal to the original object"); > ++ pw.print("\tOriginal: "); > ++ printObject(pw, orig).println(); > ++ pw.print("\tCopy: "); > ++ printObject(pw, copy).println(); > ++ > ++ pw.close(); > ++ return sw.toString(); > ++ } > ++ > ++ private static PrintWriter printObject(final PrintWriter pw, final Object o) { > ++ pw.printf("%s@%08x", o.getClass().getName(), System.identityHashCode(o)); > ++ return pw; > ++ } > ++} -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Mon Aug 1 07:00:55 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 1 Aug 2011 15:00:55 +0100 Subject: [ahughes@redhat.com: Re: Fwd: Re: [RFC] - extended creation of simple reproducers jars] Message-ID: <20110801140055.GG16219@rivendell.middle-earth.co.uk> You seem to have only posted this to me, so the reply didn't go out either... ----- Forwarded message from Dr Andrew John Hughes ----- Date: Mon, 1 Aug 2011 14:59:57 +0100 From: Dr Andrew John Hughes To: Jiri Vanek Subject: Re: Fwd: Re: [RFC] - extended creation of simple reproducers jars User-Agent: Mutt/1.5.21 (2010-09-15) On 13:13 Mon 01 Aug , Jiri Vanek wrote: > ping :) > > -------- Original Message -------- > Subject: Re: [RFC] - extended creation of simple reproducers jars > Date: Tue, 26 Jul 2011 12:49:04 +0200 > From: Jiri Vanek > To: IcedTea Distro List , Dr Andrew John Hughes > > On 07/25/2011 03:56 PM, Dr Andrew John Hughes wrote: > > On 07:19 Wed 20 Jul , Jiri Vanek wrote: > >> > > > > snip... > > > >> > >> I think that I'm following the rest of icedtea-web styl. I'm creating file with list of reproduces in one step, and then compiling and jarring them in second. Please note, that there is much more reproducers then files in each of one of them. > > > > IcedTea-Web uses multiple rules. This is all in one rule. > > Hm... So you are not ok with situation that all directories which will be proceeded are listed in junit-jnlp-dist-dirs.txt - generated by rule before , and then that files are proceeded in runtime cycle? > What is your counsel here? I have an opinion to generate for each of the line (directory) in junit-jnlp-dist-dirs.txt file NAME_java.txt and NAME_notjava.txt which will contains its java/nonJava files. But this will generate quite a lot small files (each wich 1-5 lines). > I still considersolution below as more user-friendly. > Ok, let's go with what you have here, and then we can consider it in more detail once it's in. > Thanx for any advice, J. > > > > >>> > >>> diff -r 4267bb156f08 Makefile.am > >>> --- a/Makefile.am Tue Jul 19 12:14:35 2011 -0400 > >>> +++ b/Makefile.am Tue Jul 19 19:16:19 2011 +0200 > >>> @@ -465,11 +465,18 @@ > >>> stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt > >>> simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ > >> ^^ list gathered in previous step > >>> for dir in "$${simpleReproducers[@]}" ; do \ > >> traversing through this list > >>> + echo "processing: $$dir" ; \ > >>> mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ > >>> - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ > >>> d=`pwd` ; \ > >>> + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ > >>> + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ > >> finding java files of this reproducer > >>> + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ > >> finding non-java files of this reproducer > >>> + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ > >> all java files of this reproducer compiled > >>> + if [ -n "$$notSrcFiles" ] ; then \ > >>> + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ > >> all non src files of reproducer copied. > >>> + fi ; \ > >>> cd $(JNLP_TESTS_DIR)/$$dir/ ; \ > >>> - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ > >>> + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ > >> final jar constructed from classes and copied files. > >>> cd $$d ; \ > >>> cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ > >>> done ; \ > >>> diff -r 4267bb156f08 tests/jnlp_tests/README > >>> --- a/tests/jnlp_tests/README Tue Jul 19 12:14:35 2011 -0400 > >>> +++ b/tests/jnlp_tests/README Tue Jul 19 19:16:19 2011 +0200 > >>> @@ -1,1 +1,2 @@ > >>> -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. > >>> +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. > >>> +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. > >> > > > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 ----- End forwarded message ----- -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Mon Aug 1 07:11:51 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 01 Aug 2011 16:11:51 +0200 Subject: [ahughes@redhat.com: Re: Fwd: Re: [RFC] - extended creation of simple reproducers jars] In-Reply-To: <20110801140055.GG16219@rivendell.middle-earth.co.uk> References: <20110801140055.GG16219@rivendell.middle-earth.co.uk> Message-ID: <4E36B427.4040900@redhat.com> On 08/01/2011 04:00 PM, Dr Andrew John Hughes wrote: > You seem to have only posted this to me, so the reply didn't go out either... YY. Sorry. Your approve have been lost in list:-/ Thanx J. > > ----- Forwarded message from Dr Andrew John Hughes ----- > > Date: Mon, 1 Aug 2011 14:59:57 +0100 > From: Dr Andrew John Hughes > To: Jiri Vanek > Subject: Re: Fwd: Re: [RFC] - extended creation of simple reproducers jars > User-Agent: Mutt/1.5.21 (2010-09-15) > > On 13:13 Mon 01 Aug , Jiri Vanek wrote: >> ping :) >> >> -------- Original Message -------- >> Subject: Re: [RFC] - extended creation of simple reproducers jars >> Date: Tue, 26 Jul 2011 12:49:04 +0200 >> From: Jiri Vanek >> To: IcedTea Distro List, Dr Andrew John Hughes >> >> On 07/25/2011 03:56 PM, Dr Andrew John Hughes wrote: >>> On 07:19 Wed 20 Jul , Jiri Vanek wrote: >>>> >>> >>> snip... >>> >>>> >>>> I think that I'm following the rest of icedtea-web styl. I'm creating file with list of reproduces in one step, and then compiling and jarring them in second. Please note, that there is much more reproducers then files in each of one of them. >>> >>> IcedTea-Web uses multiple rules. This is all in one rule. >> >> Hm... So you are not ok with situation that all directories which will be proceeded are listed in junit-jnlp-dist-dirs.txt - generated by rule before , and then that files are proceeded in runtime cycle? >> What is your counsel here? I have an opinion to generate for each of the line (directory) in junit-jnlp-dist-dirs.txt file NAME_java.txt and NAME_notjava.txt which will contains its java/nonJava files. But this will generate quite a lot small files (each wich 1-5 lines). >> I still considersolution below as more user-friendly. >> > > Ok, let's go with what you have here, and then we can consider it in more detail once it's in. > >> Thanx for any advice, J. >> >>> >>>>> >>>>> diff -r 4267bb156f08 Makefile.am >>>>> --- a/Makefile.am Tue Jul 19 12:14:35 2011 -0400 >>>>> +++ b/Makefile.am Tue Jul 19 19:16:19 2011 +0200 >>>>> @@ -465,11 +465,18 @@ >>>>> stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt >>>>> simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ >>>> ^^ list gathered in previous step >>>>> for dir in "$${simpleReproducers[@]}" ; do \ >>>> traversing through this list >>>>> + echo "processing: $$dir" ; \ >>>>> mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ >>>>> - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ >>>>> d=`pwd` ; \ >>>>> + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ >>>>> + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ >>>> finding java files of this reproducer >>>>> + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ >>>> finding non-java files of this reproducer >>>>> + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ >>>> all java files of this reproducer compiled >>>>> + if [ -n "$$notSrcFiles" ] ; then \ >>>>> + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ >>>> all non src files of reproducer copied. >>>>> + fi ; \ >>>>> cd $(JNLP_TESTS_DIR)/$$dir/ ; \ >>>>> - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ >>>>> + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ >>>> final jar constructed from classes and copied files. >>>>> cd $$d ; \ >>>>> cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ >>>>> done ; \ >>>>> diff -r 4267bb156f08 tests/jnlp_tests/README >>>>> --- a/tests/jnlp_tests/README Tue Jul 19 12:14:35 2011 -0400 >>>>> +++ b/tests/jnlp_tests/README Tue Jul 19 19:16:19 2011 +0200 >>>>> @@ -1,1 +1,2 @@ >>>>> -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. >>>>> +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. >>>>> +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ? simpletest1, simpletest2 and deadlocktest, which tests test?s suite itself and serve as examples of behaviour. >>>> >>> >> > From ptisnovs at icedtea.classpath.org Mon Aug 1 08:07:02 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 01 Aug 2011 15:07:02 +0000 Subject: /hg/icedtea6: S6934356: Vector.writeObject() serialization may d... Message-ID: changeset 2ed07eebd884 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2ed07eebd884 author: ptisnovs date: Mon Aug 01 17:06:47 2011 +0200 S6934356: Vector.writeObject() serialization may deadlock. diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch | 290 ++++++++++ 4 files changed, 300 insertions(+), 1 deletions(-) diffs (335 lines): diff -r c1229a523e02 -r 2ed07eebd884 ChangeLog --- a/ChangeLog Fri Jul 29 11:23:42 2011 +0200 +++ b/ChangeLog Mon Aug 01 17:06:47 2011 +0200 @@ -1,3 +1,10 @@ +2011-08-01 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch: + Backport of 6934356. + 2011-07-29 Pavel Tisnovsky * Makefile.am: added new patch diff -r c1229a523e02 -r 2ed07eebd884 Makefile.am --- a/Makefile.am Fri Jul 29 11:23:42 2011 +0200 +++ b/Makefile.am Mon Aug 01 17:06:47 2011 +0200 @@ -370,7 +370,8 @@ 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/6669869-Beans_isDesignTime_should_be_per-AppContext.patch \ + patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r c1229a523e02 -r 2ed07eebd884 NEWS --- a/NEWS Fri Jul 29 11:23:42 2011 +0200 +++ b/NEWS Mon Aug 01 17:06:47 2011 +0200 @@ -363,6 +363,7 @@ - S6752638: java.awt.GraphicsEnvironment.preferLocaleFonts() throws NPE on Linux - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings - S6669869: Beans.isDesignTime() and other queries should be per-AppContext + - S6934356: Vector.writeObject() serialization may deadlock * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - Threadlist & threadobject improvements. diff -r c1229a523e02 -r 2ed07eebd884 patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch Mon Aug 01 17:06:47 2011 +0200 @@ -0,0 +1,293 @@ +# HG changeset patch +# User mduigou +# Date 1297708731 28800 +# Node ID 28037efa90a3ac3740897685b238f4a3318c237e +# Parent 21a1e86dedc2091d47562a676a19f72bbc58c0bf +6934356: Vector.writeObject() serialization may deadlock +Summary: No longer synchronize on self while writing other objects. +Reviewed-by: alanb, forax, mduigou, peterjones +Contributed-by: Neil Richards + +diff -r 21a1e86dedc2 -r 28037efa90a3 src/share/classes/java/util/Vector.java +--- openjdk.orig/jdk/src/share/classes/java/util/Vector.java Fri Feb 11 17:09:35 2011 -0800 ++++ openjdk/jdk/src/share/classes/java/util/Vector.java Mon Feb 14 10:38:51 2011 -0800 +@@ -1027,13 +1027,21 @@ + + /** + * Save the state of the {@code Vector} instance to a stream (that +- * is, serialize it). This method is present merely for synchronization. +- * It just calls the default writeObject method. ++ * is, serialize it). ++ * This method performs synchronization to ensure the consistency ++ * of the serialized data. + */ +- private synchronized void writeObject(java.io.ObjectOutputStream s) +- throws java.io.IOException +- { +- s.defaultWriteObject(); ++ private void writeObject(java.io.ObjectOutputStream s) ++ throws java.io.IOException { ++ final java.io.ObjectOutputStream.PutField fields = s.putFields(); ++ final Object[] data; ++ synchronized (this) { ++ fields.put("capacityIncrement", capacityIncrement); ++ fields.put("elementCount", elementCount); ++ data = elementData.clone(); ++ } ++ fields.put("elementData", data); ++ s.writeFields(); + } + + /** +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SerializationDeadlock.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/util/Vector/SerializationDeadlock.java Mon Feb 14 10:38:51 2011 -0800 +@@ -0,0 +1,157 @@ ++/* ++ * Copyright (c) 2010, 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. ++ */ ++ ++/* ++ * Portions Copyright (c) 2010, 2011 IBM Corporation ++ */ ++ ++/* ++ * @test ++ * @bug 6934356 ++ * @summary Serializing Vector objects which refer to each other should not be able to deadlock. ++ * @author Neil Richards , ++ */ ++ ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.io.ObjectOutputStream; ++import java.io.PrintWriter; ++import java.io.Serializable; ++import java.io.StringWriter; ++import java.util.ArrayList; ++import java.util.List; ++import java.util.Vector; ++import java.util.concurrent.CyclicBarrier; ++ ++public class SerializationDeadlock { ++ public static void main(final String[] args) throws Exception { ++ // Test for Vector serialization deadlock ++ final Vector v1 = new Vector(); ++ final Vector v2 = new Vector(); ++ final TestBarrier testStart = new TestBarrier(3); ++ ++ // Populate the vectors so that they refer to each other ++ v1.add(testStart); ++ v1.add(v2); ++ v2.add(testStart); ++ v2.add(v1); ++ ++ final CyclicBarrier testEnd = new CyclicBarrier(3); ++ final TestThread t1 = new TestThread(v1, testEnd); ++ final TestThread t2 = new TestThread(v2, testEnd); ++ ++ t1.start(); ++ t2.start(); ++ ++ // Wait for both test threads to have initiated serialization ++ // of the 'testStart' object (and hence of both 'v1' and 'v2') ++ testStart.await(); ++ ++ // Wait for both test threads to successfully finish serialization ++ // of 'v1' and 'v2'. ++ System.out.println("Waiting for Vector serialization to complete ..."); ++ System.out.println("(This test will hang if serialization deadlocks)"); ++ testEnd.await(); ++ System.out.println("Test PASSED: serialization completed successfully"); ++ ++ TestThread.handleExceptions(); ++ } ++ ++ static final class TestBarrier extends CyclicBarrier ++ implements Serializable { ++ public TestBarrier(final int count) { ++ super(count); ++ } ++ ++ private void writeObject(final ObjectOutputStream oos) ++ throws IOException { ++ oos.defaultWriteObject(); ++ // Wait until all test threads have started serializing data ++ try { ++ await(); ++ } catch (final Exception e) { ++ throw new IOException("Test ERROR: Unexpected exception caught", e); ++ } ++ } ++ } ++ ++ static final class TestThread extends Thread { ++ private static final List exceptions = new ArrayList(); ++ ++ private final Vector vector; ++ private final CyclicBarrier testEnd; ++ ++ public TestThread(final Vector vector, final CyclicBarrier testEnd) { ++ this.vector = vector; ++ this.testEnd = testEnd; ++ setDaemon(true); ++ } ++ ++ public void run() { ++ try { ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); ++ ++ oos.writeObject(vector); ++ oos.close(); ++ } catch (final IOException ioe) { ++ addException(ioe); ++ } finally { ++ try { ++ testEnd.await(); ++ } catch (Exception e) { ++ addException(e); ++ } ++ } ++ } ++ ++ private static synchronized void addException(final Exception exception) { ++ exceptions.add(exception); ++ } ++ ++ public static synchronized void handleExceptions() { ++ if (false == exceptions.isEmpty()) { ++ throw new RuntimeException(getErrorText(exceptions)); ++ } ++ } ++ ++ private static String getErrorText(final List exceptions) { ++ final StringWriter sw = new StringWriter(); ++ final PrintWriter pw = new PrintWriter(sw); ++ ++ pw.println("Test ERROR: Unexpected exceptions thrown on test threads:"); ++ for (Exception exception : exceptions) { ++ pw.print("\t"); ++ pw.println(exception); ++ for (StackTraceElement element : exception.getStackTrace()) { ++ pw.print("\t\tat "); ++ pw.println(element); ++ } ++ } ++ ++ pw.close(); ++ return sw.toString(); ++ } ++ } ++} ++ +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SimpleSerialization.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/util/Vector/SimpleSerialization.java Mon Feb 14 10:38:51 2011 -0800 +@@ -0,0 +1,87 @@ ++/* ++ * Copyright (c) 2010, 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. ++ */ ++ ++/* ++ * Portions Copyright (c) 2010, 2011 IBM Corporation ++ */ ++ ++/* ++ * @test ++ * @bug 6934356 ++ * @summary A serialized Vector can be successfully de-serialized. ++ * @author Neil Richards , ++ */ ++ ++import java.io.ByteArrayInputStream; ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.io.ObjectInputStream; ++import java.io.ObjectOutputStream; ++import java.io.PrintWriter; ++import java.io.StringWriter; ++import java.util.Vector; ++ ++public class SimpleSerialization { ++ public static void main(final String[] args) throws Exception { ++ final Vector v1 = new Vector(); ++ ++ v1.add("entry1"); ++ v1.add("entry2"); ++ ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); ++ ++ oos.writeObject(v1); ++ oos.close(); ++ ++ final byte[] data = baos.toByteArray(); ++ final ByteArrayInputStream bais = new ByteArrayInputStream(data); ++ final ObjectInputStream ois = new ObjectInputStream(bais); ++ ++ final Object deserializedObject = ois.readObject(); ++ ois.close(); ++ ++ if (false == v1.equals(deserializedObject)) { ++ throw new RuntimeException(getFailureText(v1, deserializedObject)); ++ } ++ } ++ ++ private static String getFailureText(final Object orig, final Object copy) { ++ final StringWriter sw = new StringWriter(); ++ final PrintWriter pw = new PrintWriter(sw); ++ ++ pw.println("Test FAILED: Deserialized object is not equal to the original object"); ++ pw.print("\tOriginal: "); ++ printObject(pw, orig).println(); ++ pw.print("\tCopy: "); ++ printObject(pw, copy).println(); ++ ++ pw.close(); ++ return sw.toString(); ++ } ++ ++ private static PrintWriter printObject(final PrintWriter pw, final Object o) { ++ pw.printf("%s@%08x", o.getClass().getName(), System.identityHashCode(o)); ++ return pw; ++ } ++} From ptisnovs at redhat.com Tue Aug 2 01:58:47 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 02 Aug 2011 10:58:47 +0200 Subject: Reviewer needed: fixed segfault in IcedTea7-hotspot Message-ID: <4E37BC47.7080702@redhat.com> Greetings, I'd like to add fix in hotspot code created by Andrew Haley to IcedTea7-hotspot. Two issues which are corrected by this fix are discussed in following thread: http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-August/004338.html Here's ChangeLog entry for IcedTea7-HEAD: 2011-08-02 Andrew Haley Fixed two bugs in src/share/vm/runtime/os.cpp which caused random segfaults due to buffer overflow and incorrect usage of int variable instead of char (byte) one. * Makefile.am: (HOTSPOT_CHANGESET): Updated. (HOTSPOT_SHA256SUM): Likewise. Can anybody please review this change? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: hotspot_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110802/9d6a5032/hotspot_hg.diff From jvanek at icedtea.classpath.org Tue Aug 2 02:09:44 2011 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Tue, 02 Aug 2011 09:09:44 +0000 Subject: /hg/icedtea-web: reproducers compilation extended for directory ... Message-ID: changeset 7668bf410571 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=7668bf410571 author: Jiri Vanek date: Tue Aug 02 11:05:47 2011 +0200 reproducers compilation extended for directory structure diffstat: ChangeLog | 7 +++++++ Makefile.am | 11 +++++++++-- tests/jnlp_tests/README | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diffs (45 lines): diff -r 35f3c783e997 -r 7668bf410571 ChangeLog --- a/ChangeLog Tue Jul 26 13:24:16 2011 +0200 +++ b/ChangeLog Tue Aug 02 11:05:47 2011 +0200 @@ -1,3 +1,10 @@ +2011-08-02 Jiri Vanek + + *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): + now are compiled files correctly compiled from directory structure. + Also not java files are copied with expected directory structure and + jarred together with classes. + 2011-07-26 Jiri Vanek *tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java: String diff -r 35f3c783e997 -r 7668bf410571 Makefile.am --- a/Makefile.am Tue Jul 26 13:24:16 2011 +0200 +++ b/Makefile.am Tue Aug 02 11:05:47 2011 +0200 @@ -465,11 +465,18 @@ stamps/netx-dist-tests-prepare-reproducers.stamp: junit-jnlp-dist-dirs.txt simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-dirs.txt `); \ for dir in "$${simpleReproducers[@]}" ; do \ + echo "processing: $$dir" ; \ mkdir -p $(JNLP_TESTS_DIR)/$$dir ; \ - $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/* ; \ d=`pwd` ; \ + cd $(JNLP_TESTS_SRCDIR)/simple/$$dir/srcs/ ; \ + srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \ + notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \ + $(BOOT_DIR)/bin/javac -d $(JNLP_TESTS_DIR)/$$dir/ $$srcFiles ; \ + if [ -n "$$notSrcFiles" ] ; then \ + cp -R --parents $$notSrcFiles $(JNLP_TESTS_DIR)/$$dir/ ; \ + fi ; \ cd $(JNLP_TESTS_DIR)/$$dir/ ; \ - $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ + $(BOOT_DIR)/bin/jar cf $(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar * ; \ cd $$d ; \ cp -R $(JNLP_TESTS_SRCDIR)/simple/$$dir/resources/* $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \ done ; \ diff -r 35f3c783e997 -r 7668bf410571 tests/jnlp_tests/README --- a/tests/jnlp_tests/README Tue Jul 26 13:24:16 2011 +0200 +++ b/tests/jnlp_tests/README Tue Aug 02 11:05:47 2011 +0200 @@ -1,1 +1,2 @@ -Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ??? simpletest1, simpletest2 and deadlocktest, which tests test???s suite itself and serve as examples of behaviour. +Each file in directory simple must follows naming convention and is compiled/jared automatically into server's working directory and content of resources likewise. The name of jnlp is independent, and there can be even more jnlps for each future jar. Directories should be honored in srcs and in resources, but noty in testcases. +Files in advanced directory have to care about themselves, but even those can have some parts inside simple directory, so some parts of them are processed automatically. There are three reproducers ??? simpletest1, simpletest2 and deadlocktest, which tests test???s suite itself and serve as examples of behaviour. From ptisnovs at icedtea.classpath.org Tue Aug 2 04:45:48 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 02 Aug 2011 11:45:48 +0000 Subject: /hg/gfx-test: Create new test cases. Message-ID: changeset 8ef45900ab71 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8ef45900ab71 author: Pavel Tisnovsky date: Tue Aug 02 13:47:28 2011 +0200 Create new test cases. diffstat: ChangeLog | 4 + src/org/gfxtest/testsuites/PathsFromLines.java | 521 ++++++++++++++++++++++++- 2 files changed, 519 insertions(+), 6 deletions(-) diffs (truncated from 585 to 500 lines): diff -r a7c8d2ce958c -r 8ef45900ab71 ChangeLog --- a/ChangeLog Mon Aug 01 12:06:10 2011 +0200 +++ b/ChangeLog Tue Aug 02 13:47:28 2011 +0200 @@ -1,3 +1,7 @@ +2011-08-02 Pavel Tisnovsky + * src/org/gfxtest/testsuites/PathsFromLines.java: created new test + cases. + 2011-08-01 Pavel Tisnovsky * src/org/gfxtest/harness/ExternalCommands.java: * src/org/gfxtest/framework/GfxTestConfiguration.java: diff -r a7c8d2ce958c -r 8ef45900ab71 src/org/gfxtest/testsuites/PathsFromLines.java --- a/src/org/gfxtest/testsuites/PathsFromLines.java Mon Aug 01 12:06:10 2011 +0200 +++ b/src/org/gfxtest/testsuites/PathsFromLines.java Tue Aug 02 13:47:28 2011 +0200 @@ -51,7 +51,8 @@ /** - * These tests renders various shapes using Path2D class. + * These tests renders various shapes using Path2D class. Shapes are constructed + * only from line segments. * * @author Pavel Tisnovsky */ @@ -121,6 +122,52 @@ { return createLinePath(x, BORDER_WIDTH, x, height - BORDER_WIDTH); } + + /** + * This method creates Path2D consisting of two line segments, using right + * angle between these segments. + * + * @param width + * image width (not including borders) + * @param height + * image height (not including borders) + * @return created Path2D object + */ + private static Path2D createPathContainingRightAngleLShape(int width, int height) + { + Path2D path = new Path2D.Float(); + path.moveTo(BORDER_WIDTH, BORDER_WIDTH); + path.lineTo(BORDER_WIDTH, height - BORDER_WIDTH); + path.lineTo(width - BORDER_WIDTH, height - BORDER_WIDTH); + return path; + } + + /** + * This method creates Path2D consisting of two line segments, using right + * angle between these segments. + * + * @param width + * image width (not including borders) + * @param height + * image height (not including borders) + * @return created Path2D object + */ + private static Path2D createPathContainingRightAngleVShape(int width, int height) + { + // calculate horizontal and vertical length of line segments + int length = width > height ? height : width; + length >>= 1; + + // calculate center point + int xCenter = width >> 1; + + // create path2D + Path2D path = new Path2D.Float(); + path.moveTo(xCenter - length, BORDER_WIDTH); + path.lineTo(xCenter, BORDER_WIDTH + length); + path.lineTo(xCenter + length, BORDER_WIDTH); + return path; + } /** * Computes color for line drawn by different angle @@ -129,7 +176,7 @@ * counter * @return color computed for a given index */ - private Color computeColorForSlopedLine(int index) + private static Color computeColorForSlopedLine(int index) { return new Color(Color.HSBtoRGB((float) index / ANGLES, 1.0f, 1.0f)); } @@ -145,7 +192,7 @@ * counter * @return new sloped line represented by an instance of Path2D */ - private Path2D createSlopedLine(int xc, int yc, int index) + private static Path2D createSlopedLine(int xc, int yc, int index) { int majorRadius = (xc > yc ? yc : xc) - 20; double angle = 2.0 * index / ANGLES * Math.PI; @@ -163,6 +210,54 @@ } /** + * Draw path consisting of two line segments using right angle between two + * segments. The final path is similar to L-shape. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + private static TestResult drawPathWithRightAngleLShape(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // create path + Path2D path = createPathContainingRightAngleLShape(image.getWidth(), image.getHeight()); + + // draw path + graphics.draw(path); + + // return value + return TestResult.PASSED; + } + + /** + * Draw path consisting of two line segments using right angle between two + * segments. The final path is similar to V-shape. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + */ + private static TestResult drawPathWithRightAngleVShape(TestImage image, Graphics2D graphics) + { + // set drawing color + graphics.setColor(Color.BLACK); + + // create path + Path2D path = createPathContainingRightAngleVShape(image.getWidth(), image.getHeight()); + + // draw path + graphics.draw(path); + + // return value + return TestResult.PASSED; + } + + /** * Draw color wheel using 'ANGLES' lines * * @param image @@ -170,7 +265,7 @@ * @param graphics2d * graphics canvas */ - private void drawColorWheel(TestImage image, Graphics2D graphics) + private static void drawColorWheel(TestImage image, Graphics2D graphics) { // compute center of the image int xc = image.getCenterX(); @@ -657,9 +752,423 @@ } /** + * Draw L-shaped shape consisting of two line segments. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShape(TestImage image, Graphics2D graphics) + { + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and default caps & join. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapDefJoinDef(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10)); + + // draw the path + drawPathWithRightAngleLShape(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_BEVEL. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapButtJoinBevel(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_SQUARE, JOIN_BEVEL. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapSquareJoinBevel(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_ROUND, JOIN_BEVEL. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapRoundJoinBevel(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_MITER. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapButtJoinMiter(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_SQUARE, JOIN_MITER. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapSquareJoinMiter(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_ROUND, JOIN_MITER. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapRoundJoinMiter(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_ROUND. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapButtJoinRound(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_SQUARE, JOIN_ROUND. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapSquareJoinRound(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw L-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_ROUND, JOIN_ROUND. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleLShapeCapRoundJoinRound(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); + + // draw the path and return test result + return drawPathWithRightAngleLShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShape(TestImage image, Graphics2D graphics) + { + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and default caps & join. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapDefJoinDef(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_BEVEL. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapButtJoinBevel(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_MITER. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapButtJoinMiter(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_BUTT, JOIN_ROUND. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapButtJoinRound(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_ROUND, JOIN_BEVEL. + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapRoundJoinBevel(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** + * Draw V-shaped shape consisting of two line segments using 10 pixels wide + * stroke and CAP_ROUND, JOIN_MITER . + * + * @param image + * image to which line is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testDrawRightAngleVShapeCapRoundJoinMiter(TestImage image, Graphics2D graphics) + { + // set stroke to 10 pixel width + graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)); + + // draw the path and return test result + return drawPathWithRightAngleVShape(image, graphics); + } + + /** From xranby at icedtea.classpath.org Tue Aug 2 06:11:48 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 13:11:48 +0000 Subject: /hg/icedtea6: JamVM: Updated to 2011-08-01 revision. Message-ID: changeset 013f83c2fa16 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=013f83c2fa16 author: Xerxes R?nby date: Tue Aug 02 15:02:27 2011 +0200 JamVM: Updated to 2011-08-01 revision. 2011-08-02 Xerxes R?nby JamVM - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. - Fix class GC with classes containing Miranda methods. - Propogate initialisation errors to top-level * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 13 +++++++++++++ Makefile.am | 4 ++-- NEWS | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diffs (49 lines): diff -r 2ed07eebd884 -r 013f83c2fa16 ChangeLog --- a/ChangeLog Mon Aug 01 17:06:47 2011 +0200 +++ b/ChangeLog Tue Aug 02 15:02:27 2011 +0200 @@ -1,3 +1,16 @@ +2011-08-02 Xerxes R??nby + + JamVM + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-01 Pavel Tisnovsky * Makefile.am: added new patch diff -r 2ed07eebd884 -r 013f83c2fa16 Makefile.am --- a/Makefile.am Mon Aug 01 17:06:47 2011 +0200 +++ b/Makefile.am Tue Aug 02 15:02:27 2011 +0200 @@ -11,8 +11,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = f8b8e8e78ec057a5852ff8c0f3386b48f3eca907 -JAMVM_SHA256SUM = 4107152b0a840656f3551c9b21cb52696417ba6d597457a8b34c86437f9ce64e +JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da +JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 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 diff -r 2ed07eebd884 -r 013f83c2fa16 NEWS --- a/NEWS Mon Aug 01 17:06:47 2011 +0200 +++ b/NEWS Tue Aug 02 15:02:27 2011 +0200 @@ -368,6 +368,11 @@ * CACAO - Threadlist & threadobject improvements. * JamVM + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level. - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). - Move lazy-loading to init function. From xranby at icedtea.classpath.org Tue Aug 2 06:36:13 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 13:36:13 +0000 Subject: /hg/icedtea7: JamVM: Updated to 2011-08-01 revision. Message-ID: changeset 877ad5f00f69 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=877ad5f00f69 author: Xerxes R?nby date: Tue Aug 02 15:26:54 2011 +0200 JamVM: Updated to 2011-08-01 revision. 2011-08-02 Xerxes R?nby JamVM - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. - Fix class GC with classes containing Miranda methods. - Propogate initialisation errors to top-level. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 13 +++++++++++++ Makefile.am | 4 ++-- NEWS | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diffs (49 lines): diff -r 05b8c708dced -r 877ad5f00f69 ChangeLog --- a/ChangeLog Sat Jul 30 01:23:51 2011 +0100 +++ b/ChangeLog Tue Aug 02 15:26:54 2011 +0200 @@ -1,3 +1,16 @@ +2011-08-02 Xerxes R??nby + + JamVM + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. + (JAMVM_SHA256SUM): Updated. + 2011-07-29 Andrew John Hughes PR717: All non-bootstrap patches in IcedTea7 diff -r 05b8c708dced -r 877ad5f00f69 Makefile.am --- a/Makefile.am Sat Jul 30 01:23:51 2011 +0100 +++ b/Makefile.am Tue Aug 02 15:26:54 2011 +0200 @@ -24,8 +24,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = f8b8e8e78ec057a5852ff8c0f3386b48f3eca907 -JAMVM_SHA256SUM = 4107152b0a840656f3551c9b21cb52696417ba6d597457a8b34c86437f9ce64e +JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da +JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 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 diff -r 05b8c708dced -r 877ad5f00f69 NEWS --- a/NEWS Sat Jul 30 01:23:51 2011 +0100 +++ b/NEWS Tue Aug 02 15:26:54 2011 +0200 @@ -24,6 +24,11 @@ - Add missing describe_pd method for Zero. * JamVM - JamVM is self-hosting. + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level. - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). - Move lazy-loading to init function. From xranby at icedtea.classpath.org Tue Aug 2 06:39:46 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 13:39:46 +0000 Subject: /hg/icedtea: JamVM: Updated to 2011-08-01 revision. Message-ID: changeset 7b17eac0147b in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=7b17eac0147b author: Xerxes R?nby date: Tue Aug 02 15:30:27 2011 +0200 JamVM: Updated to 2011-08-01 revision. 2011-08-02 Xerxes R?nby JamVM - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. - Fix class GC with classes containing Miranda methods. - Propogate initialisation errors to top-level. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 13 +++++++++++++ Makefile.am | 4 ++-- NEWS | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diffs (49 lines): diff -r 2ca03e48e0b6 -r 7b17eac0147b ChangeLog --- a/ChangeLog Fri Jul 29 00:23:10 2011 +0100 +++ b/ChangeLog Tue Aug 02 15:30:27 2011 +0200 @@ -1,3 +1,16 @@ +2011-08-02 Xerxes R??nby + + JamVM + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-01 revision. + (JAMVM_SHA256SUM): Updated. + 2011-07-29 Andrew John Hughes (CORBA_SHA256SUM): Fix checksums to match diff -r 2ca03e48e0b6 -r 7b17eac0147b Makefile.am --- a/Makefile.am Fri Jul 29 00:23:10 2011 +0100 +++ b/Makefile.am Tue Aug 02 15:30:27 2011 +0200 @@ -24,8 +24,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = f8b8e8e78ec057a5852ff8c0f3386b48f3eca907 -JAMVM_SHA256SUM = 4107152b0a840656f3551c9b21cb52696417ba6d597457a8b34c86437f9ce64e +JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da +JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 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 diff -r 2ca03e48e0b6 -r 7b17eac0147b NEWS --- a/NEWS Fri Jul 29 00:23:10 2011 +0100 +++ b/NEWS Tue Aug 02 15:30:27 2011 +0200 @@ -15,6 +15,11 @@ * JamVM - JamVM is self-hosting. + - Put parsing of -cp and -classpath options back in. + - Fix threading of references list during compaction. + - Further fix to freeClassData for native methods. + - Fix class GC with classes containing Miranda methods. + - Propogate initialisation errors to top-level. - Make classlib init functions consistent + warnings. - Correctly implement sun.misc.Unsafe freeMemory(). - Move lazy-loading to init function. From xerxes at zafena.se Tue Aug 2 08:52:26 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Tue, 02 Aug 2011 17:52:26 +0200 Subject: FYI: JamVM updated to 2011-08-01 revision. Message-ID: <1312300346.1692.35.camel@xranby-ESPRIMO-P7935> Hi all, I have updated JamVM in IcedTea 6, 7 and 8 to the 2011-08-01 revision. http://icedtea.classpath.org/hg/icedtea6/rev/013f83c2fa16 http://icedtea.classpath.org/hg/icedtea7/rev/877ad5f00f69 http://icedtea.classpath.org/hg/icedtea/rev/7b17eac0147b This update will fix a lot of, failed to build from source, bugs when using JamVM in combination with javac to compile external projects. I would be happy to know if you encounter any project out there that fails to build from source when running the JDK langtools using JamVM. Cheers Xerxes From xranby at icedtea.classpath.org Tue Aug 2 10:31:34 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 17:31:34 +0000 Subject: /hg/buildbot: Set max_builds=1 for natty-armv7l, parallel builds... Message-ID: changeset 72b7c9af032c in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=72b7c9af032c author: Xerxes R?nby date: Tue Aug 02 19:22:02 2011 +0200 Set max_builds=1 for natty-armv7l, parallel builds sometimes cause one of the builds to timeout. diffstat: icedtea/master.cfg | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r c02bdc56dc6e -r 72b7c9af032c icedtea/master.cfg --- a/icedtea/master.cfg Fri May 20 12:50:08 2011 +0200 +++ b/icedtea/master.cfg Tue Aug 02 19:22:02 2011 +0200 @@ -30,7 +30,7 @@ max_builds=3), BuildSlave("natty-armv7l", getpw("natty-armv7l"), - max_builds=2), + max_builds=1), BuildSlave("jaunty-ia32", getpw("jaunty-ia32"), max_builds=3), From xranby at icedtea.classpath.org Tue Aug 2 10:37:46 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 17:37:46 +0000 Subject: /hg/buildbot: Make the Icedtea 7 builders build the icedtea7 bra... Message-ID: changeset 7c62f6d0b732 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=7c62f6d0b732 author: Xerxes R?nby date: Tue Aug 02 19:28:28 2011 +0200 Make the Icedtea 7 builders build the icedtea7 branch. diffstat: icedtea/master.cfg | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diffs (39 lines): diff -r 72b7c9af032c -r 7c62f6d0b732 icedtea/master.cfg --- a/icedtea/master.cfg Tue Aug 02 19:22:02 2011 +0200 +++ b/icedtea/master.cfg Tue Aug 02 19:28:28 2011 +0200 @@ -52,7 +52,7 @@ from buildbot.scheduler import Scheduler c['schedulers'] = [] -# "Quick" schedulers for icedtea6 and 7 (branch called "icedtea") +# "Quick" schedulers for icedtea6 and 7 # Schedules a quick build (no jdk-check, no documentation) # after waiting 5 minutes for any more changes. Should finish in less # than an hour. @@ -77,7 +77,7 @@ "icedtea6-squeeze-armv5tel-quick-shark"] )) -c['schedulers'].append(Scheduler(name="icedtea7-quick", branch="icedtea", +c['schedulers'].append(Scheduler(name="icedtea7-quick", branch="icedtea7", treeStableTimer=5*60, builderNames=["icedtea7-squeeze-x86_64-quick", "icedtea7-squeeze-armv5tel-quick", @@ -100,7 +100,7 @@ "testrepo-jaunty-ia32", "testrepo-squeeze-armv5tel"])) -# Full scheduler for icedtea6 or icedtea (icedtea7) branches. +# Full scheduler for icedtea6 or icedtea7 branches. # Triggers every 8 hours if there were changes. Schedules a full build # that includes documentation and jdk-check. Takes multiple hours. # The trigger times are shifted 4 hours to minimize overlap. @@ -110,7 +110,7 @@ hour=range(0, 24, 8), minute=38, builderNames=["icedtea6-squeeze-x86_64-full"])) -c['schedulers'].append(Nightly(name="icedtea7-full", branch="icedtea", +c['schedulers'].append(Nightly(name="icedtea7-full", branch="icedtea7", onlyIfChanged=True, hour=range(4, 24, 8), minute=8, From xranby at icedtea.classpath.org Tue Aug 2 12:50:51 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 02 Aug 2011 19:50:51 +0000 Subject: /hg/buildbot: jaunty EOL: jaunty_ia32 builder replaced by karmic... Message-ID: changeset ebaaa32e45e2 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=ebaaa32e45e2 author: Xerxes R?nby date: Tue Aug 02 21:50:37 2011 +0200 jaunty EOL: jaunty_ia32 builder replaced by karmic_ia32. Build factory changes: f3jz replaced by f3kz f3js replaced by f3ks f3jc replaced by f3kc f3jj replaced by f3kj f3ks added check-jdk f3kc added check-jdk f3kj added check-jdk diffstat: icedtea/master.cfg | 141 ++++++++++++++++++++++++++++------------------------ 1 files changed, 75 insertions(+), 66 deletions(-) diffs (258 lines): diff -r 7c62f6d0b732 -r ebaaa32e45e2 icedtea/master.cfg --- a/icedtea/master.cfg Tue Aug 02 19:28:28 2011 +0200 +++ b/icedtea/master.cfg Tue Aug 02 21:50:37 2011 +0200 @@ -31,7 +31,7 @@ BuildSlave("natty-armv7l", getpw("natty-armv7l"), max_builds=1), - BuildSlave("jaunty-ia32", + BuildSlave("karmic-ia32", getpw("jaunty-ia32"), max_builds=3), BuildSlave("squeeze-armv5tel", @@ -67,10 +67,10 @@ "icedtea6-natty-armv7l-quick-cacao", "icedtea6-natty-armv7l-quick-jamvm", "icedtea6-natty-armv7l-quick-shark", - "icedtea6-jaunty-ia32-quick-zero", - "icedtea6-jaunty-ia32-quick-cacao", - "icedtea6-jaunty-ia32-quick-jamvm", - "icedtea6-jaunty-ia32-quick-shark", + "icedtea6-karmic-ia32-quick-zero", + "icedtea6-karmic-ia32-quick-cacao", + "icedtea6-karmic-ia32-quick-jamvm", + "icedtea6-karmic-ia32-quick-shark", "icedtea6-squeeze-armv5tel-quick", "icedtea6-squeeze-armv5tel-quick-cacao", "icedtea6-squeeze-armv5tel-quick-jamvm", @@ -97,7 +97,7 @@ treeStableTimer=60, builderNames=["testrepo-squeeze-x86_64", "testrepo-natty-armv7l", - "testrepo-jaunty-ia32", + "testrepo-karmic-ia32", "testrepo-squeeze-armv5tel"])) # Full scheduler for icedtea6 or icedtea7 branches. @@ -224,9 +224,9 @@ 'slavenames': ["natty-armv7l"], 'builddir': "testrepo_natty_armv7l", 'factory': f2 } -testrepo_builder_jaunty_ia32 = { 'name': "testrepo-jaunty-ia32", - 'slavenames': ["jaunty-ia32"], - 'builddir': "testrepo_jaunty_ia32", +testrepo_builder_karmic_ia32 = { 'name': "testrepo-karmic-ia32", + 'slavenames': ["karmic-ia32"], + 'builddir': "testrepo_karmic_ia32", 'factory': f2 } testrepo_builder_squeeze_armv5tel = { 'name': "testrepo-squeeze-armv5tel", 'slavenames': ["squeeze-armv5tel"], @@ -470,96 +470,105 @@ description="check-langtools", workdir="build", timeout=2400)) -f3jz = factory.BuildFactory() -f3jz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3jz.addStep(ShellCommand(command=["./autogen.sh"], +f3kz = factory.BuildFactory() +f3kz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3kz.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3jz.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3kz.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3jz.addStep(Configure(command=["../src/configure", +f3kz.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-zero"], workdir="build")) -f3jz.addStep(Compile(workdir="build")) -f3jz.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3kz.addStep(Compile(workdir="build")) +f3kz.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3jz.addStep(JTRegCheck(command=["make", "check-langtools"], +f3kz.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) -f3js = factory.BuildFactory() -f3js.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3js.addStep(ShellCommand(command=["./autogen.sh"], +f3ks = factory.BuildFactory() +f3ks.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3ks.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3js.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3ks.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3js.addStep(Configure(command=["../src/configure", +f3ks.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-shark"], workdir="build")) -f3js.addStep(Compile(workdir="build")) -f3js.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3ks.addStep(Compile(workdir="build")) +f3ks.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3js.addStep(JTRegCheck(command=["make", "check-langtools"], +f3ks.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3ks.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=2400)) -f3jc = factory.BuildFactory() -f3jc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3jc.addStep(ShellCommand(command=["./autogen.sh"], +f3kc = factory.BuildFactory() +f3kc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3kc.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3jc.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3kc.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3jc.addStep(Configure(command=["../src/configure", +f3kc.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-cacao"], workdir="build")) -f3jc.addStep(Compile(workdir="build")) -f3jc.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3kc.addStep(Compile(workdir="build")) +f3kc.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3jc.addStep(JTRegCheck(command=["make", "check-langtools"], +f3kc.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3kc.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=2400)) -f3jj = factory.BuildFactory() -f3jj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3jj.addStep(ShellCommand(command=["./autogen.sh"], +f3kj = factory.BuildFactory() +f3kj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3kj.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3jj.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3kj.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3jj.addStep(Configure(command=["../src/configure", +f3kj.addStep(Configure(command=["../src/configure", "--enable-jamvm", "--disable-bootstrap", "--with-parallel-jobs=2", "--disable-docs"], workdir="build")) -f3jj.addStep(Compile(workdir="build")) -f3jj.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3kj.addStep(Compile(workdir="build")) +f3kj.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3jj.addStep(JTRegCheck(command=["make", "check-langtools"], +f3kj.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3kj.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=2400)) f3a5 = factory.BuildFactory() f3a5.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -694,26 +703,26 @@ 'slavenames': ["natty-armv7l"], 'builddir': "icedtea6-natty-armv7l-quick-shark", 'factory': f3ans } -icedtea6_builder_quick_ia32_jaunty_shark = { - 'name': "icedtea6-jaunty-ia32-quick-shark", - 'slavenames': ["jaunty-ia32"], - 'builddir': "icedtea6-jaunty-ia32-quick-shark", - 'factory': f3js } -icedtea6_builder_quick_ia32_jaunty_cacao = { - 'name': "icedtea6-jaunty-ia32-quick-cacao", - 'slavenames': ["jaunty-ia32"], - 'builddir': "icedtea6-jaunty-ia32-quick-cacao", - 'factory': f3jc } -icedtea6_builder_quick_ia32_jaunty_jamvm = { - 'name': "icedtea6-jaunty-ia32-quick-jamvm", - 'slavenames': ["jaunty-ia32"], - 'builddir': "icedtea6-jaunty-ia32-quick-jamvm", - 'factory': f3jj } -icedtea6_builder_quick_ia32_jaunty_zero = { - 'name': "icedtea6-jaunty-ia32-quick-zero", - 'slavenames': ["jaunty-ia32"], - 'builddir': "icedtea6-jaunty-ia32-quick-zero", - 'factory': f3jz } +icedtea6_builder_quick_ia32_karmic_shark = { + 'name': "icedtea6-karmic-ia32-quick-shark", + 'slavenames': ["karmic-ia32"], + 'builddir': "icedtea6-karmic-ia32-quick-shark", + 'factory': f3ks } +icedtea6_builder_quick_ia32_karmic_cacao = { + 'name': "icedtea6-karmic-ia32-quick-cacao", + 'slavenames': ["karmic-ia32"], + 'builddir': "icedtea6-karmic-ia32-quick-cacao", + 'factory': f3kc } +icedtea6_builder_quick_ia32_karmic_jamvm = { + 'name': "icedtea6-karmic-ia32-quick-jamvm", + 'slavenames': ["karmic-ia32"], + 'builddir': "icedtea6-karmic-ia32-quick-jamvm", + 'factory': f3kj } +icedtea6_builder_quick_ia32_karmic_zero = { + 'name': "icedtea6-karmic-ia32-quick-zero", + 'slavenames': ["karmic-ia32"], + 'builddir': "icedtea6-karmic-ia32-quick-zero", + 'factory': f3kz } icedtea6_builder_quick_armv5tel_squeeze = { 'name': "icedtea6-squeeze-armv5tel-quick", 'slavenames': ["squeeze-armv5tel"], @@ -795,10 +804,10 @@ icedtea6_builder_quick_arm_natty_cacao, icedtea6_builder_quick_arm_natty_jamvm, icedtea6_builder_quick_arm_natty_shark, - icedtea6_builder_quick_ia32_jaunty_shark, - icedtea6_builder_quick_ia32_jaunty_cacao, - icedtea6_builder_quick_ia32_jaunty_jamvm, - icedtea6_builder_quick_ia32_jaunty_zero, + icedtea6_builder_quick_ia32_karmic_shark, + icedtea6_builder_quick_ia32_karmic_cacao, + icedtea6_builder_quick_ia32_karmic_jamvm, + icedtea6_builder_quick_ia32_karmic_zero, icedtea6_builder_quick_armv5tel_squeeze, icedtea6_builder_quick_armv5tel_squeeze_cacao, icedtea6_builder_quick_armv5tel_squeeze_jamvm, @@ -813,7 +822,7 @@ icedtea_web_builder_natty_armv7l, testrepo_builder_x86_64, testrepo_builder_natty_armv7l, - testrepo_builder_jaunty_ia32, + testrepo_builder_karmic_ia32, testrepo_builder_squeeze_armv5tel ] ####### STATUS TARGETS From smohamma at redhat.com Tue Aug 2 14:06:32 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Tue, 2 Aug 2011 17:06:32 -0400 (EDT) Subject: [RFC[PATCH]: Patch fix for algorithm that verifies signed JNLP file s In-Reply-To: <236751259.774383.1312317137633.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Message-ID: <1809332081.775078.1312319192159.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> I have read all the comments and reviews on my previous patch that added the algorithm of checking signed JNLP files. I want to thank you all for your input, it was a big help to me. Since I have committed one of the patches, I have attached a new patch that addresses the issues we had with the previous patch. CHANGELOG: 2011-08-02 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: (JNLPMatcher): Removed NullPointerException from being thrown, caught and then thrown again via JNLPMatcherException. This was replaced by throwing a checked exception [JNLPMatcherException] directly. (JNLPMatcher): Removed unused code [getters] (JNLPMatcher): Closed Input/Output streams that were opened. (isMatch): Removed caching of return value (closeInputStream): Added this method to close input streams (closeOutputStream): Added this method to close output streama * netx/net/sourceforge/jnlp/Node.java: Removed getAttributeNames() method from the commented section FYI, I have not attached the implementation of verifying signed JNLP file when launching the application (Patch 2 from previous emails with subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch]). I have discovered some new changes that should be implemented: - The main jar file is ONLY checked for a signed JNLP file (It should not check other jar resource; just the jar with the main class) - As Omair pointed out, we have to handle "lazy" jars differently. At the moment, there is a bug that I will need to fix before I can continue: all 'lazy' jars are automatically considered unsigned by IcedTea-Web (even ones with valid signatures) [http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765] - Applications with a valid signed JNLP file have special security privileges and also allows special arguments to be passed though using "java-vm-args" attribute within the js2e element. I have also read that special properties can be used with a signed JNLP file application. I am uncertain if there are any properties or vm arguments that IcedTea-Web has restricted unless the application has certain permissions. [http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0] -------------- next part -------------- A non-text attachment was scrubbed... Name: Patch1d.patch Type: text/x-patch Size: 6093 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110802/514d06a5/Patch1d.patch From ahughes at redhat.com Tue Aug 2 22:40:20 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 06:40:20 +0100 Subject: FYI: JamVM updated to 2011-08-01 revision. In-Reply-To: <1312300346.1692.35.camel@xranby-ESPRIMO-P7935> References: <1312300346.1692.35.camel@xranby-ESPRIMO-P7935> Message-ID: <20110803054020.GB31431@rivendell.middle-earth.co.uk> On 17:52 Tue 02 Aug , Xerxes R?nby wrote: > Hi all, > > I have updated JamVM in IcedTea 6, 7 and 8 to the 2011-08-01 revision. > http://icedtea.classpath.org/hg/icedtea6/rev/013f83c2fa16 > http://icedtea.classpath.org/hg/icedtea7/rev/877ad5f00f69 > http://icedtea.classpath.org/hg/icedtea/rev/7b17eac0147b > > This update will fix a lot of, failed to build from source, bugs when > using JamVM in combination with javac to compile external projects. > > I would be happy to know if you encounter any project out there that > fails to build from source when running the JDK langtools using JamVM. > Nice. Thanks for this and for doing all three trees! :-) > Cheers > Xerxes > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 2 22:42:50 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 06:42:50 +0100 Subject: Reviewer needed: fixed segfault in IcedTea7-hotspot In-Reply-To: <4E37BC47.7080702@redhat.com> References: <4E37BC47.7080702@redhat.com> Message-ID: <20110803054250.GC31431@rivendell.middle-earth.co.uk> On 10:58 Tue 02 Aug , Pavel Tisnovsky wrote: > Greetings, > > I'd like to add fix in hotspot code created by Andrew Haley to > IcedTea7-hotspot. > > Two issues which are corrected by this fix are discussed in following > thread: > http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-August/004338.html > I was going to push this myself, so yeah go ahead with the forest update. I'm in the middle of a bump for the changesets anyway, so I'll handle the IcedTea7 side (the loop fixes and some JDK fixes are waiting to go through). > > Here's ChangeLog entry for IcedTea7-HEAD: > > 2011-08-02 Andrew Haley Irrelevant now, but this seems wrong. He may have written the original patch but this is your change to IcedTea7. > > Fixed two bugs in src/share/vm/runtime/os.cpp > which caused random segfaults due to buffer > overflow and incorrect usage of int variable > instead of char (byte) one. > * Makefile.am: > (HOTSPOT_CHANGESET): Updated. > (HOTSPOT_SHA256SUM): Likewise. > > > Can anybody please review this change? > > Thank you in advance, > Pavel > diff -r 02ee527cc0ae src/share/vm/runtime/os.cpp > --- a/src/share/vm/runtime/os.cpp Fri Jul 29 09:16:29 2011 -0700 > +++ b/src/share/vm/runtime/os.cpp Tue Aug 02 09:49:20 2011 +0200 > @@ -1298,7 +1298,7 @@ > size_t sz, i = 0; > > // read until EOF, EOL or buf is full > - while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-1) && buf[i] != '\n') { > + while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-2) && buf[i] != '\n') { > ++i; > } > > @@ -1319,7 +1319,7 @@ > } > > // line is longer than size of buf, skip to EOL > - int ch; > + char ch; > while (read(fd, &ch, 1) == 1 && ch != '\n') { > // Do nothing > } -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 2 22:52:16 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 06:52:16 +0100 Subject: Reviewer needed: fixed segfault in IcedTea7-hotspot In-Reply-To: <4E37BC47.7080702@redhat.com> References: <4E37BC47.7080702@redhat.com> Message-ID: <20110803055216.GG31431@rivendell.middle-earth.co.uk> On 10:58 Tue 02 Aug , Pavel Tisnovsky wrote: > Greetings, > > I'd like to add fix in hotspot code created by Andrew Haley to > IcedTea7-hotspot. > > Two issues which are corrected by this fix are discussed in following > thread: > http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-August/004338.html > > > Here's ChangeLog entry for IcedTea7-HEAD: > > 2011-08-02 Andrew Haley > > Fixed two bugs in src/share/vm/runtime/os.cpp > which caused random segfaults due to buffer > overflow and incorrect usage of int variable > instead of char (byte) one. > * Makefile.am: > (HOTSPOT_CHANGESET): Updated. > (HOTSPOT_SHA256SUM): Likewise. > > > Can anybody please review this change? > > Thank you in advance, > Pavel FYI: It's been allocated 7073913 so include this in the forest commit message. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 2 22:53:42 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 06:53:42 +0100 Subject: [RFC[PATCH]: Patch fix for algorithm that verifies signed JNLP file s In-Reply-To: <1809332081.775078.1312319192159.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> References: <236751259.774383.1312317137633.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <1809332081.775078.1312319192159.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Message-ID: <20110803055342.GH31431@rivendell.middle-earth.co.uk> On 17:06 Tue 02 Aug , Saad Mohammad wrote: > I have read all the comments and reviews on my previous patch that added the algorithm of checking signed JNLP files. I want to thank you all for your input, it was a big help to me. > > Since I have committed one of the patches, I have attached a new patch that addresses the issues we had with the previous patch. > > CHANGELOG: > > 2011-08-02 Saad Mohammad > > * netx/net/sourceforge/jnlp/JNLPMatcher.java: > (JNLPMatcher): Removed NullPointerException from being thrown, caught and > then thrown again via JNLPMatcherException. This was replaced by throwing > a checked exception [JNLPMatcherException] directly. > (JNLPMatcher): Removed unused code [getters] > (JNLPMatcher): Closed Input/Output streams that were opened. > (isMatch): Removed caching of return value > (closeInputStream): Added this method to close input streams > (closeOutputStream): Added this method to close output streama > * netx/net/sourceforge/jnlp/Node.java: > Removed getAttributeNames() method from the commented section > > FYI, > I have not attached the implementation of verifying signed JNLP file when launching the application > (Patch 2 from previous emails with subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch]). > > I have discovered some new changes that should be implemented: > > - The main jar file is ONLY checked for a signed JNLP file (It should not check other jar resource; just the jar with the main class) > > - As Omair pointed out, we have to handle "lazy" jars differently. At the moment, there is a bug that I will need to fix before I can continue: all 'lazy' jars are automatically considered unsigned by > IcedTea-Web (even ones with valid signatures) > [http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765] > > - Applications with a valid signed JNLP file have special security privileges and also allows special arguments to be passed though using "java-vm-args" attribute within the js2e element. I have also read > that special properties can be used with a signed JNLP file application. I am uncertain if there are any properties or vm arguments that IcedTea-Web has restricted unless the application has certain > permissions. > [http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0] > diff -r 7668bf410571 netx/net/sourceforge/jnlp/JNLPMatcher.java > --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Aug 02 11:05:47 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Aug 02 15:11:51 2011 -0400 > @@ -38,10 +38,11 @@ > package net.sourceforge.jnlp; > > import java.util.List; > +import java.io.InputStream; > import java.io.InputStreamReader; > +import java.io.OutputStream; > import java.io.PipedInputStream; > import java.io.PipedOutputStream; > -import java.util.ArrayList; > import java.util.Arrays; > import java.util.Collections; > import java.util.LinkedList; > @@ -59,7 +60,6 @@ > private final Node appTemplateNode; > private final Node launchJNLPNode; > private final boolean isTemplate; > - private Boolean match; > > /** > * Public constructor > @@ -78,26 +78,33 @@ > public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, > boolean isTemplate) throws JNLPMatcherException { > > + if (appTemplate == null && launchJNLP == null) > + throw new JNLPMatcherException( > + "Template JNLP file and Launching JNLP file are both null."); > + else if (appTemplate == null) > + throw new JNLPMatcherException("Template JNLP file is null."); > + else if (launchJNLP == null) > + throw new JNLPMatcherException("Launching JNLP file is null."); > + > + //Declare variables for signed JNLP file > + PipedInputStream pinTemplate= null; > + PipedOutputStream poutTemplate= null; > + > + //Declare variables for launching JNLP file > + PipedInputStream pinJNLPFile = null; > + PipedOutputStream poutJNLPFile = null; > + > try { > - > - if (appTemplate == null && launchJNLP == null) > - throw new NullPointerException( > - "Template JNLP file and Launching JNLP file are both null."); > - else if (appTemplate == null) > - throw new NullPointerException("Template JNLP file is null."); > - else if (launchJNLP == null) > - throw new NullPointerException("Launching JNLP file is null."); > - > XMLElement appTemplateXML = new XMLElement(); > XMLElement launchJNLPXML = new XMLElement(); > > // Remove the comments and CDATA from the JNLP file > - final PipedInputStream pinTemplate = new PipedInputStream(); > - final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); > + pinTemplate = new PipedInputStream(); > + poutTemplate = new PipedOutputStream(pinTemplate); > appTemplateXML.sanitizeInput(appTemplate, poutTemplate); > > - final PipedInputStream pinJNLPFile = new PipedInputStream(); > - final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); > + pinJNLPFile = new PipedInputStream(); > + poutJNLPFile = new PipedOutputStream(pinJNLPFile); > launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); > > // Parse both files > @@ -113,6 +120,14 @@ > throw new JNLPMatcherException( > "Failed to create an instance of JNLPVerify with specified InputStreamReader", > e); > + } finally { > + // Close all stream > + closeInputStream(pinTemplate); > + closeOutputStream(poutTemplate); > + > + closeInputStream(pinJNLPFile); > + closeOutputStream(poutJNLPFile); > + > } > } > > @@ -122,11 +137,9 @@ > * @return true if both JNLP files are 'matched', otherwise false > */ > public boolean isMatch() { > - > - if (match == null) > - match = matchNodes(appTemplateNode, launchJNLPNode); > - > - return match; > + > + return matchNodes(appTemplateNode, launchJNLPNode); > + > } > > /** > @@ -241,32 +254,34 @@ > } > return false; > } > - > - /** > - * Getter for application/template Node > + > + /*** > + * Closes an input stream > * > - * @return the Node of the signed application/template file > + * @param stream > + * The input stream that will be closed > */ > - public Node getAppTemplateNode() { > - return appTemplateNode; > + private void closeInputStream(InputStream stream) { > + if (stream != null) > + try { > + stream.close(); > + } catch (Exception e) { > + e.printStackTrace(System.err); > + } > } > > - /** > - * Getter for launching application Node > + /*** > + * Closes an output stream > * > - * @return the Node of the launching JNLP file > + * @param stream > + * The output stream that will be closed > */ > - public Node getLaunchJNLPNode() { > - return launchJNLPNode; > - } > - > - /** > - * Getter for isTemplate > - * > - * @return true if a signed template is being used for matching; otherwise > - * false. > - */ > - public boolean isTemplate() { > - return isTemplate; > + private void closeOutputStream(OutputStream stream) { > + if (stream != null) > + try { > + stream.close(); > + } catch (Exception e) { > + e.printStackTrace(System.err); > + } > } > } > diff -r 7668bf410571 netx/net/sourceforge/jnlp/Node.java > --- a/netx/net/sourceforge/jnlp/Node.java Tue Aug 02 11:05:47 2011 +0200 > +++ b/netx/net/sourceforge/jnlp/Node.java Tue Aug 02 15:11:51 2011 -0400 > @@ -145,19 +145,6 @@ > return children; > } > > - String[] getAttributeNames() { > - if (attributeNames == null) { > - List list = new ArrayList(); > - > - for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) > - list.add(new String((String) e.nextElement())); > - > - attributeNames = list.toArray(new String[list.size()]); > - > - } > - return attributeNames; > - } > - > String getAttribute(String name) { > return tinyNode.getAttribute(name); > } > This seems to deal with all the issues I mentioned. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Wed Aug 3 02:09:55 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 03 Aug 2011 09:09:55 +0000 Subject: /hg/icedtea7: Fixed bug #7073913 in src/share/vm/runtime/os.cpp Message-ID: changeset e29c130ded8b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=e29c130ded8b author: ptisnovs date: Wed Aug 03 11:09:45 2011 +0200 Fixed bug #7073913 in src/share/vm/runtime/os.cpp diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diffs (38 lines): diff -r 877ad5f00f69 -r e29c130ded8b ChangeLog --- a/ChangeLog Tue Aug 02 15:26:54 2011 +0200 +++ b/ChangeLog Wed Aug 03 11:09:45 2011 +0200 @@ -1,3 +1,13 @@ +2011-08-03 Andrew Haley + + Fixed bug #7073913 in src/share/vm/runtime/os.cpp + which caused random segfaults due to buffer + overflow and incorrect usage of int variable + instead of char (byte) one. + * Makefile.am: + (HOTSPOT_CHANGESET): Updated. + (HOTSPOT_SHA256SUM): Likewise. + 2011-08-02 Xerxes R??nby JamVM diff -r 877ad5f00f69 -r e29c130ded8b Makefile.am --- a/Makefile.am Tue Aug 02 15:26:54 2011 +0200 +++ b/Makefile.am Wed Aug 03 11:09:45 2011 +0200 @@ -3,7 +3,7 @@ OPENJDK_VERSION = b147 CORBA_CHANGESET = 616c760dc288 -HOTSPOT_CHANGESET = ee4dd447f5b9 +HOTSPOT_CHANGESET = 1dd9b3d73b22 JAXP_CHANGESET = c40983d6ae70 JAXWS_CHANGESET = 83db5e316798 JDK_CHANGESET = ccf86bbc61fd @@ -11,7 +11,7 @@ OPENJDK_CHANGESET = 3defd24c2671 CORBA_SHA256SUM = 7589c42e88b4342750bea5afa306cc662cc9c5f7607fad96f70083ce70f4526e -HOTSPOT_SHA256SUM = 6d54c2ce55748e00c6ecb41ea7c0924e3a1db2cbc2a506fdafee645d7efbc705 +HOTSPOT_SHA256SUM = ffb1831a63e950bb7ade46a5382cb71d2603e0f40b3f758eb346833e18fca150 JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 JDK_SHA256SUM = aedc601afad003ae30b9268cd47c229d00636c488ad921ce02883f68f35842e0 From ptisnovs at icedtea.classpath.org Wed Aug 3 06:43:06 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 03 Aug 2011 13:43:06 +0000 Subject: /hg/gfx-test: Quadratic curve tests: refactored and added new te... Message-ID: changeset e7894806a147 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=e7894806a147 author: Pavel Tisnovsky date: Wed Aug 03 15:44:44 2011 +0200 Quadratic curve tests: refactored and added new tests. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/ColorPalette.java | 12 +- src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 503 +++++++++-------- 3 files changed, 291 insertions(+), 229 deletions(-) diffs (truncated from 629 to 500 lines): diff -r 8ef45900ab71 -r e7894806a147 ChangeLog --- a/ChangeLog Tue Aug 02 13:47:28 2011 +0200 +++ b/ChangeLog Wed Aug 03 15:44:44 2011 +0200 @@ -1,3 +1,8 @@ +2011-08-03 Pavel Tisnovsky + * src/org/gfxtest/testsuites/ColorPalette.java: added new method + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: + Refactoring, added new test cases. + 2011-08-02 Pavel Tisnovsky * src/org/gfxtest/testsuites/PathsFromLines.java: created new test cases. diff -r 8ef45900ab71 -r e7894806a147 src/org/gfxtest/framework/ColorPalette.java --- a/src/org/gfxtest/framework/ColorPalette.java Tue Aug 02 13:47:28 2011 +0200 +++ b/src/org/gfxtest/framework/ColorPalette.java Wed Aug 03 15:44:44 2011 +0200 @@ -67,7 +67,7 @@ Color.GRAY, Color.DARK_GRAY }; - + /** * Return color for the specified position in a color palette. * @@ -79,4 +79,14 @@ { return ColorPalette.colors[color % colors.length]; } + + /** + * Returns 12-color palette. + * + * @return test 12-color palette + */ + public static Color[] getColors() + { + return colors; + } } diff -r 8ef45900ab71 -r e7894806a147 src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Tue Aug 02 13:47:28 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Wed Aug 03 15:44:44 2011 +0200 @@ -64,28 +64,41 @@ @Zoom(1) public class NormalQuadraticCurves extends GfxTest { + + /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + /** * Default Y offset of curve end points. */ - private static final int DEFAULT_Y_OFFSET = 20; + private static final int DEFAULT_Y_OFFSET = 40; /** * Draw quadratic curve onto canvas specified by Graphics2D class. * + * @param image + * image to which two dimensional shape is to be rendered * @param graphics * graphics canvas - * @param width - * canvas width - * @param height - * canvas height * @param quadCurve * curve to be drawn * @param color * curve color or null when Color.BLACK can be used. * @return test result status - PASSED, FAILED or ERROR */ - private TestResult drawQuadraticCurve(Graphics2D graphics, int width, int height, QuadCurve2D quadCurve, Color color) + private TestResult drawQuadraticCurve(TestImage image, Graphics2D graphics, QuadCurve2D quadCurve, Color color) { + // calculate image dimensions + int width = image.getWidth(); + int height = image.getHeight(); + // construct QuadCurve2D.Float with set coordinates quadCurve.setCurve(computeX1(width), computeY1(), computeX2(width), computeY2(height), computeX3(width), computeY3()); @@ -103,206 +116,39 @@ * Draw quadratic curve onto canvas specified by Graphics2D class using * black color. * + * @param image + * image to which two dimensional shape is to be rendered * @param graphics * graphics canvas - * @param width - * canvas width - * @param height - * canvas height * @param quadCurve * curve to be drawn * @return test result status - PASSED, FAILED or ERROR */ - private TestResult drawQuadraticCurve(Graphics2D graphics, int w, int h, QuadCurve2D quadCurve) + private TestResult drawQuadraticCurve(TestImage image, Graphics2D graphics, QuadCurve2D quadCurve) { - return drawQuadraticCurve(graphics, w, h, quadCurve, Color.BLACK); + return drawQuadraticCurve(image, graphics, quadCurve, Color.BLACK); } /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. + * Draw set of quadratic curves onto canvas specified by Graphics2D class. + * Curves are drawn using various colors. * * @param image * image to which two dimensional shape is to be rendered * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR + * graphics canvas */ - public TestResult test0(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Double() is rendered - * correctly. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test1(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Double(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide stroke and default - * caps. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test2(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(10)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide stroke and default - * CAP_BUTT. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test3(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // set 10 pixels wide stroke and CAP_BUTT - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide stroke and default - * CAP_ROUND. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test4(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // set 10 pixels wide stroke and CAP_ROUND - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide stroke and default - * CAP_SQUARE. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test5(TestImage image, Graphics2D graphics) - { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); - - // set 10 pixels wide stroke and CAP_SQUARE - graphics.setStroke(new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); - - // create new QuadCurve2D.Float - QuadCurve2D quadCurve = new QuadCurve2D.Float(); - - // draw quadratic curve - return drawQuadraticCurve(graphics, width, height, quadCurve); - } - - /** - * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is drawn using different colors. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult test6(TestImage image, Graphics2D graphics) + private void drawCurveWithVariousColors(TestImage image, Graphics2D graphics) { // calculate image dimensions int width = image.getWidth(); int height = image.getHeight(); // curve colors - Color[] colors = new Color[] - { - Color.BLACK, - Color.BLUE, - Color.CYAN, - Color.GREEN, - Color.ORANGE, - Color.RED, - Color.YELLOW, - Color.GRAY - }; + Color[] colors = ColorPalette.getColors(); // offset counter - int offset = 0; + int offset = DEFAULT_Y_OFFSET; // Draw each curve with different color. for (Color color : colors) @@ -323,11 +169,180 @@ // move next curve down offset += 20; } + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBasicQuadCurveFloat(TestImage image, Graphics2D graphics) + { + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Double() is rendered + * correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBasicQuadCurveDouble(TestImage image, Graphics2D graphics) + { + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Double(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * caps. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStroke(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * caps. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testExtraThickStroke(TestImage image, Graphics2D graphics) + { + // set 30 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * CAP_BUTT. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStrokeCapsButt(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke and CAP_BUTT + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * CAP_ROUND. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStrokeCapsRound(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke and CAP_ROUND + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * CAP_SQUARE. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStrokeCapsSquare(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke and CAP_SQUARE + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is drawn using different colors. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testColors(TestImage image, Graphics2D graphics) + { + // draw set of curves using test color palette + drawCurveWithVariousColors(image, graphics); // test return value return TestResult.PASSED; } - + /** * Test if quadratic curve created by QuadCurve2D.Float() is rendered * correctly. Curve is drawn using different colors and using 10 pixel wide @@ -339,55 +354,87 @@ * graphics context for image * @return test result status - PASSED, FAILED or ERROR */ - public TestResult test7(TestImage image, Graphics2D graphics) + public TestResult testColorsStrokeWidth(TestImage image, Graphics2D graphics) { - // calculate image dimensions - int width = image.getWidth(); - int height = image.getHeight(); + // set 10 pixels wide stroke From smohammad at redhat.com Wed Aug 3 07:29:17 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Wed, 03 Aug 2011 10:29:17 -0400 Subject: [RFC[PATCH]: Patch fix for algorithm that verifies signed JNLP file s In-Reply-To: <20110803055342.GH31431@rivendell.middle-earth.co.uk> References: <236751259.774383.1312317137633.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <1809332081.775078.1312319192159.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <20110803055342.GH31431@rivendell.middle-earth.co.uk> Message-ID: <4E395B3D.7070802@redhat.com> On 08/03/2011 01:53 AM, Dr Andrew John Hughes wrote: > On 17:06 Tue 02 Aug , Saad Mohammad wrote: >> I have read all the comments and reviews on my previous patch that added the algorithm of checking signed JNLP files. I want to thank you all for your input, it was a big help to me. >> >> Since I have committed one of the patches, I have attached a new patch that addresses the issues we had with the previous patch. >> >> CHANGELOG: >> >> 2011-08-02 Saad Mohammad >> >> * netx/net/sourceforge/jnlp/JNLPMatcher.java: >> (JNLPMatcher): Removed NullPointerException from being thrown, caught and >> then thrown again via JNLPMatcherException. This was replaced by throwing >> a checked exception [JNLPMatcherException] directly. >> (JNLPMatcher): Removed unused code [getters] >> (JNLPMatcher): Closed Input/Output streams that were opened. >> (isMatch): Removed caching of return value >> (closeInputStream): Added this method to close input streams >> (closeOutputStream): Added this method to close output streama Oops, I made a little typo there ^ s/streama/streams >> * netx/net/sourceforge/jnlp/Node.java: >> Removed getAttributeNames() method from the commented section >> >> FYI, >> I have not attached the implementation of verifying signed JNLP file when launching the application >> (Patch 2 from previous emails with subject: [RFC][PATCH][icedtea-web]: Added support for signed JNLP file- Updated Patch]). >> >> I have discovered some new changes that should be implemented: >> >> - The main jar file is ONLY checked for a signed JNLP file (It should not check other jar resource; just the jar with the main class) >> >> - As Omair pointed out, we have to handle "lazy" jars differently. At the moment, there is a bug that I will need to fix before I can continue: all 'lazy' jars are automatically considered unsigned by >> IcedTea-Web (even ones with valid signatures) >> [http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765] >> >> - Applications with a valid signed JNLP file have special security privileges and also allows special arguments to be passed though using "java-vm-args" attribute within the js2e element. I have also read >> that special properties can be used with a signed JNLP file application. I am uncertain if there are any properties or vm arguments that IcedTea-Web has restricted unless the application has certain >> permissions. >> [http://forums.oracle.com/forums/thread.jspa?threadID=1359245&tstart=0] >> diff -r 7668bf410571 netx/net/sourceforge/jnlp/JNLPMatcher.java >> --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Aug 02 11:05:47 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Aug 02 15:11:51 2011 -0400 >> @@ -38,10 +38,11 @@ >> package net.sourceforge.jnlp; >> >> import java.util.List; >> +import java.io.InputStream; >> import java.io.InputStreamReader; >> +import java.io.OutputStream; >> import java.io.PipedInputStream; >> import java.io.PipedOutputStream; >> -import java.util.ArrayList; >> import java.util.Arrays; >> import java.util.Collections; >> import java.util.LinkedList; >> @@ -59,7 +60,6 @@ >> private final Node appTemplateNode; >> private final Node launchJNLPNode; >> private final boolean isTemplate; >> - private Boolean match; >> >> /** >> * Public constructor >> @@ -78,26 +78,33 @@ >> public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, >> boolean isTemplate) throws JNLPMatcherException { >> >> + if (appTemplate == null&& launchJNLP == null) >> + throw new JNLPMatcherException( >> + "Template JNLP file and Launching JNLP file are both null."); >> + else if (appTemplate == null) >> + throw new JNLPMatcherException("Template JNLP file is null."); >> + else if (launchJNLP == null) >> + throw new JNLPMatcherException("Launching JNLP file is null."); >> + >> + //Declare variables for signed JNLP file >> + PipedInputStream pinTemplate= null; >> + PipedOutputStream poutTemplate= null; >> + >> + //Declare variables for launching JNLP file >> + PipedInputStream pinJNLPFile = null; >> + PipedOutputStream poutJNLPFile = null; >> + >> try { >> - >> - if (appTemplate == null&& launchJNLP == null) >> - throw new NullPointerException( >> - "Template JNLP file and Launching JNLP file are both null."); >> - else if (appTemplate == null) >> - throw new NullPointerException("Template JNLP file is null."); >> - else if (launchJNLP == null) >> - throw new NullPointerException("Launching JNLP file is null."); >> - >> XMLElement appTemplateXML = new XMLElement(); >> XMLElement launchJNLPXML = new XMLElement(); >> >> // Remove the comments and CDATA from the JNLP file >> - final PipedInputStream pinTemplate = new PipedInputStream(); >> - final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); >> + pinTemplate = new PipedInputStream(); >> + poutTemplate = new PipedOutputStream(pinTemplate); >> appTemplateXML.sanitizeInput(appTemplate, poutTemplate); >> >> - final PipedInputStream pinJNLPFile = new PipedInputStream(); >> - final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); >> + pinJNLPFile = new PipedInputStream(); >> + poutJNLPFile = new PipedOutputStream(pinJNLPFile); >> launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); >> >> // Parse both files >> @@ -113,6 +120,14 @@ >> throw new JNLPMatcherException( >> "Failed to create an instance of JNLPVerify with specified InputStreamReader", >> e); >> + } finally { >> + // Close all stream >> + closeInputStream(pinTemplate); >> + closeOutputStream(poutTemplate); >> + >> + closeInputStream(pinJNLPFile); >> + closeOutputStream(poutJNLPFile); >> + >> } >> } >> >> @@ -122,11 +137,9 @@ >> * @return true if both JNLP files are 'matched', otherwise false >> */ >> public boolean isMatch() { >> - >> - if (match == null) >> - match = matchNodes(appTemplateNode, launchJNLPNode); >> - >> - return match; >> + >> + return matchNodes(appTemplateNode, launchJNLPNode); >> + >> } >> >> /** >> @@ -241,32 +254,34 @@ >> } >> return false; >> } >> - >> - /** >> - * Getter for application/template Node >> + >> + /*** >> + * Closes an input stream >> * >> - * @return the Node of the signed application/template file >> + * @param stream >> + * The input stream that will be closed >> */ >> - public Node getAppTemplateNode() { >> - return appTemplateNode; >> + private void closeInputStream(InputStream stream) { >> + if (stream != null) >> + try { >> + stream.close(); >> + } catch (Exception e) { >> + e.printStackTrace(System.err); >> + } >> } >> >> - /** >> - * Getter for launching application Node >> + /*** >> + * Closes an output stream >> * >> - * @return the Node of the launching JNLP file >> + * @param stream >> + * The output stream that will be closed >> */ >> - public Node getLaunchJNLPNode() { >> - return launchJNLPNode; >> - } >> - >> - /** >> - * Getter for isTemplate >> - * >> - * @return true if a signed template is being used for matching; otherwise >> - * false. >> - */ >> - public boolean isTemplate() { >> - return isTemplate; >> + private void closeOutputStream(OutputStream stream) { >> + if (stream != null) >> + try { >> + stream.close(); >> + } catch (Exception e) { >> + e.printStackTrace(System.err); >> + } >> } >> } >> diff -r 7668bf410571 netx/net/sourceforge/jnlp/Node.java >> --- a/netx/net/sourceforge/jnlp/Node.java Tue Aug 02 11:05:47 2011 +0200 >> +++ b/netx/net/sourceforge/jnlp/Node.java Tue Aug 02 15:11:51 2011 -0400 >> @@ -145,19 +145,6 @@ >> return children; >> } >> >> - String[] getAttributeNames() { >> - if (attributeNames == null) { >> - List list = new ArrayList(); >> - >> - for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) >> - list.add(new String((String) e.nextElement())); >> - >> - attributeNames = list.toArray(new String[list.size()]); >> - >> - } >> - return attributeNames; >> - } >> - >> String getAttribute(String name) { >> return tinyNode.getAttribute(name); >> } >> > This seems to deal with all the issues I mentioned. Excellent, thanks again for the feedback. Does this patch look good to be pushed? Deepak and Jiri? -- Cheers, Saad Mohammad From ptisnovs at icedtea.classpath.org Wed Aug 3 09:05:19 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 03 Aug 2011 16:05:19 +0000 Subject: /hg/gfx-test: Added tests for special cases - multiple control p... Message-ID: changeset 41fa7137721d in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=41fa7137721d author: Pavel Tisnovsky date: Wed Aug 03 18:07:00 2011 +0200 Added tests for special cases - multiple control points. diffstat: ChangeLog | 5 + diff.diff | 318 ------------------ src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 104 +++++ 3 files changed, 109 insertions(+), 318 deletions(-) diffs (451 lines): diff -r e7894806a147 -r 41fa7137721d ChangeLog --- a/ChangeLog Wed Aug 03 15:44:44 2011 +0200 +++ b/ChangeLog Wed Aug 03 18:07:00 2011 +0200 @@ -1,3 +1,8 @@ +2011-08-03 Pavel Tisnovsky + * diff.diff: removed as it's just a garbage. + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: + Added tests for special cases - multiple control points. + 2011-08-03 Pavel Tisnovsky * src/org/gfxtest/testsuites/ColorPalette.java: added new method * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: diff -r e7894806a147 -r 41fa7137721d diff.diff --- a/diff.diff Wed Aug 03 15:44:44 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,321 +0,0 @@ -diff -r e2ffa5184756 Makefile ---- a/Makefile Wed Jul 27 15:38:53 2011 +0200 -+++ b/Makefile Wed Jul 27 17:15:32 2011 +0200 -@@ -42,6 +42,7 @@ - SAMPLES=samples - RESULTS=results - TEST_BUILD=test-build -+DOCS=docs - - COMMON_DIR=org/gfxtest/common - FRAMEWORK_DIR=org/gfxtest/framework -@@ -210,6 +211,9 @@ - - runtests: gfxtest.jar $(TESTSUITES) - -+doc: -+ javadoc -sourcepath src -d $(DOCS) org.gfxtest.ImageDiffer org.gfxtest.common org.gfxtest.framework org.gfxtest.harness org.gfxtest.reporter org.gfxtest.testsuites -+ - # multiple targets - one for each test suite - $(TESTSUITES): gfxtest.jar - mkdir -p $(OUTPUT)/$@ -@@ -238,7 +242,7 @@ - harness: gfxtest.jar - java -cp gfxtest.jar org.gfxtest.harness.MainWindow - --cleanall: clean clean-output clean-results clean-samples clean-test-build -+cleanall: clean clean-output clean-results clean-samples clean-test-build clean-doc - - clean-all: cleanall - -@@ -260,3 +264,5 @@ - clean-samples: - rm -rf $(SAMPLES) - -+clean-doc: -+ rm -rf $(DOCS) -diff -r e2ffa5184756 src/org/gfxtest/framework/GfxTest.java ---- a/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 15:38:53 2011 +0200 -+++ b/src/org/gfxtest/framework/GfxTest.java Wed Jul 27 17:15:32 2011 +0200 -@@ -219,11 +219,18 @@ - { - // to be overrided by test cases - } -- -+ - /** - * Method which can be overridden by inherited classes. -- * -- * @param configuration configuration of current test case. -+ * -+ * @param image -+ * image representing drawing destination -+ * @param graphics -+ * graphics canvas derived from image object -+ * @param testNumber -+ * test number -+ * @param entityRenderingStyle -+ * object containing entity rendering style - */ - protected void drawEntity(TestImage image, Graphics2D graphics, int testNumber, EntityRenderingStyle entityRenderingStyle) - { -diff -r e2ffa5184756 src/org/gfxtest/framework/TestImage.java ---- a/src/org/gfxtest/framework/TestImage.java Wed Jul 27 15:38:53 2011 +0200 -+++ b/src/org/gfxtest/framework/TestImage.java Wed Jul 27 17:15:32 2011 +0200 -@@ -48,12 +48,47 @@ - - import javax.imageio.ImageIO; - -+ -+ -+/** -+ * Class representing raster image on which shapes are rendered. -+ * -+ * @author Pavel Tisnovsky -+ */ - public class TestImage - { -+ /** -+ * Simple logger object. -+ */ - private Log log = null; -+ -+ /** -+ * Size of grid used to draw image background. -+ */ - private static final int GRID_SIZE = 20; -+ -+ /** -+ * Object representing the raster canvas. -+ */ - private BufferedImage image = null; - -+ /** -+ * Implicit constructor should be disabled for this object type. -+ */ -+ @SuppressWarnings("unused") -+ private TestImage() -+ { -+ // empty as expected :-) -+ } -+ -+ /** -+ * Initialization of TestImage object. -+ * -+ * @param configuration -+ * configuration of current test suite -+ * @param zoom -+ * zoom factor -+ */ - public TestImage(GfxTestConfiguration configuration, int zoom) - { - this.log = new Log(this.getClass().getName(), false); -@@ -62,9 +97,11 @@ - - /** - * Create new buffered image with given width, height and image type. -- * @param configuration configuration of current test suite -- * @param zoom zoom factor -- * @return -+ * -+ * @param configuration -+ * configuration of current test suite -+ * @param zoom -+ * zoom factor - */ - public void createImage(GfxTestConfiguration configuration, int zoom) - { -@@ -77,11 +114,21 @@ - } - } - -+ /** -+ * Clear the background of the test image ie. fill the whole image with -+ * white color. -+ */ - protected void clearImage() - { - fillImage(Color.WHITE); - } - -+ /** -+ * Fill whole image using given color. -+ * -+ * @param color -+ * color used to fill whole image. -+ */ - public void fillImage(Color color) - { - Graphics2D graphics = this.image.createGraphics(); -@@ -90,6 +137,16 @@ - graphics.dispose(); - } - -+ /** -+ * Read raster image from external file. -+ * -+ * @param directory -+ * directory containing the image -+ * @param fileName -+ * raster image file name -+ * @return image read from external file -+ * @throws IOException -+ */ - @SuppressWarnings("nls") - protected BufferedImage readImage(File directory, String fileName) throws IOException - { -@@ -98,6 +155,15 @@ - return ImageIO.read(imageFile); - } - -+ /** -+ * Write raster image to an external file. -+ * -+ * @param directory -+ * directory containing the image -+ * @param fileName -+ * raster image file name -+ * @throws IOException -+ */ - @SuppressWarnings("nls") - private void writeImage(File directory, String fileName) throws IOException - { -@@ -107,30 +173,38 @@ - - /** - * Write given buffered image to PNG file. -- * -- * @param image -+ * - * @param configuration -+ * current configuration of GfxTest framework -+ * @param suiteName -+ * name of test suite - * @param testName -+ * name of test from the given test suite - * @throws IOException -+ * can occurs during PNG file creation - */ - @SuppressWarnings("nls") - public void writeImage(GfxTestConfiguration configuration, String suiteName, String testName) throws IOException - { - this.writeImage(configuration.getOutputPath(), suiteName + "_" + testName + ".png"); - } -- -+ - /** - * This method draws grid below the test (rendered) pattern. -- * @param image reference to the image created by test case -+ * -+ * @param image -+ * reference to the image created by test case - */ - private void drawGrid() - { - Graphics2D graphics = this.image.createGraphics(); - graphics.setColor(new Color(0xa0, 0xa0, 0xff)); -+ // draw vertical lines - for (int x = 0; x < this.image.getWidth(); x += GRID_SIZE) - { - graphics.drawLine(x, 0, x, this.image.getHeight() - 1); - } -+ // draw horizontal lines - for (int y = 0; y < this.image.getHeight(); y += GRID_SIZE) - { - graphics.drawLine(0, y, this.image.getWidth() - 1, y); -@@ -138,43 +212,92 @@ - graphics.dispose(); - } - -+ /** -+ * Returns graphics2d object for this instance of test image. -+ * -+ * @return graphics2d object for this instance of test image. -+ */ - public Graphics2D getGraphics() - { -- Graphics2D g2d = (Graphics2D) this.image.getGraphics(); -- g2d.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); -- return g2d; -+ Graphics2D graphics2d = (Graphics2D) this.image.getGraphics(); -+ graphics2d.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); -+ return graphics2d; - } - -+ /** -+ * Return width of the test image. -+ * -+ * @return width of the test image. -+ */ - public int getWidth() - { - return this.image.getWidth(); - } - -+ /** -+ * Return height of the test image. -+ * -+ * @return height of the test image. -+ */ - public int getHeight() - { - return this.image.getHeight(); - } - -+ /** -+ * Return x-coordinate of the center of the test image. -+ * -+ * @return x-coordinate of the center of the test image. -+ */ - public int getCenterX() - { - return this.getWidth() >> 1; - } - -+ /** -+ * Return y-coordinate of the center of the test image. -+ * -+ * @return y-coordinate of the center of the test image. -+ */ - public int getCenterY() - { - return this.getHeight() >> 1; - } - -+ /** -+ * Return pixel color at given coordinates. -+ * -+ * @param x -+ * the x coordinate of the pixel from which to get the color -+ * @param y -+ * the y coordinate of the pixel from which to get the color -+ * @return color in the default sRGB color space -+ */ - public int getRGB(int x, int y) - { - return this.image.getRGB(x, y); - } - -+ /** -+ * Set color of pixel at given coordinates. -+ * -+ * @param x -+ * the x coordinate of the pixel to set the color -+ * @param y -+ * the y coordinate of the pixel to set the color -+ * @param rgb -+ * color in the default sRGB color space -+ */ - public void setRGB(int x, int y, int rgb) - { - this.image.setRGB(x, y, rgb); - } - -+ /** -+ * Get the raster image on which this project is based. -+ * -+ * @return raster image -+ */ - public BufferedImage getImage() - { - return this.image; diff -r e7894806a147 -r 41fa7137721d src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Wed Aug 03 15:44:44 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Wed Aug 03 18:07:00 2011 +0200 @@ -436,6 +436,110 @@ } /** + * Test special test case - quadratic curve with identical first point and + * second point. To be precise: first point is curve end point, second point + * is control point which defines the curvature. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testIdenticalPoints12(TestImage image, Graphics2D graphics) + { + int width = image.getWidth(); + int centerY = image.getCenterY(); + + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // set curve color + graphics.setColor(Color.BLACK); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(computeX1(width), centerY, computeX1(width), centerY, computeX3(width), centerY); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // test return value + return TestResult.PASSED; + } + + /** + * Test special test case - quadratic curve with identical second point and + * third point. To be precise: third point is curve end point, second point + * is control point which defines the curvature. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testIdenticalPoints23(TestImage image, Graphics2D graphics) + { + int width = image.getWidth(); + int centerY = image.getCenterY(); + + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // set curve color + graphics.setColor(Color.BLACK); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(computeX1(width), centerY, computeX3(width), centerY, computeX3(width), centerY); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // test return value + return TestResult.PASSED; + } + + /** + * Test special test case - quadratic curve with identical first point and + * third point. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testIdenticalPoints13(TestImage image, Graphics2D graphics) + { + int width = image.getWidth(); + int centerY = image.getCenterY(); + + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // set curve color + graphics.setColor(Color.BLACK); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(computeX1(width), centerY, computeX3(width), centerY, computeX1(width), centerY); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // test return value + return TestResult.PASSED; + } + + /** * Compute X coordinate of first curve end point. * * @param width From dbhole at redhat.com Wed Aug 3 09:23:49 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 3 Aug 2011 12:23:49 -0400 Subject: [RFC[PATCH]: Patch fix for algorithm that verifies signed JNLP file s In-Reply-To: <4E395B3D.7070802@redhat.com> References: <236751259.774383.1312317137633.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <1809332081.775078.1312319192159.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <20110803055342.GH31431@rivendell.middle-earth.co.uk> <4E395B3D.7070802@redhat.com> Message-ID: <20110803162349.GA9903@redhat.com> * Saad Mohammad [2011-08-03 10:28]: > On 08/03/2011 01:53 AM, Dr Andrew John Hughes wrote: > >On 17:06 Tue 02 Aug , Saad Mohammad wrote: > >>I have read all the comments and reviews on my previous patch that added the algorithm of checking signed JNLP files. I want to thank you all for your input, it was a big help to me. > >> > >>Since I have committed one of the patches, I have attached a new patch that addresses the issues we had with the previous patch. > >> ... > >This seems to deal with all the issues I mentioned. > Excellent, thanks again for the feedback. > > Does this patch look good to be pushed? Deepak and Jiri? > Hi Saad, Yep, looks good to me too. Btw, generally one approval (like Andrew gave) is enough to commit :) Cheers, Deepak > -- > Cheers, > Saad Mohammad > From kelly.ohair at oracle.com Wed Aug 3 09:25:41 2011 From: kelly.ohair at oracle.com (Kelly O'Hair) Date: Wed, 3 Aug 2011 18:25:41 +0200 Subject: Build Infrastructure changes Message-ID: FYI... If you are interested in the jdk8 build infrastructure changes coming down the pipe, I invite you to join the build-infra-dev alias: http://mail.openjdk.java.net/pipermail/build-infra-dev/2011-August/000029.html I expect this work to get started and moving soon with Fredrik as the primary contributor, the only catch is that I will be on vacation Aug 9-21 and the openjdk mail system seems to be refusing to send email to Fredrik. Hopefully I'll resolve Fredrik's email issue very soon. The autoconf setup may borrow ideas/patterns from the IcedTea project, and I want to give credit to that team for that work. Please send questions to the build-infra-dev alias. -kto From smohammad at icedtea.classpath.org Wed Aug 3 09:32:46 2011 From: smohammad at icedtea.classpath.org (smohammad at icedtea.classpath.org) Date: Wed, 03 Aug 2011 16:32:46 +0000 Subject: /hg/icedtea-web: Minor changes in algorithm that compares signed... Message-ID: changeset f2c80b9ceae1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=f2c80b9ceae1 author: Saad Mohammad date: Wed Aug 03 12:32:22 2011 -0400 Minor changes in algorithm that compares signed JNLP application/template diffstat: ChangeLog | 14 ++++ netx/net/sourceforge/jnlp/JNLPMatcher.java | 97 +++++++++++++++++------------ netx/net/sourceforge/jnlp/Node.java | 13 ---- 3 files changed, 70 insertions(+), 54 deletions(-) diffs (201 lines): diff -r 7668bf410571 -r f2c80b9ceae1 ChangeLog --- a/ChangeLog Tue Aug 02 11:05:47 2011 +0200 +++ b/ChangeLog Wed Aug 03 12:32:22 2011 -0400 @@ -1,3 +1,17 @@ +2011-08-03 Saad Mohammad + + * netx/net/sourceforge/jnlp/JNLPMatcher.java: + (JNLPMatcher): Removed NullPointerException from being thrown, caught and + then thrown again via JNLPMatcherException. This was replaced by throwing + a checked exception [JNLPMatcherException] directly. + (JNLPMatcher): Removed unused code [getters] + (JNLPMatcher): Closed Input/Output streams that were opened. + (isMatch): Removed caching of return value + (closeInputStream): Added this method to close input streams + (closeOutputStream): Added this method to close output streams + * netx/net/sourceforge/jnlp/Node.java: + Removed getAttributeNames() method from the commented section + 2011-08-02 Jiri Vanek *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): diff -r 7668bf410571 -r f2c80b9ceae1 netx/net/sourceforge/jnlp/JNLPMatcher.java --- a/netx/net/sourceforge/jnlp/JNLPMatcher.java Tue Aug 02 11:05:47 2011 +0200 +++ b/netx/net/sourceforge/jnlp/JNLPMatcher.java Wed Aug 03 12:32:22 2011 -0400 @@ -38,10 +38,11 @@ package net.sourceforge.jnlp; import java.util.List; +import java.io.InputStream; import java.io.InputStreamReader; +import java.io.OutputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; @@ -59,7 +60,6 @@ private final Node appTemplateNode; private final Node launchJNLPNode; private final boolean isTemplate; - private Boolean match; /** * Public constructor @@ -78,26 +78,33 @@ public JNLPMatcher(InputStreamReader appTemplate, InputStreamReader launchJNLP, boolean isTemplate) throws JNLPMatcherException { + if (appTemplate == null && launchJNLP == null) + throw new JNLPMatcherException( + "Template JNLP file and Launching JNLP file are both null."); + else if (appTemplate == null) + throw new JNLPMatcherException("Template JNLP file is null."); + else if (launchJNLP == null) + throw new JNLPMatcherException("Launching JNLP file is null."); + + //Declare variables for signed JNLP file + PipedInputStream pinTemplate= null; + PipedOutputStream poutTemplate= null; + + //Declare variables for launching JNLP file + PipedInputStream pinJNLPFile = null; + PipedOutputStream poutJNLPFile = null; + try { - - if (appTemplate == null && launchJNLP == null) - throw new NullPointerException( - "Template JNLP file and Launching JNLP file are both null."); - else if (appTemplate == null) - throw new NullPointerException("Template JNLP file is null."); - else if (launchJNLP == null) - throw new NullPointerException("Launching JNLP file is null."); - XMLElement appTemplateXML = new XMLElement(); XMLElement launchJNLPXML = new XMLElement(); // Remove the comments and CDATA from the JNLP file - final PipedInputStream pinTemplate = new PipedInputStream(); - final PipedOutputStream poutTemplate = new PipedOutputStream(pinTemplate); + pinTemplate = new PipedInputStream(); + poutTemplate = new PipedOutputStream(pinTemplate); appTemplateXML.sanitizeInput(appTemplate, poutTemplate); - final PipedInputStream pinJNLPFile = new PipedInputStream(); - final PipedOutputStream poutJNLPFile = new PipedOutputStream(pinJNLPFile); + pinJNLPFile = new PipedInputStream(); + poutJNLPFile = new PipedOutputStream(pinJNLPFile); launchJNLPXML.sanitizeInput(launchJNLP, poutJNLPFile); // Parse both files @@ -113,6 +120,14 @@ throw new JNLPMatcherException( "Failed to create an instance of JNLPVerify with specified InputStreamReader", e); + } finally { + // Close all stream + closeInputStream(pinTemplate); + closeOutputStream(poutTemplate); + + closeInputStream(pinJNLPFile); + closeOutputStream(poutJNLPFile); + } } @@ -122,11 +137,9 @@ * @return true if both JNLP files are 'matched', otherwise false */ public boolean isMatch() { - - if (match == null) - match = matchNodes(appTemplateNode, launchJNLPNode); - - return match; + + return matchNodes(appTemplateNode, launchJNLPNode); + } /** @@ -241,32 +254,34 @@ } return false; } - - /** - * Getter for application/template Node + + /*** + * Closes an input stream * - * @return the Node of the signed application/template file + * @param stream + * The input stream that will be closed */ - public Node getAppTemplateNode() { - return appTemplateNode; + private void closeInputStream(InputStream stream) { + if (stream != null) + try { + stream.close(); + } catch (Exception e) { + e.printStackTrace(System.err); + } } - /** - * Getter for launching application Node + /*** + * Closes an output stream * - * @return the Node of the launching JNLP file + * @param stream + * The output stream that will be closed */ - public Node getLaunchJNLPNode() { - return launchJNLPNode; - } - - /** - * Getter for isTemplate - * - * @return true if a signed template is being used for matching; otherwise - * false. - */ - public boolean isTemplate() { - return isTemplate; + private void closeOutputStream(OutputStream stream) { + if (stream != null) + try { + stream.close(); + } catch (Exception e) { + e.printStackTrace(System.err); + } } } diff -r 7668bf410571 -r f2c80b9ceae1 netx/net/sourceforge/jnlp/Node.java --- a/netx/net/sourceforge/jnlp/Node.java Tue Aug 02 11:05:47 2011 +0200 +++ b/netx/net/sourceforge/jnlp/Node.java Wed Aug 03 12:32:22 2011 -0400 @@ -145,19 +145,6 @@ return children; } - String[] getAttributeNames() { - if (attributeNames == null) { - List list = new ArrayList(); - - for (Enumeration e = xml.enumerateAttributeNames(); e.hasMoreElements();) - list.add(new String((String) e.nextElement())); - - attributeNames = list.toArray(new String[list.size()]); - - } - return attributeNames; - } - String getAttribute(String name) { return tinyNode.getAttribute(name); } From ahughes at redhat.com Wed Aug 3 09:47:42 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 17:47:42 +0100 Subject: Build Infrastructure changes In-Reply-To: References: Message-ID: <20110803164742.GM31431@rivendell.middle-earth.co.uk> On 18:25 Wed 03 Aug , Kelly O'Hair wrote: > FYI... > > If you are interested in the jdk8 build infrastructure changes coming down the pipe, I invite you > to join the build-infra-dev alias: > > http://mail.openjdk.java.net/pipermail/build-infra-dev/2011-August/000029.html > > I expect this work to get started and moving soon with Fredrik as the primary contributor, > the only catch is that I will be on vacation Aug 9-21 and the openjdk mail system seems to be > refusing to send email to Fredrik. Hopefully I'll resolve Fredrik's email issue very soon. > > The autoconf setup may borrow ideas/patterns from the IcedTea project, and I want to give > credit to that team for that work. Thanks. I'd hope we could actually use some of the IcedTea work in OpenJDK. I don't think doing that will be so much a technical issue; I doubt you're going to test for libraries any differently and could probably start using more system ones. However, there is a legal issue with OpenJDK contributions requiring the OCA. > > Please send questions to the build-infra-dev alias. > > -kto -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Wed Aug 3 10:45:32 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 3 Aug 2011 13:45:32 -0400 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 Message-ID: <20110803174532.GD9903@redhat.com> Hi, OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This causes the signature verification code in icedtea-web to throw an error as it is not expecting MANIFEST.MF to be signed. Attached patch makes it so that entries with signature are tracked iff the entry is expected to be signed. This ensures that icedtea-web will work with 6 and 7. Okay for HEAD and backport to 1.1/1.0? ChangeLog: 2011-08-03 Deepak Bhole * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put entry in cert hashtable only if the entry is expected to be signed. Thanks, Deepak -------------- next part -------------- diff -r 7668bf410571 netx/net/sourceforge/jnlp/tools/JarSigner.java --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Tue Aug 02 11:05:47 2011 +0200 +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Wed Aug 03 13:39:31 2011 -0400 @@ -284,7 +284,7 @@ if (shouldHaveSignature) totalSignableEntries++; - if (isSigned) { + if (shouldHaveSignature && isSigned) { for (int i = 0; i < signers.length; i++) { CertPath certPath = signers[i].getSignerCertPath(); if (!certs.containsKey(certPath)) From ahughes at redhat.com Wed Aug 3 10:55:15 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 18:55:15 +0100 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 In-Reply-To: <20110803174532.GD9903@redhat.com> References: <20110803174532.GD9903@redhat.com> Message-ID: <20110803175515.GS31431@rivendell.middle-earth.co.uk> On 13:45 Wed 03 Aug , Deepak Bhole wrote: > Hi, > > OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This > causes the signature verification code in icedtea-web to throw an error > as it is not expecting MANIFEST.MF to be signed. > > Attached patch makes it so that entries with signature are tracked iff > the entry is expected to be signed. This ensures that icedtea-web will > work with 6 and 7. > > Okay for HEAD and backport to 1.1/1.0? > > ChangeLog: > > 2011-08-03 Deepak Bhole > > * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put > entry in cert hashtable only if the entry is expected to be signed. > > Thanks, > Deepak Do you think this is a bug in 7? Or the right behaviour? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From andrew at icedtea.classpath.org Wed Aug 3 10:55:48 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 03 Aug 2011 17:55:48 +0000 Subject: /hg/icedtea7: 4 new changesets Message-ID: changeset 3ac37175420b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=3ac37175420b author: Andrew John Hughes date: Wed Aug 03 17:58:24 2011 +0100 Allow bootstrap build to work with current GNU Classpath CVS. 2011-08-03 Andrew John Hughes * Makefile.am: Apply explicit-inner-class-headers patch as required. * acinclude.m4: Test for PR classpath/45526 explicitly instead of assuming it is present when the other bugs are (not true with current Classpath CVS). * patches/boot/explicit-inner-class-headers.patch: Split out from javah.patch so as to apply when other bugs aren't present. * patches/boot/javah.patch: Remove above patch. changeset a42d0626100f in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=a42d0626100f author: Andrew John Hughes date: Wed Aug 03 18:01:15 2011 +0100 Fix Pavel's ChangeLog entry. changeset ae4845b32444 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=ae4845b32444 author: Andrew John Hughes date: Wed Aug 03 18:19:34 2011 +0100 PR586: Add missing sources to src.zip. G356743: Support building against libpng 1.5. 2011-08-03 Andrew John Hughes * Makefile.am: (JDK_CHANGESET): Updated to bring in libpng 1.5 and src.zip fixes. (JDK_SHA256SUM): Likewise. * NEWS: Updated. changeset 39e5e6de461a in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=39e5e6de461a author: Andrew John Hughes date: Wed Aug 03 18:21:10 2011 +0100 Update NEWS with list of changes from Pavel's HotSpot update. 2011-08-03 Andrew John Hughes * NEWS: Updated with changes from Pavel's HotSpot update. diffstat: ChangeLog | 37 ++++++++++++++++++++++-- Makefile.am | 8 ++++- NEWS | 6 ++++ acinclude.m4 | 36 ++++++++++++++++++++++++ patches/boot/explicit-inner-class-headers.patch | 23 +++++++++++++++ patches/boot/javah.patch | 23 --------------- 6 files changed, 104 insertions(+), 29 deletions(-) diffs (205 lines): diff -r e29c130ded8b -r 39e5e6de461a ChangeLog --- a/ChangeLog Wed Aug 03 11:09:45 2011 +0200 +++ b/ChangeLog Wed Aug 03 18:21:10 2011 +0100 @@ -1,9 +1,38 @@ -2011-08-03 Andrew Haley - - Fixed bug #7073913 in src/share/vm/runtime/os.cpp +2011-08-03 Andrew John Hughes + + * NEWS: Updated with changes from + Pavel's HotSpot update. + +2011-08-03 Andrew John Hughes + + * Makefile.am: + (JDK_CHANGESET): Updated to bring in + libpng 1.5 and src.zip fixes. + (JDK_SHA256SUM): Likewise. + * NEWS: Updated. + +2011-08-03 Andrew John Hughes + + * Makefile.am: + Apply explicit-inner-class-headers patch as required. + * acinclude.m4: Test for PR classpath/45526 + explicitly instead of assuming it is present + when the other bugs are (not true with current + Classpath CVS). + * patches/boot/explicit-inner-class-headers.patch: + Split out from javah.patch so as to apply when other + bugs aren't present. + * patches/boot/javah.patch: + Remove above patch. + +2011-08-03 Pavel Tisnovsky + + Brought in fix #7073913 in src/share/vm/runtime/os.cpp which caused random segfaults due to buffer overflow and incorrect usage of int variable - instead of char (byte) one. + instead of char (byte) one. Also brought in + 7068051, 7044738 and 7070134 fixes for HotSpot + loop bugs. * Makefile.am: (HOTSPOT_CHANGESET): Updated. (HOTSPOT_SHA256SUM): Likewise. diff -r e29c130ded8b -r 39e5e6de461a Makefile.am --- a/Makefile.am Wed Aug 03 11:09:45 2011 +0200 +++ b/Makefile.am Wed Aug 03 18:21:10 2011 +0100 @@ -6,7 +6,7 @@ HOTSPOT_CHANGESET = 1dd9b3d73b22 JAXP_CHANGESET = c40983d6ae70 JAXWS_CHANGESET = 83db5e316798 -JDK_CHANGESET = ccf86bbc61fd +JDK_CHANGESET = e46d527097f1 LANGTOOLS_CHANGESET = fb7fb3071b64 OPENJDK_CHANGESET = 3defd24c2671 @@ -14,7 +14,7 @@ HOTSPOT_SHA256SUM = ffb1831a63e950bb7ade46a5382cb71d2603e0f40b3f758eb346833e18fca150 JAXP_SHA256SUM = 6ab0cab1965edb28e4093b55436abd04fbffe0b0251016043c75246c4ee9dc2d JAXWS_SHA256SUM = 5567c90ce2857016365b2e346783a3b16ec0e76b80586a0371f601b4fed01f21 -JDK_SHA256SUM = aedc601afad003ae30b9268cd47c229d00636c488ad921ce02883f68f35842e0 +JDK_SHA256SUM = 0cd074fb2400c95d013373847b5c52bb13997acbb6530507e384856583e1abd4 LANGTOOLS_SHA256SUM = 9ddc00ec50fd2f5e331dc2bc10da4e23b69bf644eb92d50b39a2003c18fb5aa1 OPENJDK_SHA256SUM = 4043a75c2c4385dd735f8dbbf2369311ce1b951217c9dbe9bba9609e24eb291e @@ -374,6 +374,10 @@ patches/boot/javah.patch endif +if CP45526_JAVAH +ICEDTEA_BOOT_PATCHES += patches/boot/explicit-inner-class-headers.patch +endif + if CP40616 ICEDTEA_BOOT_PATCHES += patches/boot/pr40616.patch endif diff -r e29c130ded8b -r 39e5e6de461a NEWS --- a/NEWS Wed Aug 03 11:09:45 2011 +0200 +++ b/NEWS Wed Aug 03 18:21:10 2011 +0100 @@ -15,6 +15,12 @@ - PR767: Annotation Processing Filer.getResource() always throws FileNotFoundException - Allow the compiler used to be overridden by setting BUILD_GCC/BUILD_CPP. - Fixed regression test runtime/7020373. + - PR586: Add missing sources to src.zip. + - G356743: Support building against libpng 1.5. + - S7070134: Hotspot crashes with sigsegv from PorterStemmer + - S7044738: Loop unroll optimization causes incorrect result + - S7068051: SIGSEGV in PhaseIdealLoop::build_loop_late_post + - S7073913: Avoid random segfaults. * Zero/Shark - PR757, 7066143: 7009309 regression: x86 stubRoutines - PR753, 7066143: 7009923 regression diff -r e29c130ded8b -r 39e5e6de461a acinclude.m4 --- a/acinclude.m4 Wed Aug 03 11:09:45 2011 +0200 +++ b/acinclude.m4 Wed Aug 03 18:21:10 2011 +0100 @@ -1277,10 +1277,46 @@ fi ]) rm -f $SUBCLASS $SUPERCLASS $SUBHEADER *.class +AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 45526], it_cv_cp45526_javah, [ +SRC=Test.java +CLASSFILE=$(echo $SRC|sed 's#\.java##') +HEADER=$(echo $SRC|sed 's#\.java#.h#') +cat << \EOF > $SRC +/* [#]line __oline__ "configure" */ +public class Test +{ + public native void doStuff(); + + public class Inner + { + public native int doMoreStuff(long ptr); + } +} +EOF +if $JAVAC -cp . $JAVACFLAGS $SRC >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVAH -classpath . $CLASSFILE >&AS_MESSAGE_LOG_FD 2>&1; then + if test -e Test_Inner.h ; then + it_cv_cp45526_javah=no; + else + it_cv_cp45526_javah=yes; + fi + else + AC_MSG_ERROR([The Java header generator $JAVAH failed]) + echo "configure: failed program was:" >&AC_FD_CC + cat $SUBCLASS >&AC_FD_CC + fi +else + AC_MSG_ERROR([The Java compiler $JAVAC failed]) + echo "configure: failed program was:" >&AC_FD_CC + cat $SUBCLASS >&AC_FD_CC +fi +]) +rm -f $SRC *.class *.h cd .. rmdir tmp.$$ AM_CONDITIONAL([CP39408_JAVAH], test x"${it_cv_cp39408_javah}" = "xyes") AM_CONDITIONAL([CP40188_JAVAH], test x"${it_cv_cp40188_javah}" = "xyes") +AM_CONDITIONAL([CP45526_JAVAH], test x"${it_cv_cp45526_javah}" = "xyes") AM_CONDITIONAL([JAVAH_SUPPORTS_X_OPTIONS], test x"${it_cv_javahx}" = "xyes") AC_PROVIDE([$0])dnl ]) diff -r e29c130ded8b -r 39e5e6de461a patches/boot/explicit-inner-class-headers.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/explicit-inner-class-headers.patch Wed Aug 03 18:21:10 2011 +0100 @@ -0,0 +1,25 @@ +diff -Nru openjdk-boot.orig/jdk/make/common/Rules.gmk openjdk-boot/jdk/make/common/Rules.gmk +--- openjdk-boot.orig/jdk/make/common/Rules.gmk 2009-12-13 20:37:41.000000000 +0000 ++++ openjdk-boot/jdk/make/common/Rules.gmk 2009-12-13 21:11:04.000000000 +0000 +@@ -303,7 +303,11 @@ + $(prep-target) + @$(ECHO) "# Running javah:" + $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \ +- $(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner)) ++ $(CLASSES.export) ++ $(foreach innerclass,$(subst $$,\$$,$(EXPORTED_inner)), \ ++ $(JAVAH_CMD) \ ++ -o $(CLASSHDRDIR)/$(subst .,_,$(subst \$$,_,$(innerclass))).h \ ++ $(innerclass)) + @$(java-vm-cleanup) + @$(TOUCH) $@ + +diff -Nru openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk +--- openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-04 23:26:35.000000000 +0000 ++++ openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-13 21:11:04.000000000 +0000 +@@ -189,3 +189,5 @@ + java/awt/dnd/DnDConstants.java \ + sun/awt/CausedFocusEvent.java + ++EXPORTED_inner = \ ++ sun.java2d.opengl.OGLContext$$OGLContextCaps diff -r e29c130ded8b -r 39e5e6de461a patches/boot/javah.patch --- a/patches/boot/javah.patch Wed Aug 03 11:09:45 2011 +0200 +++ b/patches/boot/javah.patch Wed Aug 03 18:21:10 2011 +0100 @@ -1,28 +1,3 @@ -diff -Nru openjdk-boot.orig/jdk/make/common/Rules.gmk openjdk-boot/jdk/make/common/Rules.gmk ---- openjdk-boot.orig/jdk/make/common/Rules.gmk 2009-12-13 20:37:41.000000000 +0000 -+++ openjdk-boot/jdk/make/common/Rules.gmk 2009-12-13 21:11:04.000000000 +0000 -@@ -303,7 +303,11 @@ - $(prep-target) - @$(ECHO) "# Running javah:" - $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \ -- $(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner)) -+ $(CLASSES.export) -+ $(foreach innerclass,$(subst $$,\$$,$(EXPORTED_inner)), \ -+ $(JAVAH_CMD) \ -+ -o $(CLASSHDRDIR)/$(subst .,_,$(subst \$$,_,$(innerclass))).h \ -+ $(innerclass)) - @$(java-vm-cleanup) - @$(TOUCH) $@ - -diff -Nru openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk ---- openjdk-boot.orig/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-04 23:26:35.000000000 +0000 -+++ openjdk-boot/jdk/make/sun/awt/FILES_export_unix.gmk 2009-12-13 21:11:04.000000000 +0000 -@@ -189,3 +189,5 @@ - java/awt/dnd/DnDConstants.java \ - sun/awt/CausedFocusEvent.java - -+EXPORTED_inner = \ -+ sun.java2d.opengl.OGLContext$$OGLContextCaps diff -Nru openjdk-boot.orig/jdk/src/share/native/sun/java2d/opengl/OGLContext.h openjdk-boot/jdk/src/share/native/sun/java2d/opengl/OGLContext.h --- openjdk-boot.orig/jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2009-12-04 23:33:16.000000000 +0000 +++ openjdk-boot/jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2009-12-13 21:11:04.000000000 +0000 From omajid at redhat.com Wed Aug 3 11:02:09 2011 From: omajid at redhat.com (Omair Majid) Date: Wed, 03 Aug 2011 14:02:09 -0400 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 In-Reply-To: <20110803174532.GD9903@redhat.com> References: <20110803174532.GD9903@redhat.com> Message-ID: <4E398D21.9060906@redhat.com> On 08/03/2011 01:45 PM, Deepak Bhole wrote: > Hi, > > OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This > causes the signature verification code in icedtea-web to throw an error > as it is not expecting MANIFEST.MF to be signed. > > Attached patch makes it so that entries with signature are tracked iff > the entry is expected to be signed. This ensures that icedtea-web will > work with 6 and 7. > > Okay for HEAD and backport to 1.1/1.0? > Looks fine to me. Cheers, Omair From dbhole at redhat.com Wed Aug 3 11:03:57 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 3 Aug 2011 14:03:57 -0400 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 In-Reply-To: <20110803175515.GS31431@rivendell.middle-earth.co.uk> References: <20110803174532.GD9903@redhat.com> <20110803175515.GS31431@rivendell.middle-earth.co.uk> Message-ID: <20110803180357.GE9903@redhat.com> * Dr Andrew John Hughes [2011-08-03 13:55]: > On 13:45 Wed 03 Aug , Deepak Bhole wrote: > > Hi, > > > > OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This > > causes the signature verification code in icedtea-web to throw an error > > as it is not expecting MANIFEST.MF to be signed. > > > > Attached patch makes it so that entries with signature are tracked iff > > the entry is expected to be signed. This ensures that icedtea-web will > > work with 6 and 7. > > > > Okay for HEAD and backport to 1.1/1.0? > > > > ChangeLog: > > > > 2011-08-03 Deepak Bhole > > > > * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put > > entry in cert hashtable only if the entry is expected to be signed. > > > > Thanks, > > Deepak > > Do you think this is a bug in 7? Or the right behaviour? > The change was on purpose. This message has an explanation of why: http://mail.openjdk.java.net/pipermail/security-dev/2010-December/002460.html Cheers, Deepak > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Wed Aug 3 11:08:43 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 03 Aug 2011 18:08:43 +0000 Subject: [Bug 768] New: Signed applets/Web start apps don't work with OpenJDK7 and up Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=768 Summary: Signed applets/Web start apps don't work with OpenJDK7 and up Product: IcedTea-Web Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: dbhole at redhat.com CC: unassigned at icedtea.classpath.org OpenJDK 7 introduced a change that causes MANIFEST.MF to show up as signed. IcedTea-Web assumes that MANIFEST should not be signed, causing a count mismatch, and thus verification to fail. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Wed Aug 3 11:11:47 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 3 Aug 2011 19:11:47 +0100 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 In-Reply-To: <20110803180357.GE9903@redhat.com> References: <20110803174532.GD9903@redhat.com> <20110803175515.GS31431@rivendell.middle-earth.co.uk> <20110803180357.GE9903@redhat.com> Message-ID: <20110803181146.GT31431@rivendell.middle-earth.co.uk> On 14:03 Wed 03 Aug , Deepak Bhole wrote: > * Dr Andrew John Hughes [2011-08-03 13:55]: > > On 13:45 Wed 03 Aug , Deepak Bhole wrote: > > > Hi, > > > > > > OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This > > > causes the signature verification code in icedtea-web to throw an error > > > as it is not expecting MANIFEST.MF to be signed. > > > > > > Attached patch makes it so that entries with signature are tracked iff > > > the entry is expected to be signed. This ensures that icedtea-web will > > > work with 6 and 7. > > > > > > Okay for HEAD and backport to 1.1/1.0? > > > > > > ChangeLog: > > > > > > 2011-08-03 Deepak Bhole > > > > > > * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put > > > entry in cert hashtable only if the entry is expected to be signed. > > > > > > Thanks, > > > Deepak > > > > Do you think this is a bug in 7? Or the right behaviour? > > > > The change was on purpose. This message has an explanation of why: > http://mail.openjdk.java.net/pipermail/security-dev/2010-December/002460.html > Ah ok. One wonders if he should have include something that says 'Sun Confidential: Internal only' on it :-) > Cheers, > Deepak > > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > Support Free Java! > > Contribute to GNU Classpath and IcedTea > > http://www.gnu.org/software/classpath > > http://icedtea.classpath.org > > PGP Key: F5862A37 (https://keys.indymedia.org/) > > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at icedtea.classpath.org Wed Aug 3 11:16:03 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 03 Aug 2011 18:16:03 +0000 Subject: /hg/icedtea-web: PR768: Signed applets/Web Start apps don't work... Message-ID: changeset defa7d0051bf in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=defa7d0051bf author: Deepak Bhole date: Wed Aug 03 14:11:11 2011 -0400 PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diffstat: ChangeLog | 6 ++++++ NEWS | 2 ++ netx/net/sourceforge/jnlp/tools/JarSigner.java | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diffs (40 lines): diff -r f2c80b9ceae1 -r defa7d0051bf ChangeLog --- a/ChangeLog Wed Aug 03 12:32:22 2011 -0400 +++ b/ChangeLog Wed Aug 03 14:11:11 2011 -0400 @@ -12,6 +12,12 @@ * netx/net/sourceforge/jnlp/Node.java: Removed getAttributeNames() method from the commented section +2011-08-03 Deepak Bhole + + PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put entry in + cert hashtable only if the entry is expected to be signed. + 2011-08-02 Jiri Vanek *Makefile.am: (stamps/netx-dist-tests-prepare-reproducers.stamp): diff -r f2c80b9ceae1 -r defa7d0051bf NEWS --- a/NEWS Wed Aug 03 12:32:22 2011 -0400 +++ b/NEWS Wed Aug 03 14:11:11 2011 -0400 @@ -14,6 +14,8 @@ - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow +Common + - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up New in release 1.1 (2011-XX-XX): * Security updates diff -r f2c80b9ceae1 -r defa7d0051bf netx/net/sourceforge/jnlp/tools/JarSigner.java --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Wed Aug 03 12:32:22 2011 -0400 +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Wed Aug 03 14:11:11 2011 -0400 @@ -284,7 +284,7 @@ if (shouldHaveSignature) totalSignableEntries++; - if (isSigned) { + if (shouldHaveSignature && isSigned) { for (int i = 0; i < signers.length; i++) { CertPath certPath = signers[i].getSignerCertPath(); if (!certs.containsKey(certPath)) From dbhole at icedtea.classpath.org Wed Aug 3 11:16:24 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 03 Aug 2011 18:16:24 +0000 Subject: /hg/release/icedtea-web-1.1: PR768: Signed applets/Web Start app... Message-ID: changeset db6914cf15be in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=db6914cf15be author: Deepak Bhole date: Wed Aug 03 14:11:11 2011 -0400 PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diffstat: ChangeLog | 6 ++++++ NEWS | 2 ++ netx/net/sourceforge/jnlp/tools/JarSigner.java | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diffs (37 lines): diff -r f9c1a27fada9 -r db6914cf15be ChangeLog --- a/ChangeLog Thu Jul 21 15:13:34 2011 -0400 +++ b/ChangeLog Wed Aug 03 14:11:11 2011 -0400 @@ -1,3 +1,9 @@ +2011-08-03 Deepak Bhole + + PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put entry in + cert hashtable only if the entry is expected to be signed. + 2011-07-21 Deepak Bhole PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow diff -r f9c1a27fada9 -r db6914cf15be NEWS --- a/NEWS Thu Jul 21 15:13:34 2011 -0400 +++ b/NEWS Wed Aug 03 14:11:11 2011 -0400 @@ -11,6 +11,8 @@ New in release 1.1.2 (2011-XX-XX): * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow +Common + - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up New in release 1.1.1 (2011-07-20): * Security updates: diff -r f9c1a27fada9 -r db6914cf15be netx/net/sourceforge/jnlp/tools/JarSigner.java --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Thu Jul 21 15:13:34 2011 -0400 +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Wed Aug 03 14:11:11 2011 -0400 @@ -284,7 +284,7 @@ if (shouldHaveSignature) totalSignableEntries++; - if (isSigned) { + if (shouldHaveSignature && isSigned) { for (int i = 0; i < signers.length; i++) { CertPath certPath = signers[i].getSignerCertPath(); if (!certs.containsKey(certPath)) From dbhole at icedtea.classpath.org Wed Aug 3 11:16:37 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 03 Aug 2011 18:16:37 +0000 Subject: /hg/release/icedtea-web-1.0: PR768: Signed applets/Web Start app... Message-ID: changeset 7ee2e487f4e2 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=7ee2e487f4e2 author: Deepak Bhole date: Wed Aug 03 14:11:11 2011 -0400 PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diffstat: ChangeLog | 6 ++++++ NEWS | 2 ++ netx/net/sourceforge/jnlp/tools/JarSigner.java | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diffs (37 lines): diff -r a20bd5a4d035 -r 7ee2e487f4e2 ChangeLog --- a/ChangeLog Thu Jul 21 15:12:38 2011 -0400 +++ b/ChangeLog Wed Aug 03 14:11:11 2011 -0400 @@ -1,3 +1,9 @@ +2011-08-03 Deepak Bhole + + PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + * netx/net/sourceforge/jnlp/tools/JarSigner.java (verifyJar): Put entry in + cert hashtable only if the entry is expected to be signed. + 2011-07-21 Deepak Bhole PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow diff -r a20bd5a4d035 -r 7ee2e487f4e2 NEWS --- a/NEWS Thu Jul 21 15:12:38 2011 -0400 +++ b/NEWS Wed Aug 03 14:11:11 2011 -0400 @@ -11,6 +11,8 @@ New in release 1.0.5 (2011-XX-XX): * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow +Common + - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up New in release 1.0.4 (2011-07-20): * Security updates: diff -r a20bd5a4d035 -r 7ee2e487f4e2 netx/net/sourceforge/jnlp/tools/JarSigner.java --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Thu Jul 21 15:12:38 2011 -0400 +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Wed Aug 03 14:11:11 2011 -0400 @@ -326,7 +326,7 @@ if (shouldHaveSignature) totalSignableEntries++; - if (isSigned) { + if (shouldHaveSignature && isSigned) { for (int i = 0; i < signers.length; i++) { CertPath certPath = signers[i].getSignerCertPath(); if (!certs.containsKey(certPath)) From dbhole at redhat.com Wed Aug 3 11:17:38 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 3 Aug 2011 14:17:38 -0400 Subject: [icedtea-web] RFC: Patch to fix signature verification on OpenJDK7 In-Reply-To: <4E398D21.9060906@redhat.com> References: <20110803174532.GD9903@redhat.com> <4E398D21.9060906@redhat.com> Message-ID: <20110803181738.GF9903@redhat.com> * Omair Majid [2011-08-03 14:02]: > On 08/03/2011 01:45 PM, Deepak Bhole wrote: > >Hi, > > > >OpenJDK7 reports MANIFEST.MF as a signed entry even when it is not. This > >causes the signature verification code in icedtea-web to throw an error > >as it is not expecting MANIFEST.MF to be signed. > > > >Attached patch makes it so that entries with signature are tracked iff > >the entry is expected to be signed. This ensures that icedtea-web will > >work with 6 and 7. > > > >Okay for HEAD and backport to 1.1/1.0? > > > > Looks fine to me. > Thanks! Pushed: http://icedtea.classpath.org/hg/icedtea-web/rev/defa7d0051bf http://icedtea.classpath.org/hg/release/icedtea-web-1.1/rev/db6914cf15be http://icedtea.classpath.org/hg/release/icedtea-web-1.0/rev/7ee2e487f4e2 Cheers, Deepak From bugzilla-daemon at icedtea.classpath.org Wed Aug 3 11:18:38 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 03 Aug 2011 18:18:38 +0000 Subject: [Bug 768] Signed applets/Web start apps don't work with OpenJDK7 and up In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=768 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #1 from Deepak Bhole 2011-08-03 18:18:38 --- Fixed: http://icedtea.classpath.org/hg/icedtea-web/rev/defa7d0051bf http://icedtea.classpath.org/hg/release/icedtea-web-1.1/rev/db6914cf15be http://icedtea.classpath.org/hg/release/icedtea-web-1.0/rev/7ee2e487f4e2 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 3 13:54:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 03 Aug 2011 20:54:42 +0000 Subject: [Bug 769] New: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 Summary: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 Product: IcedTea-Web Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: dbhole at redhat.com CC: unassigned at icedtea.classpath.org Certain sites (like WebEx) fail to load with the IcedTea-Web plugin running with OpenJDK7. The problem is that one of the overloaded checkServerTrusted implementations does not account for the fact that it may be passed a null hostname by one of the other implementations. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 3 13:55:56 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 03 Aug 2011 20:55:56 +0000 Subject: [Bug 769] IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 --- Comment #1 from Deepak Bhole 2011-08-03 20:55:56 --- Created an attachment (id=556) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=556) Proposed fix Attaching proposed fix for this issue. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From dbhole at redhat.com Wed Aug 3 14:07:18 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 3 Aug 2011 17:07:18 -0400 Subject: [icedtea-web] RFC: PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 Message-ID: <20110803210718.GJ9903@redhat.com> Hi, Attached fix is for PR769: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 The fix is not Java 7 specific ... Java 7 just exposed the bug. ChangeLog: 2011-08-03 Deepak Bhole PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java (checkServerTrusted): Account for a null hostname that the overloaded implementation may pass. Okay for HEAD, 1.0 and 1.1? Cheers, Deepak -------------- next part -------------- diff -r db6914cf15be NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Wed Aug 03 17:06:33 2011 -0400 @@ -13,6 +13,7 @@ - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + - PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 New in release 1.1.1 (2011-07-20): * Security updates: diff -r db6914cf15be netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java --- a/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Wed Aug 03 14:11:11 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Wed Aug 03 17:06:33 2011 -0400 @@ -222,7 +222,7 @@ // If the certificate is not explicitly trusted, we // need to prompt the user - if (!isExplicitlyTrusted(chain, authType)) { + if (!isExplicitlyTrusted(chain, authType) && hostName != null) { try { HostnameChecker checker = HostnameChecker @@ -235,6 +235,8 @@ CNMatched = false; ce = e; } + } else if (!isExplicitlyTrusted(chain, authType)) { + CNMatched = false; } if (!trusted || !CNMatched) { From ptisnovs at icedtea.classpath.org Thu Aug 4 02:59:39 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 04 Aug 2011 09:59:39 +0000 Subject: /hg/gfx-test: Added new tests - drawing quadratic curves using e... Message-ID: changeset 98d8ac4bd4cb in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=98d8ac4bd4cb author: Pavel Tisnovsky date: Thu Aug 04 12:01:15 2011 +0200 Added new tests - drawing quadratic curves using extra width stroke. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 71 ++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletions(-) diffs (100 lines): diff -r 41fa7137721d -r 98d8ac4bd4cb ChangeLog --- a/ChangeLog Wed Aug 03 18:07:00 2011 +0200 +++ b/ChangeLog Thu Aug 04 12:01:15 2011 +0200 @@ -1,3 +1,8 @@ +2011-08-04 Pavel Tisnovsky + * diff.diff: removed as it's just a garbage. + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: + Added new tests - drawing curves using extra width stroke. + 2011-08-03 Pavel Tisnovsky * diff.diff: removed as it's just a garbage. * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: diff -r 41fa7137721d -r 98d8ac4bd4cb src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Wed Aug 03 18:07:00 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Thu Aug 04 12:01:15 2011 +0200 @@ -234,7 +234,7 @@ /** * Test if quadratic curve created by QuadCurve2D.Float() is rendered - * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * correctly. Curve is to be drawn with 30 pixels wide stroke and default * caps. * * @param image @@ -326,6 +326,75 @@ /** * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 30 pixels wide stroke and default + * CAP_BUTT. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testExtraThickStrokeCapsButt(TestImage image, Graphics2D graphics) + { + // set 30 pixels wide stroke and CAP_BUTT + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 30 pixels wide stroke and default + * CAP_ROUND. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testExtraThickStrokeCapsRound(TestImage image, Graphics2D graphics) + { + // set 30 pixels wide stroke and CAP_ROUND + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered + * correctly. Curve is to be drawn with 30 pixels wide stroke and default + * CAP_SQUARE. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testExtraThickStrokeCapsSquare(TestImage image, Graphics2D graphics) + { + // set 30 pixels wide stroke and CAP_SQUARE + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // draw quadratic curve + return drawQuadraticCurve(image, graphics, quadCurve); + } + + /** + * Test if quadratic curve created by QuadCurve2D.Float() is rendered * correctly. Curve is drawn using different colors. * * @param image From jvanek at redhat.com Thu Aug 4 03:18:56 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Aug 2011 12:18:56 +0200 Subject: [RFC] changes to CommitPolicy Message-ID: <4E3A7210.6070106@redhat.com> Hi! I would like to modify commit policies on wiky - http://icedtea.classpath.org/wiki/CommitPolicy. Especially is going for this line: "In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested." Icedtea-web is quite young, but still very untested. Every test inside can help in future to track bugs, and can always track a little bit also old behaviours. This effort can help to increase tested parts of icedtea-web. Regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: icedTeaPolicies.diff Type: text/x-patch Size: 3639 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110804/78333d7b/icedTeaPolicies.diff From dbhole at redhat.com Thu Aug 4 05:54:41 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 4 Aug 2011 08:54:41 -0400 Subject: [RFC] changes to CommitPolicy In-Reply-To: <4E3A7210.6070106@redhat.com> References: <4E3A7210.6070106@redhat.com> Message-ID: <20110804125440.GO9903@redhat.com> * Jiri Vanek [2011-08-04 06:22]: > Hi! > I would like to modify commit policies on wiky - http://icedtea.classpath.org/wiki/CommitPolicy. > Especially is going for this line: > > "In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested." > I think there is a typo there. "cough future changes"? Did you mean cover? I think it is slightly confusing. What are your thoughts about something like: "IcedTea-Web code changes/new feature should be accompanied with appropriate tests. If no tests are added/modified, changes should be accompanied with an explanation as to why." Cheers, Deepak > Icedtea-web is quite young, but still very untested. Every test inside can help in future to track bugs, and can always track a little bit also old behaviours. This effort can help to increase tested parts of icedtea-web. > > > Regards J. > --- icedTeaPolicies1 2011-08-04 11:50:22.461840769 +0200 > +++ icedTeaPolicies2 2011-08-04 12:05:56.954839372 +0200 > @@ -45,34 +45,36 @@ > The ChangeLog should take the following format and be as detailed as possible, concerning the changes made, as this serves as a record for future maintenance. > > (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and '>') > > * (filename): > (change to file) > etc. > > Please note that all lines except the first one should be indented by character, not by spaces, so the format is following: > > (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and '>') > > * (filename): > (change to file) > etc. > > GNU Emacs provides a mode for editing ChangeLog entries and Vim also contains autocommands for ChangeLog files (syntax highlighting + indenting rules). > > It is expected that all patches have been applied and the resulting codebase built. With regard to HotSpot patches, builds should be conducted with both supported versions of HotSpot (see ReleasePolicy). We don't expect every niche option (there are many) to be tested and other developers should be aware of this, and be responsible for maintaining those which interest them. > > Below, we list specific criteria which applies to a subset of patches for IcedTea. > OpenJDK Patches > > Many patches to IcedTea will actually be patches to patch OpenJDK. With IcedTea6, this involves a patch which includes a further patch to be applied to the OpenJDK source at build time. With IcedTea7 onwards, patches are applied to our own forest. > > In IcedTea6, patches for OpenJDK should be stored in the patches subdirectory. If the patch is a direct backport of a fix from OpenJDK7, it should be placed in patches/openjdk and named using the following format: (bug-id)-(summary).patch, where summary is a (appropriately shortened) version of the summary field from the patch. Discretion may be applied in naming the patch if the summary field is unhelpful; this is something to be discussed in the review process. Please 'do not significantly alter backported patches or add additional changes to them as the patches in patches/openjdk are used as an effective TODO list for patches to be upstreamed and will be removed when the corresponding bug ID is available upstream. > > In IcedTea7, patches for OpenJDK are applied directly to our OpenJDK forest. Again, when conducting backports, use exact patches (via hg export/import) and do not mix in additional changes. > Security Patches > > +In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested. > + > An inevitable issue with dealing with security issues is that patches have to be applied in secret and then only released post-embargo. This means that they will not undergo the same rigorous review process as normal patches. Please be accepting of this and don't flame the person who releases the security patches if something breaks as a result. Extensive testing is performed for security patches, but it will not cover niche options (Zero, Shark, CACAO, JamVM). > Freeze Periods > > The HEAD or trunk branches are always open for business. Release branches are closed for very brief periods (hours rather than days) to allow the designated maintainer (see ReleasePolicy) to perform the release. During the freeze, the maintainer and only the maintainer is allowed to make basic commits (updating configure.ac and NEWS, tagging) to perform the release. From jvanek at redhat.com Thu Aug 4 06:32:54 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Aug 2011 15:32:54 +0200 Subject: [RFC] changes to CommitPolicy In-Reply-To: <20110804125440.GO9903@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> Message-ID: <4E3A9F86.6000103@redhat.com> On 08/04/2011 02:54 PM, Deepak Bhole wrote: Yap, every more native speaker then mi is more correct then me:) I would like to have an note about "what" tests can be included to help developer to search for or ask. Otherwise your translation have my meaning and I like it. "IcedTea-Web code changes/new feature should be accompanied with appropriate tests (juinit class and/or reproducer). If no tests are added/modified, changes should be accompanied with an explanation as to why." > * Jiri Vanek [2011-08-04 06:22]: >> Hi! >> I would like to modify commit policies on wiky - http://icedtea.classpath.org/wiki/CommitPolicy. >> Especially is going for this line: >> >> "In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested." >> > > I think there is a typo there. "cough future changes"? Did you mean > cover? > > I think it is slightly confusing. What are your thoughts about something > like: > > "IcedTea-Web code changes/new feature should be accompanied with > appropriate tests. If no tests are added/modified, changes should be > accompanied with an explanation as to why." > > Cheers, > Deepak > >> Icedtea-web is quite young, but still very untested. Every test inside can help in future to track bugs, and can always track a little bit also old behaviours. This effort can help to increase tested parts of icedtea-web. >> >> >> Regards J. > >> --- icedTeaPolicies1 2011-08-04 11:50:22.461840769 +0200 >> +++ icedTeaPolicies2 2011-08-04 12:05:56.954839372 +0200 >> @@ -45,34 +45,36 @@ >> The ChangeLog should take the following format and be as detailed as possible, concerning the changes made, as this serves as a record for future maintenance. >> >> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') >> >> * (filename): >> (change to file) >> etc. >> >> Please note that all lines except the first one should be indented by character, not by spaces, so the format is following: >> >> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') >> >> * (filename): >> (change to file) >> etc. >> >> GNU Emacs provides a mode for editing ChangeLog entries and Vim also contains autocommands for ChangeLog files (syntax highlighting + indenting rules). >> >> It is expected that all patches have been applied and the resulting codebase built. With regard to HotSpot patches, builds should be conducted with both supported versions of HotSpot (see ReleasePolicy). We don't expect every niche option (there are many) to be tested and other developers should be aware of this, and be responsible for maintaining those which interest them. >> >> Below, we list specific criteria which applies to a subset of patches for IcedTea. >> OpenJDK Patches >> >> Many patches to IcedTea will actually be patches to patch OpenJDK. With IcedTea6, this involves a patch which includes a further patch to be applied to the OpenJDK source at build time. With IcedTea7 onwards, patches are applied to our own forest. >> >> In IcedTea6, patches for OpenJDK should be stored in the patches subdirectory. If the patch is a direct backport of a fix from OpenJDK7, it should be placed in patches/openjdk and named using the following format: (bug-id)-(summary).patch, where summary is a (appropriately shortened) version of the summary field from the patch. Discretion may be applied in naming the patch if the summary field is unhelpful; this is something to be discussed in the review process. Please 'do not significantly alter backported patches or add additional changes to them as the patches in patches/openjdk are used as an effective TODO list for patches to be upstreamed and will be removed when the corresponding bug ID is available upstream. >> >> In IcedTea7, patches for OpenJDK are applied directly to our OpenJDK forest. Again, when conducting backports, use exact patches (via hg export/import) and do not mix in additional changes. >> Security Patches >> >> +In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested. >> + >> An inevitable issue with dealing with security issues is that patches have to be applied in secret and then only released post-embargo. This means that they will not undergo the same rigorous review process as normal patches. Please be accepting of this and don't flame the person who releases the security patches if something breaks as a result. Extensive testing is performed for security patches, but it will not cover niche options (Zero, Shark, CACAO, JamVM). >> Freeze Periods >> >> The HEAD or trunk branches are always open for business. Release branches are closed for very brief periods (hours rather than days) to allow the designated maintainer (see ReleasePolicy) to perform the release. During the freeze, the maintainer and only the maintainer is allowed to make basic commits (updating configure.ac and NEWS, tagging) to perform the release. > From dbhole at redhat.com Thu Aug 4 06:39:46 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 4 Aug 2011 09:39:46 -0400 Subject: [RFC] changes to CommitPolicy In-Reply-To: <4E3A9F86.6000103@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> Message-ID: <20110804133945.GP9903@redhat.com> * Jiri Vanek [2011-08-04 09:36]: > On 08/04/2011 02:54 PM, Deepak Bhole wrote: > Yap, every more native speaker then mi is more correct then me:) > > I would like to have an note about "what" tests can be included to help developer to search for or ask. Otherwise your translation have my meaning and I like it. > > "IcedTea-Web code changes/new feature should be accompanied with > appropriate tests (juinit class and/or reproducer). If no tests are added/modified, changes should be > accompanied with an explanation as to why." > > >* Jiri Vanek [2011-08-04 06:22]: > >>Hi! > >>I would like to modify commit policies on wiky - http://icedtea.classpath.org/wiki/CommitPolicy. > >>Especially is going for this line: > >> > >>"In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested." > >> > > > >I think there is a typo there. "cough future changes"? Did you mean > >cover? > > > >I think it is slightly confusing. What are your thoughts about something > >like: > > > >"IcedTea-Web code changes/new feature should be accompanied with > >appropriate tests. If no tests are added/modified, changes should be > >accompanied with an explanation as to why." > > Above sounds good to me! Cheers, Deepak > >Cheers, > >Deepak > > > >>Icedtea-web is quite young, but still very untested. Every test inside can help in future to track bugs, and can always track a little bit also old behaviours. This effort can help to increase tested parts of icedtea-web. > >> > >> > >>Regards J. > > > >>--- icedTeaPolicies1 2011-08-04 11:50:22.461840769 +0200 > >>+++ icedTeaPolicies2 2011-08-04 12:05:56.954839372 +0200 > >>@@ -45,34 +45,36 @@ > >> The ChangeLog should take the following format and be as detailed as possible, concerning the changes made, as this serves as a record for future maintenance. > >> > >> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') > >> > >> * (filename): > >> (change to file) > >> etc. > >> > >> Please note that all lines except the first one should be indented by character, not by spaces, so the format is following: > >> > >> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') > >> > >> * (filename): > >> (change to file) > >> etc. > >> > >> GNU Emacs provides a mode for editing ChangeLog entries and Vim also contains autocommands for ChangeLog files (syntax highlighting + indenting rules). > >> > >> It is expected that all patches have been applied and the resulting codebase built. With regard to HotSpot patches, builds should be conducted with both supported versions of HotSpot (see ReleasePolicy). We don't expect every niche option (there are many) to be tested and other developers should be aware of this, and be responsible for maintaining those which interest them. > >> > >> Below, we list specific criteria which applies to a subset of patches for IcedTea. > >> OpenJDK Patches > >> > >> Many patches to IcedTea will actually be patches to patch OpenJDK. With IcedTea6, this involves a patch which includes a further patch to be applied to the OpenJDK source at build time. With IcedTea7 onwards, patches are applied to our own forest. > >> > >> In IcedTea6, patches for OpenJDK should be stored in the patches subdirectory. If the patch is a direct backport of a fix from OpenJDK7, it should be placed in patches/openjdk and named using the following format: (bug-id)-(summary).patch, where summary is a (appropriately shortened) version of the summary field from the patch. Discretion may be applied in naming the patch if the summary field is unhelpful; this is something to be discussed in the review process. Please 'do not significantly alter backported patches or add additional changes to them as the patches in patches/openjdk are used as an effective TODO list for patches to be upstreamed and will be removed when the corresponding bug ID is available upstream. > >> > >> In IcedTea7, patches for OpenJDK are applied directly to our OpenJDK forest. Again, when conducting backports, use exact patches (via hg export/import) and do not mix in additional changes. > >> Security Patches > >> > >>+In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested. > >>+ > >> An inevitable issue with dealing with security issues is that patches have to be applied in secret and then only released post-embargo. This means that they will not undergo the same rigorous review process as normal patches. Please be accepting of this and don't flame the person who releases the security patches if something breaks as a result. Extensive testing is performed for security patches, but it will not cover niche options (Zero, Shark, CACAO, JamVM). > >> Freeze Periods > >> > >> The HEAD or trunk branches are always open for business. Release branches are closed for very brief periods (hours rather than days) to allow the designated maintainer (see ReleasePolicy) to perform the release. During the freeze, the maintainer and only the maintainer is allowed to make basic commits (updating configure.ac and NEWS, tagging) to perform the release. > > > From ptisnovs at icedtea.classpath.org Thu Aug 4 06:41:38 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 04 Aug 2011 13:41:38 +0000 Subject: /hg/gfx-test: NormalCubicCurves: refactoring, added more test ca... Message-ID: changeset 6fbdab4d7a3c in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=6fbdab4d7a3c author: Pavel Tisnovsky date: Thu Aug 04 15:43:15 2011 +0200 NormalCubicCurves: refactoring, added more test cases including special cases (multiple control points). diffstat: ChangeLog | 6 + src/org/gfxtest/framework/CubicCurvePointSet.java | 409 +++++++++ src/org/gfxtest/testsuites/NormalCubicCurves.java | 786 +++++++++++++---- src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 7 +- 4 files changed, 993 insertions(+), 215 deletions(-) diffs (truncated from 1431 to 500 lines): diff -r 98d8ac4bd4cb -r 6fbdab4d7a3c ChangeLog --- a/ChangeLog Thu Aug 04 12:01:15 2011 +0200 +++ b/ChangeLog Thu Aug 04 15:43:15 2011 +0200 @@ -1,3 +1,9 @@ +2011-08-04 Pavel Tisnovsky + * src/org/gfxtest/framework/CubicCurvePointSet.java: added + * src/org/gfxtest/testsuites/NormalCubicCurves.java: + Refactoring, added more test cases including special cases (multiple + control points). + 2011-08-04 Pavel Tisnovsky * diff.diff: removed as it's just a garbage. * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: diff -r 98d8ac4bd4cb -r 6fbdab4d7a3c src/org/gfxtest/framework/CubicCurvePointSet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/framework/CubicCurvePointSet.java Thu Aug 04 15:43:15 2011 +0200 @@ -0,0 +1,409 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.framework; + + + +/** + * Class used to store all four control points of cubic curve. Coordinates of + * control points are computed from test image width and height. + * + * @author Pavel Tisnovsky + */ +public class CubicCurvePointSet +{ + /** + * Default Y offset of curve end points. + */ + private static final int DEFAULT_Y_OFFSET = 40; + + /** + * Set of points x-coordinates. + */ + private int[] x = new int[4]; + + /** + * Set of points t-coordinates. + */ + private int[] y = new int[4]; + + /** + * Constructor which computes all four control points from the dimensions of + * test image. + * + * @param image + */ + public CubicCurvePointSet(TestImage image) + { + // compute width and height of test image + int width = image.getWidth(); + int height = image.getHeight(); + + // compute control points coordinates + this.x[0] = computeX1(width); + this.y[0] = computeY1(); + this.x[1] = computeX2(width); + this.y[1] = computeY2(height); + this.x[2] = computeX3(width); + this.y[2] = computeY3(height); + this.x[3] = computeX4(width); + this.y[3] = computeY4(height); + } + + /** + * Compute X coordinate of first curve end point. + * + * @param width + * canvas width + * @return X coordinate of first curve end point. + */ + private int computeX1(int width) + { + return width >> 2; + } + + /** + * Compute X coordinate of curve first control point. + * + * @param width + * canvas width + * @return X coordinate of curve first control point. + */ + private int computeX2(int width) + { + return width - DEFAULT_Y_OFFSET; + } + + /** + * Compute X coordinate of curve second control point. + * + * @param width + * canvas width + * @return X coordinate of curve second control point. + */ + private int computeX3(int width) + { + return DEFAULT_Y_OFFSET; + } + + /** + * Compute X coordinate of second curve end point. + * + * @param width + * canvas width + * @return X coordinate of second curve end point. + */ + private int computeX4(int width) + { + return width * 3 / 4; + } + + /** + * Compute Y coordinate of first curve end point. + * + * @return Y coordinate of first curve end point. + */ + private int computeY1() + { + return DEFAULT_Y_OFFSET; + } + + /** + * Compute Y coordinate of curve first control point. + * + * @param height + * canvas height + * @return Y coordinate of curve first control point. + */ + private int computeY2(int height) + { + return height * 3/4; + } + + /** + * Compute Y coordinate of curve second control point. + * + * @param height + * canvas height + * @return Y coordinate of curve second control point. + */ + private int computeY3(int height) + { + return height * 3/4; + } + + /** + * Compute Y coordinate of second curve end point. + * + * @return Y coordinate of second curve end point. + */ + private int computeY4(int height) + { + return DEFAULT_Y_OFFSET; + } + + /** + * Set x-coordinate of the first control point. + * + * @param x1 + * x-coordinate of the first control point + */ + public void setX1(int x1) + { + this.x[0] = x1; + } + + /** + * Set x-coordinate of the second control point. + * + * @param x2 + * x-coordinate of the second control point + */ + public void setX2(int x2) + { + this.x[1] = x2; + } + + /** + * Set x-coordinate of the third control point. + * + * @param x3 + * x-coordinate of the third control point + */ + public void setX3(int x3) + { + this.x[2] = x3; + } + + /** + * Set x-coordinate of the fourth control point. + * + * @param x4 + * x-coordinate of the fourth control point + */ + public void setX4(int x4) + { + this.x[3] = x4; + } + + /** + * Set y-coordinate of the first control point. + * + * @param y1 + * y-coordinate of the first control point + */ + public void setY1(int y1) + { + this.y[0] = y1; + } + + /** + * Set y-coordinate of the second control point. + * + * @param y2 + * y-coordinate of the second control point + */ + public void setY2(int y2) + { + this.y[1] = y2; + } + + /** + * Set y-coordinate of the third control point. + * + * @param y3 + * y-coordinate of the third control point + */ + public void setY3(int y3) + { + this.y[2] = y3; + } + + /** + * Set y-coordinate of the fourth control point. + * + * @param y4 + * y-coordinate of the fourth control point + */ + public void setY4(int y4) + { + this.y[3] = y4; + } + + /** + * Return x-coordinate of the first control point. + * + * @return x-coordinate of the first control point. + */ + public int getX1() + { + return this.x[0]; + } + + /** + * Return x-coordinate of the second control point. + * + * @return x-coordinate of the second control point. + */ + public int getX2() + { + return this.x[1]; + } + + /** + * Return x-coordinate of the third control point. + * + * @return x-coordinate of the third control point. + */ + public int getX3() + { + return this.x[2]; + } + + /** + * Return x-coordinate of the fourth control point. + * + * @return x-coordinate of the fourth control point. + */ + public int getX4() + { + return this.x[3]; + } + + /** + * Return y-coordinate of the first control point. + * + * @return y-coordinate of the first control point. + */ + public int getY1() + { + return this.y[0]; + } + + /** + * Return y-coordinate of the second control point. + * + * @return y-coordinate of the second control point. + */ + public int getY2() + { + return this.y[1]; + } + + /** + * Return y-coordinate of the third control point. + * + * @return y-coordinate of the third control point. + */ + public int getY3() + { + return this.y[2]; + } + + /** + * Return y-coordinate of the fourth control point. + * + * @return y-coordinate of the fourth control point. + */ + public int getY4() + { + return this.y[3]; + } + + /** + * Return offset used to move curve away from the image border. + * + * @return the default y offset + */ + public static int getDefaultYOffset() + { + return DEFAULT_Y_OFFSET; + } + + /** + * Return x-coordinate of the n-th control point of cubic curve. + * + * @param index + * index of the control point in range 1..4 + * @return x-coordinate of the n-th control point. + */ + public double getNthX(int index) + { + // check index range + if (indexOutOfBounds(index)) + { + throw new IndexOutOfBoundsException("invalid index " + index + " (should be 1..4)"); + } + // return x-coordinate + return this.x[index - 1]; + } + + /** + * Return y-coordinate of the n-th control point of cubic curve. + * + * @param index + * index of the control point in range 1..4 + * @return y-coordinate of the n-th control point. + */ + public double getNthY(int index) + { + // check index range + if (indexOutOfBounds(index)) + { + throw new IndexOutOfBoundsException("invalid index " + index + " (should be 1..4)"); + } + // return y-coordinate + return this.y[index - 1]; + } + + /** + * Check if control point index is inside given range 1..4. + * + * @param index + * index of the control point + * @return true if index is inside defined range, false otherwise + */ + private boolean indexOutOfBounds(int index) + { + return index < 1 || index > 4; + } + +} diff -r 98d8ac4bd4cb -r 6fbdab4d7a3c src/org/gfxtest/testsuites/NormalCubicCurves.java --- a/src/org/gfxtest/testsuites/NormalCubicCurves.java Thu Aug 04 12:01:15 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalCubicCurves.java Thu Aug 04 15:43:15 2011 +0200 @@ -51,8 +51,8 @@ /** * This test renders various cubic curves using identity transformation matrix. - * Cubic curves are constructed using CubicCurve2D class. Curves are drawn - * using various colors and stroke width. + * Cubic curves are constructed using CubicCurve2D class. Curves are drawn using + * various colors and stroke width. * * @author Pavel Tisnovsky */ @@ -63,34 +63,54 @@ @Zoom(1) public class NormalCubicCurves extends GfxTest { + + /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + /** * Default Y offset of curve end points. */ - private static final int DEFAULT_Y_OFFSET = 20; + private static final int DEFAULT_Y_OFFSET = 40; /** + * Step between curves drawn by different colors onto the same image. + */ + private static final int OFFSET_STEP = 20; + + /** * Draw cubic curve onto canvas specified by Graphics2D class. * + * @param image + * image to which two dimensional shape is to be rendered * @param graphics * graphics canvas - * @param width - * canvas width - * @param height - * canvas height * @param cubicCurve * cubic curve to be drawn * @param color * curve color or null when Color.BLACK can be used. + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) * @return test result status - PASSED, FAILED or ERROR */ - private TestResult drawCubicCurve(Graphics2D graphics, int width, int height, CubicCurve2D cubicCurve, Color color) + private TestResult drawCubicCurve(TestImage image, Graphics2D graphics, CubicCurve2D cubicCurve, Color color, int[] pointIndexes) { + // construct point set which consists of all four curve control points + CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + // construct CubicCurve2D.Float with set coordinates cubicCurve.setCurve( - computeX1(width), computeY1(), - computeX2(width), computeY2(height), - computeX3(width), computeY3(height), - computeX4(width), computeY4(height)); + pointSet.getNthX(pointIndexes[0]), pointSet.getNthY(pointIndexes[0]), + pointSet.getNthX(pointIndexes[1]), pointSet.getNthY(pointIndexes[1]), From jvanek at redhat.com Thu Aug 4 06:44:41 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Aug 2011 15:44:41 +0200 Subject: [RFC] changes to CommitPolicy In-Reply-To: <20110804133945.GP9903@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> Message-ID: <4E3AA249.50707@redhat.com> On 08/04/2011 03:39 PM, Deepak Bhole wrote: > * Jiri Vanek [2011-08-04 09:36]: >> On 08/04/2011 02:54 PM, Deepak Bhole wrote: >> Yap, every more native speaker then mi is more correct then me:) >> >> I would like to have an note about "what" tests can be included to help developer to search for or ask. Otherwise your translation have my meaning and I like it. >> >> "IcedTea-Web code changes/new feature should be accompanied with >> appropriate tests (juinit class and/or reproducer). If no tests are added/modified, changes should be >> accompanied with an explanation as to why." >> >>> * Jiri Vanek [2011-08-04 06:22]: >>>> Hi! >>>> I would like to modify commit policies on wiky - http://icedtea.classpath.org/wiki/CommitPolicy. >>>> Especially is going for this line: >>>> >>>> "In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested." >>>> >>> >>> I think there is a typo there. "cough future changes"? Did you mean >>> cover? >>> >>> I think it is slightly confusing. What are your thoughts about something >>> like: >>> >>> "IcedTea-Web code changes/new feature should be accompanied with >>> appropriate tests. If no tests are added/modified, changes should be >>> accompanied with an explanation as to why." >>> > > Above sounds good to me! I do not have access to write to wiki:) Pavel have saved the change. J. > > Cheers, > Deepak > >>> Cheers, >>> Deepak >>> >>>> Icedtea-web is quite young, but still very untested. Every test inside can help in future to track bugs, and can always track a little bit also old behaviours. This effort can help to increase tested parts of icedtea-web. >>>> >>>> >>>> Regards J. >>> >>>> --- icedTeaPolicies1 2011-08-04 11:50:22.461840769 +0200 >>>> +++ icedTeaPolicies2 2011-08-04 12:05:56.954839372 +0200 >>>> @@ -45,34 +45,36 @@ >>>> The ChangeLog should take the following format and be as detailed as possible, concerning the changes made, as this serves as a record for future maintenance. >>>> >>>> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') >>>> >>>> * (filename): >>>> (change to file) >>>> etc. >>>> >>>> Please note that all lines except the first one should be indented by character, not by spaces, so the format is following: >>>> >>>> (date in YYYY-MM-DD format) (name) (e-mail enclosed in '<' and'>') >>>> >>>> * (filename): >>>> (change to file) >>>> etc. >>>> >>>> GNU Emacs provides a mode for editing ChangeLog entries and Vim also contains autocommands for ChangeLog files (syntax highlighting + indenting rules). >>>> >>>> It is expected that all patches have been applied and the resulting codebase built. With regard to HotSpot patches, builds should be conducted with both supported versions of HotSpot (see ReleasePolicy). We don't expect every niche option (there are many) to be tested and other developers should be aware of this, and be responsible for maintaining those which interest them. >>>> >>>> Below, we list specific criteria which applies to a subset of patches for IcedTea. >>>> OpenJDK Patches >>>> >>>> Many patches to IcedTea will actually be patches to patch OpenJDK. With IcedTea6, this involves a patch which includes a further patch to be applied to the OpenJDK source at build time. With IcedTea7 onwards, patches are applied to our own forest. >>>> >>>> In IcedTea6, patches for OpenJDK should be stored in the patches subdirectory. If the patch is a direct backport of a fix from OpenJDK7, it should be placed in patches/openjdk and named using the following format: (bug-id)-(summary).patch, where summary is a (appropriately shortened) version of the summary field from the patch. Discretion may be applied in naming the patch if the summary field is unhelpful; this is something to be discussed in the review process. Please 'do not significantly alter backported patches or add additional changes to them as the patches in patches/openjdk are used as an effective TODO list for patches to be upstreamed and will be removed when the corresponding bug ID is available upstream. >>>> >>>> In IcedTea7, patches for OpenJDK are applied directly to our OpenJDK forest. Again, when conducting backports, use exact patches (via hg export/import) and do not mix in additional changes. >>>> Security Patches >>>> >>>> +In IcedTea-Web the code changes/new features should be delivered with proper test and (or) reproducers to cough future changes and track behavior if possible. If non test is delivered, then should be explained why this particular commit should be untested. >>>> + >>>> An inevitable issue with dealing with security issues is that patches have to be applied in secret and then only released post-embargo. This means that they will not undergo the same rigorous review process as normal patches. Please be accepting of this and don't flame the person who releases the security patches if something breaks as a result. Extensive testing is performed for security patches, but it will not cover niche options (Zero, Shark, CACAO, JamVM). >>>> Freeze Periods >>>> >>>> The HEAD or trunk branches are always open for business. Release branches are closed for very brief periods (hours rather than days) to allow the designated maintainer (see ReleasePolicy) to perform the release. During the freeze, the maintainer and only the maintainer is allowed to make basic commits (updating configure.ac and NEWS, tagging) to perform the release. >>> >> From smohammad at redhat.com Thu Aug 4 06:55:07 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 04 Aug 2011 09:55:07 -0400 Subject: [RFC] changes to CommitPolicy In-Reply-To: <20110804133945.GP9903@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> Message-ID: <4E3AA4BB.8040804@redhat.com> [. . .] On 08/04/2011 09:39 AM, Deepak Bhole wrote: > "IcedTea-Web code changes/new feature should be accompanied with > > >appropriate tests. If no tests are added/modified, changes should be > > >accompanied with an explanation as to why." Hi, Where would we store our explanation if no tests are accompanied with the new changes? Also, can IcedTea-Web run all tests automatically after they are added to the test directory? Or would the programmer need to modify the makefile.am every time a new test is added? [. . .] -- Cheers, Saad Mohammad From jvanek at redhat.com Thu Aug 4 06:58:30 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 04 Aug 2011 15:58:30 +0200 Subject: [RFC] changes to CommitPolicy In-Reply-To: <4E3AA4BB.8040804@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> <4E3AA4BB.8040804@redhat.com> Message-ID: <4E3AA586.4020306@redhat.com> On 08/04/2011 03:55 PM, Saad Mohammad wrote: > [. . .] > On 08/04/2011 09:39 AM, Deepak Bhole wrote: >> "IcedTea-Web code changes/new feature should be accompanied with >> > >appropriate tests. If no tests are added/modified, changes should be >> > >accompanied with an explanation as to why." > Hi, > > Where would we store our explanation if no tests are accompanied with the new changes? I think that write them to the email with review request is enough. Altho I think write them into changelog is vaste of space. What is your opinion? > > Also, can IcedTea-Web run all tests automatically after they are added to the test directory? Or would the programmer need to modify the makefile.am every time a new test is added? > [. . .] Most of the reproducers should be enough when added into directory (.../icedtea-web/tests/jnlp_tests/simple - see also readme), but some cases maybe will need their own build infrastructure. (or maybe extending current one). Regards J. > From smohammad at redhat.com Thu Aug 4 07:16:54 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 04 Aug 2011 10:16:54 -0400 Subject: [RFC] changes to CommitPolicy In-Reply-To: <4E3AA586.4020306@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> <4E3AA4BB.8040804@redhat.com> <4E3AA586.4020306@redhat.com> Message-ID: <4E3AA9D6.4030000@redhat.com> On 08/04/2011 09:58 AM, Jiri Vanek wrote: > On 08/04/2011 03:55 PM, Saad Mohammad wrote: >> [. . .] >> On 08/04/2011 09:39 AM, Deepak Bhole wrote: >>> "IcedTea-Web code changes/new feature should be accompanied with >>> > >appropriate tests. If no tests are added/modified, changes should be >>> > >accompanied with an explanation as to why." >> Hi, >> >> Where would we store our explanation if no tests are accompanied with >> the new changes? > > I think that write them to the email with review request is enough. > Altho I think write them into changelog is vaste of space. What is > your opinion? Oh, I was thinking we had to keep record in a separate file in icedtea-web. Which may not be the best solution. :\ But, I do agree with you. I think writing them on the email is a much better way. Reviewers can validate if a test is required or not (if test(s) are not provided). I also agree with you about writing them to a changelog; it would be a waste of space. > >> >> Also, can IcedTea-Web run all tests automatically after they are >> added to the test directory? Or would the programmer need to modify >> the makefile.am every time a new test is added? >> [. . .] > > Most of the reproducers should be enough when added into directory > (.../icedtea-web/tests/jnlp_tests/simple - see also readme), but some > cases maybe will need their own build infrastructure. (or maybe > extending current one). Okay :). > > Regards J. >> > -- Cheers, Saad Mohammad From mark at klomp.org Thu Aug 4 07:17:49 2011 From: mark at klomp.org (Mark Wielaard) Date: Thu, 04 Aug 2011 16:17:49 +0200 Subject: [RFC] changes to CommitPolicy In-Reply-To: <4E3AA249.50707@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> <4E3AA249.50707@redhat.com> Message-ID: <1312467469.11246.1.camel@springer.wildebeest.org> On Thu, 2011-08-04 at 15:44 +0200, Jiri Vanek wrote: > On 08/04/2011 03:39 PM, Deepak Bhole wrote: > > Above sounds good to me! > > I do not have access to write to wiki:) Yeah, sorry about that. To keep spammers out a wiki account has to be created by hand. sigh. I created one for you, details should be in your mailbox. Cheers, Mark From dbhole at redhat.com Thu Aug 4 12:30:06 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 4 Aug 2011 15:30:06 -0400 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 Message-ID: <20110804193005.GD31824@redhat.com> Hi, Just tried to do a clean 1.0 build and noticed that it failed. Not sure how this slipped before :/ Attached patch fixes the debug() statement to match the signature present in 1.0. Okay for 1.0? 2011-08-04 Deepak Bhole * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java (readPair): Fix call to PluginDebug.debug() to match signature. Cheers, Deepak -------------- next part -------------- diff -r 7ee2e487f4e2 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Aug 03 14:11:11 2011 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Aug 04 15:28:04 2011 -0400 @@ -222,7 +222,7 @@ } } - PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + PluginDebug.debug("readPair: '" + array[0] + "' - '" + array[1] + "' " + end); return end; } From dbhole at redhat.com Thu Aug 4 13:58:16 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 4 Aug 2011 16:58:16 -0400 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work Message-ID: <20110804205816.GE31824@redhat.com> Hi, Attached path fixes rhbz 718693: https://bugzilla.redhat.com/show_bug.cgi?id=718693 The patch adds a class that certain apps may call because Netscape used to need it. IcedTea-Web does not need this, and therefore the methods are empty. Okay for HEAD and 1.1? ChangeLog: 2011-08-04 Deepak Bhole RH718693: MindTerm SSH Applet doesn't work * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. Stub class, not needed with IcedTea-Web. Cheers, Deepak -------------- next part -------------- diff -r defa7d0051bf NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Thu Aug 04 16:55:23 2011 -0400 @@ -14,6 +14,7 @@ - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + - RH718693: MindTerm SSH Applet doesn't work Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diff -r defa7d0051bf plugin/icedteanp/java/netscape/security/PrivilegeManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Thu Aug 04 16:55:23 2011 -0400 @@ -0,0 +1,24 @@ +package netscape.security; + +import sun.applet.PluginDebug; + +public class PrivilegeManager { + + /** + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void enablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.enablePrivilege stub called"); + } + + /** + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void disablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.disablePrivilege stub called"); + } +} From ahughes at redhat.com Thu Aug 4 18:47:16 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 5 Aug 2011 02:47:16 +0100 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <20110804193005.GD31824@redhat.com> References: <20110804193005.GD31824@redhat.com> Message-ID: <20110805014716.GY31431@rivendell.middle-earth.co.uk> On 15:30 Thu 04 Aug , Deepak Bhole wrote: > Hi, > > Just tried to do a clean 1.0 build and noticed that it failed. Not sure how > this slipped before :/ > That's worrying. Do you not always do clean builds? IcedTea-Web is tiny, so there's really no excuse. > Attached patch fixes the debug() statement to match the signature > present in 1.0. > > Okay for 1.0? > Yes. > 2011-08-04 Deepak Bhole > > * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > (readPair): Fix call to PluginDebug.debug() to match signature. > > Cheers, > Deepak > diff -r 7ee2e487f4e2 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Aug 03 14:11:11 2011 -0400 > +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Aug 04 15:28:04 2011 -0400 > @@ -222,7 +222,7 @@ > } > } > > - PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); > + PluginDebug.debug("readPair: '" + array[0] + "' - '" + array[1] + "' " + end); > return end; > } > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Aug 4 18:54:29 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 5 Aug 2011 02:54:29 +0100 Subject: [RFC] changes to CommitPolicy In-Reply-To: <20110804133945.GP9903@redhat.com> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> Message-ID: <20110805015429.GA31431@rivendell.middle-earth.co.uk> On 09:39 Thu 04 Aug , Deepak Bhole wrote: > > > > > >I think it is slightly confusing. What are your thoughts about something > > >like: > > > > > >"IcedTea-Web code changes/new feature should be accompanied with > > >appropriate tests. If no tests are added/modified, changes should be > > >accompanied with an explanation as to why." > > > > > Above sounds good to me! > "accompanied with" doesn't sound right to me. And aren't 'new feature' (sic) code changes? How about: "IcedTea-Web code changes should be accompanied by appropriate regression tests. If this is not the case, a suitable explanation should be supplied." > Cheers, > Deepak > -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Aug 4 19:08:22 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 5 Aug 2011 03:08:22 +0100 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work In-Reply-To: <20110804205816.GE31824@redhat.com> References: <20110804205816.GE31824@redhat.com> Message-ID: <20110805020821.GD31431@rivendell.middle-earth.co.uk> On 16:58 Thu 04 Aug , Deepak Bhole wrote: > Hi, > > Attached path fixes rhbz 718693: > https://bugzilla.redhat.com/show_bug.cgi?id=718693 > > The patch adds a class that certain apps may call because Netscape used > to need it. IcedTea-Web does not need this, and therefore the methods > are empty. > > Okay for HEAD and 1.1? > > ChangeLog: > 2011-08-04 Deepak Bhole > > RH718693: MindTerm SSH Applet doesn't work > * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. > Stub class, not needed with IcedTea-Web. > > Cheers, > Deepak Needs a license header. It would also probably benefit from some class-level Javadoc saying what you said above. > diff -r defa7d0051bf NEWS > --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 > +++ b/NEWS Thu Aug 04 16:55:23 2011 -0400 > @@ -14,6 +14,7 @@ > - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation > * Plugin > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + - RH718693: MindTerm SSH Applet doesn't work > Common > - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up > > diff -r defa7d0051bf plugin/icedteanp/java/netscape/security/PrivilegeManager.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Thu Aug 04 16:55:23 2011 -0400 > @@ -0,0 +1,24 @@ > +package netscape.security; > + > +import sun.applet.PluginDebug; > + > +public class PrivilegeManager { > + > + /** > + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility > + * > + * @param privilege > + */ > + public static void enablePrivilege(String privilege) { > + PluginDebug.debug("netscape.security.enablePrivilege stub called"); > + } > + > + /** > + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility > + * > + * @param privilege > + */ > + public static void disablePrivilege(String privilege) { > + PluginDebug.debug("netscape.security.disablePrivilege stub called"); > + } > +} -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From mark at klomp.org Fri Aug 5 02:06:44 2011 From: mark at klomp.org (Mark Wielaard) Date: Fri, 05 Aug 2011 11:06:44 +0200 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <20110805014716.GY31431@rivendell.middle-earth.co.uk> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> Message-ID: <1312535204.2820.11.camel@springer.wildebeest.org> Hi, On Fri, 2011-08-05 at 02:47 +0100, Dr Andrew John Hughes wrote: > On 15:30 Thu 04 Aug , Deepak Bhole wrote: > > Just tried to do a clean 1.0 build and noticed that it failed. Not sure how > > this slipped before :/ > > That's worrying. What is even more worrying is that the buildbot also didn't catch this according to http://builder.classpath.org/icedtea/buildbot/waterfall they are all greeen. (scroll to the far right - yes, I will split the buildbot one of these days so the build overviews are a little smaller). Was this a 1.0 only change that never made it to trunk/tip that buildbot is building? BTW both ARM (v5tel and v7l) icedtea-web builds have some test failures (those orange blobs - click on logs to see which exactly), they might be ARM specific, but maybe someone could take a look if they somehow are general failures that just happen to trigger on ARM. Cheers, Mark From xerxes at zafena.se Fri Aug 5 02:49:17 2011 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Fri, 05 Aug 2011 11:49:17 +0200 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <1312535204.2820.11.camel@springer.wildebeest.org> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> Message-ID: <4E3BBC9D.8070304@zafena.se> On 2011-08-05 11:06, Mark Wielaard wrote: > Hi, > > On Fri, 2011-08-05 at 02:47 +0100, Dr Andrew John Hughes wrote: >> On 15:30 Thu 04 Aug , Deepak Bhole wrote: >>> Just tried to do a clean 1.0 build and noticed that it failed. Not sure how >>> this slipped before :/ >> >> That's worrying. > > What is even more worrying is that the buildbot also didn't catch this > according to http://builder.classpath.org/icedtea/buildbot/waterfall > they are all greeen. (scroll to the far right - yes, I will split the > buildbot one of these days so the build overviews are a little smaller). > Was this a 1.0 only change that never made it to trunk/tip that buildbot > is building? The buildbots needs to get updated to actually test all the release branches. > > BTW both ARM (v5tel and v7l) icedtea-web builds have some test failures > (those orange blobs - click on logs to see which exactly), they might be > ARM specific, but maybe someone could take a look if they somehow are > general failures that just happen to trigger on ARM. The x86_64 builder happens to not run all tests because "junit" are not installed. as can be detected in the x86_64 configure log: checking for junit jar... no The missing junit makes the x86_builder only test the first 193 jrunscript icedtea-web tests, the remaining 48 junit tests then unfortunally gets skipped. The two ARM builders do have junit installed: first all the 193 jrunscripts icedtea-web test pass on the ARM builders and then 44 junit tests pass the 4 failing junit tests are: FAILED: testCommentInAttributes(net.sourceforge.jnlp.ParserCornerCases) expected:<[]> but was:<[1.0+]> FAILED: testMalformedArguments(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML document syntax. FAILED: testTagNotClosed(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML document syntax. FAILED: testUnquotedAttributes(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML document syntax. Mark can you install junit on the x86_64 builder? > > Cheers, > > Mark Cheers Xerxes From mark at klomp.org Fri Aug 5 03:10:56 2011 From: mark at klomp.org (Mark Wielaard) Date: Fri, 05 Aug 2011 12:10:56 +0200 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <4E3BBC9D.8070304@zafena.se> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> <4E3BBC9D.8070304@zafena.se> Message-ID: <1312539056.2820.16.camel@springer.wildebeest.org> On Fri, 2011-08-05 at 11:49 +0200, Xerxes R?nby wrote: > On 2011-08-05 11:06, Mark Wielaard wrote: > > BTW both ARM (v5tel and v7l) icedtea-web builds have some test failures > > (those orange blobs - click on logs to see which exactly), they might be > > ARM specific, but maybe someone could take a look if they somehow are > > general failures that just happen to trigger on ARM. > > The x86_64 builder happens to not run all tests because "junit" are not installed. > as can be detected in the x86_64 configure log: > checking for junit jar... no > The missing junit makes the x86_builder only test the first 193 jrunscript icedtea-web > tests, the remaining 48 junit tests then unfortunally gets skipped. > > The two ARM builders do have junit installed: > first all the 193 jrunscripts icedtea-web test pass on the ARM builders and then > 44 junit tests pass > the 4 failing junit tests are: > FAILED: testCommentInAttributes(net.sourceforge.jnlp.ParserCornerCases) expected:<[]> but was:<[1.0+]> > FAILED: testMalformedArguments(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML > document syntax. > FAILED: testTagNotClosed(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML document syntax. > FAILED: testUnquotedAttributes(net.sourceforge.jnlp.ParserMalformedXml) Invalid XML > document syntax. > > Mark can you install junit on the x86_64 builder? Doh, I hadn't noticed that. I have installed junit 3.8.2-4 on it now. Lets see what the next build says. BTW. Do we really want to use junit? I always thought that was somewhat problematic because it has an odd (GPL-incompatible) license (the CPL). Which seems to prevent redistribution of the larger junit (CPL) + tests (GPL) because of the license conflict. Or does the special GPL-exception kick in here? Cheers, Mark From omajid at redhat.com Fri Aug 5 03:51:55 2011 From: omajid at redhat.com (Omair Majid) Date: Fri, 05 Aug 2011 06:51:55 -0400 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <1312539056.2820.16.camel@springer.wildebeest.org> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> <4E3BBC9D.8070304@zafena.se> <1312539056.2820.16.camel@springer.wildebeest.org> Message-ID: <4E3BCB4B.7030600@redhat.com> On 08/05/2011 06:10 AM, Mark Wielaard wrote: > > Doh, I hadn't noticed that. I have installed junit 3.8.2-4 on it now. > Lets see what the next build says. > Do you think it might be worth it to have ./configure fail if junit is not found? Also, I don't think junit 3 will suffice, icedtea-web uses classes from the org.junit package. Cheers, Omair From mark at klomp.org Fri Aug 5 04:25:33 2011 From: mark at klomp.org (Mark Wielaard) Date: Fri, 05 Aug 2011 13:25:33 +0200 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <4E3BCB4B.7030600@redhat.com> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> <4E3BBC9D.8070304@zafena.se> <1312539056.2820.16.camel@springer.wildebeest.org> <4E3BCB4B.7030600@redhat.com> Message-ID: <1312543533.2820.21.camel@springer.wildebeest.org> On Fri, 2011-08-05 at 06:51 -0400, Omair Majid wrote: > On 08/05/2011 06:10 AM, Mark Wielaard wrote: > > > > Doh, I hadn't noticed that. I have installed junit 3.8.2-4 on it now. > > Lets see what the next build says. > > > Do you think it might be worth it to have ./configure fail if junit is > not found? No, that would be annoying for someone not interested in the tests (yeah, everybody should always run all tests, but...) > Also, I don't think junit 3 will suffice, icedtea-web uses > classes from the org.junit package. Aha, I see there is also a different package junit4 (how confusing, are they binary incompatible?). Installed junit4_4.8.2-2 too now on the x86_64 build slave (which is running Debian 6.0.2 aka Squeeze BTW). Cheers, Mark From ptisnovs at icedtea.classpath.org Fri Aug 5 05:34:59 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 05 Aug 2011 12:34:59 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/framework/CubicCurvePointSet.java: Message-ID: changeset 504ee1c39140 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=504ee1c39140 author: Pavel Tisnovsky date: Fri Aug 05 14:36:35 2011 +0200 * src/org/gfxtest/framework/CubicCurvePointSet.java: Added new methods for fetching points arrays. * src/org/gfxtest/framework/GfxTest.java: New method for drawing cross at end points and control points. * src/org/gfxtest/testsuites/NormalCubicCurves.java: Added new functionality - drawing crosses at control points. * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: Added new functionality - drawing crosses at control points. * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: Added new functionality - drawing crosses at control points. Added new test cases. diffstat: ChangeLog | 13 + src/org/gfxtest/framework/CubicCurvePointSet.java | 28 +- src/org/gfxtest/framework/GfxTest.java | 30 +- src/org/gfxtest/testsuites/NormalCubicCurves.java | 53 +- src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 115 ++++- src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java | 289 +++++++--- 6 files changed, 421 insertions(+), 107 deletions(-) diffs (truncated from 817 to 500 lines): diff -r 6fbdab4d7a3c -r 504ee1c39140 ChangeLog --- a/ChangeLog Thu Aug 04 15:43:15 2011 +0200 +++ b/ChangeLog Fri Aug 05 14:36:35 2011 +0200 @@ -1,3 +1,16 @@ +2011-08-05 Pavel Tisnovsky + * src/org/gfxtest/framework/CubicCurvePointSet.java: + Added new methods for fetching points arrays. + * src/org/gfxtest/framework/GfxTest.java: + New method for drawing cross at end points and control points. + * src/org/gfxtest/testsuites/NormalCubicCurves.java: + Added new functionality - drawing crosses at control points. + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: + Added new functionality - drawing crosses at control points. + * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: + Added new functionality - drawing crosses at control points. + Added new test cases. + 2011-08-04 Pavel Tisnovsky * src/org/gfxtest/framework/CubicCurvePointSet.java: added * src/org/gfxtest/testsuites/NormalCubicCurves.java: diff -r 6fbdab4d7a3c -r 504ee1c39140 src/org/gfxtest/framework/CubicCurvePointSet.java --- a/src/org/gfxtest/framework/CubicCurvePointSet.java Thu Aug 04 15:43:15 2011 +0200 +++ b/src/org/gfxtest/framework/CubicCurvePointSet.java Fri Aug 05 14:36:35 2011 +0200 @@ -365,7 +365,7 @@ * index of the control point in range 1..4 * @return x-coordinate of the n-th control point. */ - public double getNthX(int index) + public int getNthX(int index) { // check index range if (indexOutOfBounds(index)) @@ -383,7 +383,7 @@ * index of the control point in range 1..4 * @return y-coordinate of the n-th control point. */ - public double getNthY(int index) + public int getNthY(int index) { // check index range if (indexOutOfBounds(index)) @@ -393,6 +393,30 @@ // return y-coordinate return this.y[index - 1]; } + + /** + * Return an array containing x coordinates of all four cubic curve control + * points. + * + * @return array containing x coordinates of all four cubic curve control + * points. + */ + public int[] getXPointArray() + { + return this.x; + } + + /** + * Return an array containing y coordinates of all four cubic curve control + * points. + * + * @return array containing y coordinates of all four cubic curve control + * points. + */ + public int[] getYPointArray() + { + return this.y; + } /** * Check if control point index is inside given range 1..4. diff -r 6fbdab4d7a3c -r 504ee1c39140 src/org/gfxtest/framework/GfxTest.java --- a/src/org/gfxtest/framework/GfxTest.java Thu Aug 04 15:43:15 2011 +0200 +++ b/src/org/gfxtest/framework/GfxTest.java Fri Aug 05 14:36:35 2011 +0200 @@ -505,11 +505,33 @@ } /** + * Draw cross into graphics canvas, to mark shape's end points, curves's + * control points etc. Size of cross is stored in constant CROSS_SIZE. * - * @param graphics graphics context for the image created by test case - * @param x x-coordinate of the cross center - * @param y y-coordinate of the cross center - * @param size size of cross (measured in pixels) + * @param graphics + * graphics context for the image created by test case + * @param x + * x-coordinate of the cross center + * @param y + * y-coordinate of the cross center + */ + protected void drawCross(Graphics2D graphics, int x, int y) + { + drawCross(graphics, x, y, CROSS_SIZE); + } + + /** + * Draw cross into graphics canvas, to mark shape's end points, curves's + * control points etc. + * + * @param graphics + * graphics context for the image created by test case + * @param x + * x-coordinate of the cross center + * @param y + * y-coordinate of the cross center + * @param size + * size of cross (measured in pixels) */ protected void drawCross(Graphics2D graphics, int x, int y, int size) { diff -r 6fbdab4d7a3c -r 504ee1c39140 src/org/gfxtest/testsuites/NormalCubicCurves.java --- a/src/org/gfxtest/testsuites/NormalCubicCurves.java Thu Aug 04 15:43:15 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalCubicCurves.java Fri Aug 05 14:36:35 2011 +0200 @@ -83,7 +83,31 @@ * Step between curves drawn by different colors onto the same image. */ private static final int OFFSET_STEP = 20; - + + /** + * Draw crosses at the both end points and both control points of cubic + * curve. + * + * @param graphics + * graphics canvas + * @param x + * array containing x coordinates of all four control points of + * cubic curve + * @param y + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + */ + private void drawCrossesAtControlPoints(Graphics2D graphics, int[] x, int[] y, int[] pointIndexes) + { + for (int i = 0; i < 4; i++) + { + this.drawCross(graphics, x[pointIndexes[i]-1], y[pointIndexes[i]-1]); + } + } + /** * Draw cubic curve onto canvas specified by Graphics2D class. * @@ -105,12 +129,15 @@ // construct point set which consists of all four curve control points CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + // construct CubicCurve2D.Float with set coordinates - cubicCurve.setCurve( - pointSet.getNthX(pointIndexes[0]), pointSet.getNthY(pointIndexes[0]), - pointSet.getNthX(pointIndexes[1]), pointSet.getNthY(pointIndexes[1]), - pointSet.getNthX(pointIndexes[2]), pointSet.getNthY(pointIndexes[2]), - pointSet.getNthX(pointIndexes[3]), pointSet.getNthY(pointIndexes[3])); + cubicCurve.setCurve(x[pointIndexes[0]-1], y[pointIndexes[0]-1], + x[pointIndexes[1]-1], y[pointIndexes[1]-1], + x[pointIndexes[2]-1], y[pointIndexes[2]-1], + x[pointIndexes[3]-1], y[pointIndexes[3]-1]); // set the specified color graphics.setColor(color == null ? Color.BLACK : color); @@ -118,6 +145,10 @@ // draw CubicCurve2D graphics.draw(cubicCurve); + // Draw crosses at the both end points and both control points of cubic + // curve. + drawCrossesAtControlPoints(graphics, x, y, pointIndexes); + // test return value return TestResult.PASSED; } @@ -208,12 +239,12 @@ // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + // construct CubicCurve2D.Float with set coordinates - cubicCurve.setCurve( - pointSet.getX1(), pointSet.getY1() + offset, - pointSet.getX2(), pointSet.getY2() + offset, - pointSet.getX3(), pointSet.getY3() + offset, - pointSet.getX4(), pointSet.getY4() + offset); + cubicCurve.setCurve(x[0], y[0] + offset, x[1], y[1] + offset, x[2], y[2] + offset, x[3], y[3] + offset); // set the specified color graphics.setColor(color); diff -r 6fbdab4d7a3c -r 504ee1c39140 src/org/gfxtest/testsuites/NormalQuadraticCurves.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Thu Aug 04 15:43:15 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurves.java Fri Aug 05 14:36:35 2011 +0200 @@ -83,7 +83,32 @@ /** * Step between curves drawn by different colors onto the same image. */ - private static final int OFFSET_STEP = 10; + private static final int OFFSET_STEP = 20; + + /** + * Draw crosses at the both end points and control point of quadratic curve. + * + * @param graphics + * graphics canvas + * @param x1 + * first quadratic curve x coordinate + * @param y1 + * first quadratic curve y coordinate + * @param x2 + * second quadratic curve x coordinate + * @param y2 + * second quadratic curve y coordinate + * @param x3 + * third quadratic curve x coordinate + * @param y3 + * third quadratic curve x coordinate + */ + private void drawCrossesAtControlPoints(Graphics2D graphics, int x1, int y1, int x2, int y2, int x3, int y3) + { + this.drawCross(graphics, x1, y1); + this.drawCross(graphics, x2, y2); + this.drawCross(graphics, x3, y3); + } /** * Draw quadratic curve onto canvas specified by Graphics2D class. @@ -104,8 +129,16 @@ int width = image.getWidth(); int height = image.getHeight(); + // get curve coordinates + int x1 = computeX1(width); + int y1 = computeY1(); + int x2 = computeX2(width); + int y2 = computeY2(height); + int x3 = computeX3(width); + int y3 = computeY3(); + // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(computeX1(width), computeY1(), computeX2(width), computeY2(height), computeX3(width), computeY3()); + quadCurve.setCurve(x1, y1, x2, y2, x3, y3); // set the specified color graphics.setColor(color == null ? Color.BLACK : color); @@ -113,6 +146,9 @@ // draw QuadCurve2D graphics.draw(quadCurve); + // draw crosses at all control points + drawCrossesAtControlPoints(graphics, x1, y1, x2, y2, x3, y3); + // test return value return TestResult.PASSED; } @@ -534,12 +570,23 @@ // create new QuadCurve2D.Float QuadCurve2D quadCurve = new QuadCurve2D.Float(); + // get curve coordinates + int x1 = computeX1(width); + int y1 = centerY; + int x2 = x1; + int y2 = y1; + int x3 = computeX3(width); + int y3 = centerY; + // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(computeX1(width), centerY, computeX1(width), centerY, computeX3(width), centerY); + quadCurve.setCurve(x1, y1, x2, y2, x3, y3); // draw QuadCurve2D graphics.draw(quadCurve); + // draw crosses at all control points + drawCrossesAtControlPoints(graphics, x1, y1, x2, y2, x3, y3); + // test return value return TestResult.PASSED; } @@ -569,12 +616,23 @@ // create new QuadCurve2D.Float QuadCurve2D quadCurve = new QuadCurve2D.Float(); + // get curve coordinates + int x1 = computeX1(width); + int y1 = centerY; + int x2 = computeX3(width); + int y2 = y1; + int x3 = x2; + int y3 = y1; + // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(computeX1(width), centerY, computeX3(width), centerY, computeX3(width), centerY); + quadCurve.setCurve(x1, y1, x2, y2, x3, y3); // draw QuadCurve2D graphics.draw(quadCurve); + // draw crosses at all control points + drawCrossesAtControlPoints(graphics, x1, y1, x2, y2, x3, y3); + // test return value return TestResult.PASSED; } @@ -603,12 +661,59 @@ // create new QuadCurve2D.Float QuadCurve2D quadCurve = new QuadCurve2D.Float(); + // get curve coordinates + int x1 = computeX1(width); + int y1 = centerY; + int x2 = computeX3(width); + int y2 = y1; + int x3 = x1; + int y3 = y1; + // construct QuadCurve2D.Float with set coordinates - quadCurve.setCurve(computeX1(width), centerY, computeX3(width), centerY, computeX1(width), centerY); + quadCurve.setCurve(x1, y1, x2, y2, x3, y3); // draw QuadCurve2D graphics.draw(quadCurve); + // draw crosses at all control points + drawCrossesAtControlPoints(graphics, x1, y1, x2, y2, x3, y3); + + // test return value + return TestResult.PASSED; + } + + /** + * Test special test case - quadratic curve with all identical points. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testIdenticalPoints123(TestImage image, Graphics2D graphics) + { + int centerX = image.getCenterX(); + int centerY = image.getCenterY(); + + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + + // set curve color + graphics.setColor(Color.BLACK); + + // create new QuadCurve2D.Float + QuadCurve2D quadCurve = new QuadCurve2D.Float(); + + // construct QuadCurve2D.Float with set coordinates + quadCurve.setCurve(centerX, centerY, centerX, centerY, centerX, centerY); + + // draw QuadCurve2D + graphics.draw(quadCurve); + + // draw crosses at all control points + drawCrossesAtControlPoints(graphics, centerX, centerY, centerX, centerY, centerX, centerY); + // test return value return TestResult.PASSED; } diff -r 6fbdab4d7a3c -r 504ee1c39140 src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java --- a/src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java Thu Aug 04 15:43:15 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java Fri Aug 05 14:36:35 2011 +0200 @@ -64,10 +64,72 @@ public class NormalQuadraticCurvesAsPaths extends GfxTest { /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + + /** * Default Y offset of curve end points. */ - private static final int DEFAULT_Y_OFFSET = 20; - + private static final int DEFAULT_Y_OFFSET = 40; + + /** + * Step between curves drawn by different colors onto the same image. + */ + private static final int OFFSET_STEP = 20; + + /** + * Draw crosses at the both end points and control point of quadratic curve. + * + * @param graphics + * graphics canvas + * @param x1 + * first quadratic curve x coordinate + * @param y1 + * first quadratic curve y coordinate + * @param x2 + * second quadratic curve x coordinate + * @param y2 + * second quadratic curve y coordinate + * @param x3 + * third quadratic curve x coordinate + * @param y3 + * third quadratic curve x coordinate + */ + private void drawCrossesAtControlPoints(Graphics2D graphics, int x1, int y1, int x2, int y2, int x3, int y3) + { + this.drawCross(graphics, x1, y1); + this.drawCross(graphics, x2, y2); + this.drawCross(graphics, x3, y3); + } + + /** + * Draw crosses at the both end points and control point of quadratic curve. + * + * @param graphics + * graphics canvas + * @param width + * test image width + * @param height + * test image height + */ + private void drawCrossesAtControlPoints(Graphics2D graphics, int width, int height) + { + // get curve coordinates + int x1 = computeX1(width); + int y1 = computeY1(); + int x2 = computeX2(width); + int y2 = computeY2(height); + int x3 = computeX3(width); + int y3 = computeY3(); + drawCrossesAtControlPoints(graphics, x1, y1, x2, y2, x3, y3); + } + /** * Draw quadratic curve contained in the path onto canvas specified by * Graphics2D class. @@ -92,6 +154,9 @@ // draw QuadCurve2D graphics.draw(path); + // draw crosses at control points + drawCrossesAtControlPoints(graphics, width, height); + // test return value return TestResult.PASSED; } @@ -114,7 +179,7 @@ { return drawPath(graphics, w, h, path, Color.BLACK); } - + /** * Create new path using Path2D.Float() which contains just one quadratic * curve. @@ -132,7 +197,7 @@ path.quadTo(computeX2(width), computeY2(height), computeX3(width), computeY3()); return path; } - + /** * Create new path using Path2D.Double() which contains just one quadratic * curve. @@ -150,7 +215,29 @@ path.quadTo(computeX2(width), computeY2(height), computeX3(width), computeY3()); return path; } - + + /** + * Create quadratic cube and draw it. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult createAndDrawPath(TestImage image, Graphics2D graphics) + { + // calculate image dimensions + int width = image.getWidth(); From xerxes at zafena.se Fri Aug 5 06:20:41 2011 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Fri, 05 Aug 2011 15:20:41 +0200 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <1312543533.2820.21.camel@springer.wildebeest.org> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> <4E3BBC9D.8070304@zafena.se> <1312539056.2820.16.camel@springer.wildebeest.org> <4E3BCB4B.7030600@redhat.com> <1312543533.2820.21.camel@springer.wildebeest.org> Message-ID: <4E3BEE29.8080403@zafena.se> On 2011-08-05 13:25, Mark Wielaard wrote: > On Fri, 2011-08-05 at 06:51 -0400, Omair Majid wrote: >> On 08/05/2011 06:10 AM, Mark Wielaard wrote: >>> >>> Doh, I hadn't noticed that. I have installed junit 3.8.2-4 on it now. >>> Lets see what the next build says. >>> >> Do you think it might be worth it to have ./configure fail if junit is >> not found? > > No, that would be annoying for someone not interested in the tests > (yeah, everybody should always run all tests, but...) > >> Also, I don't think junit 3 will suffice, icedtea-web uses >> classes from the org.junit package. > > Aha, I see there is also a different package junit4 (how confusing, are > they binary incompatible?). Installed junit4_4.8.2-2 too now on the > x86_64 build slave (which is running Debian 6.0.2 aka Squeeze BTW). > > Cheers, > > Mark Thanks, I rebuilt the last icedtea-web checking on the x86_64 builder Now it did find the junit4 jar but ... something are still FUBAR.. http://builder.classpath.org/icedtea/buildbot/builders/icedtea-web-squeeze-x86_64/builds/147 The armv5 builder are also running squeeze. I am puzzled why your x86_64 squeeze builder fail while the armv5 squeeze builder pass... I notice that your x86_64 builder are using a rather old bootstrap compiler that internally includes the old icedtea-np plugin code: java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8.7) (6b18-1.8.7-2~squeeze1) OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) This might be the issue. I have actually manually replaced the bootstrap compiler on the armv5 builder to something more recent. java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.1) (6b22-1.10.1-0ubuntu1) JamVM (build 1.6.0-devel+ladybug, inline-threaded interpreter with stack-caching) I have simply rebuilt a somewhat more recent icedtea src-deb from the ubuntu archive to test using jamvm's self-host capabilities on the armv5 builder. I think that my change switching the bootstrap compiler from icedtea6 1.8 to icedtea6 1.10 on the armv5 builder might be the root cause why your x86_64 builder fail and why my armv5 builder pass. see: http://builder.classpath.org/icedtea/buildbot/builders/icedtea-web-squeeze-x86_64/builds/147/steps/jtregcheck/logs/stdio 30 of the new junit tests failed, one did almost succeed FAILED: testTemplateCDATA(net.sourceforge.jnlp.JNLPMatcherTest) tried to access class net.sourceforge.jnlp.Node from class net.sourceforge.jnlp.JNLPMatcher FAILED: testTemplateDuplicate(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateWildCharsRandom(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateDifferentOrder(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateWildCharsAsAllValues(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateComments(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateDifferentValues(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateExtraChild(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateFewerChild(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testTemplateDifferentFile(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationCDATA(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationDuplicate(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationDifferentOrder(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationComments(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationWildCharsRandom(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationDifferentCodebaseValue(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationExtraChild(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationFewerChild(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: testApplicationDifferentFile(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node Passed: net.sourceforge.jnlp.JNLPMatcherTest.testNullJNLPFiles FAILED: testCallingMatchMultiple(net.sourceforge.jnlp.JNLPMatcherTest) net/sourceforge/jnlp/Node FAILED: net.sourceforge.jnlp.ParserBasic tried to access class net.sourceforge.jnlp.Parser from class net.sourceforge.jnlp.ParserBasic FAILED: testUnsupportedSpecNumber(net.sourceforge.jnlp.ParserCornerCases) tried to access class net.sourceforge.jnlp.Parser from class net.sourceforge.jnlp.ParserCornerCases FAILED: testApplicationAndComponent(net.sourceforge.jnlp.ParserCornerCases) net/sourceforge/jnlp/Parser FAILED: testCommentInElements(net.sourceforge.jnlp.ParserCornerCases) net/sourceforge/jnlp/Parser FAILED: testCommentInAttributes(net.sourceforge.jnlp.ParserCornerCases) net/sourceforge/jnlp/Parser FAILED: testNestedComments(net.sourceforge.jnlp.ParserCornerCases) net/sourceforge/jnlp/Parser FAILED: testMissingXmlDecleration(net.sourceforge.jnlp.ParserMalformedXml) tried to access class net.sourceforge.jnlp.Parser from class net.sourceforge.jnlp.ParserMalformedXml FAILED: testMalformedArguments(net.sourceforge.jnlp.ParserMalformedXml) net/sourceforge/jnlp/Parser FAILED: testTagNotClosed(net.sourceforge.jnlp.ParserMalformedXml) net/sourceforge/jnlp/Parser FAILED: testUnquotedAttributes(net.sourceforge.jnlp.ParserMalformedXml) net/sourceforge/jnlp/Parser Test results: passed: 0; failed: 30; ignored: 0 Cheers Xerxes From dbhole at redhat.com Fri Aug 5 07:57:04 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 5 Aug 2011 10:57:04 -0400 Subject: [RFC] changes to CommitPolicy In-Reply-To: <20110805015429.GA31431@rivendell.middle-earth.co.uk> References: <4E3A7210.6070106@redhat.com> <20110804125440.GO9903@redhat.com> <4E3A9F86.6000103@redhat.com> <20110804133945.GP9903@redhat.com> <20110805015429.GA31431@rivendell.middle-earth.co.uk> Message-ID: <20110805145703.GF31824@redhat.com> * Dr Andrew John Hughes [2011-08-04 21:54]: > On 09:39 Thu 04 Aug , Deepak Bhole wrote: > > > > > > > >I think it is slightly confusing. What are your thoughts about something > > > >like: > > > > > > > >"IcedTea-Web code changes/new feature should be accompanied with > > > >appropriate tests. If no tests are added/modified, changes should be > > > >accompanied with an explanation as to why." > > > > > > > > Above sounds good to me! > > > > "accompanied with" doesn't sound right to me. And aren't 'new feature' (sic) > code changes? > > How about: > > "IcedTea-Web code changes should be accompanied by appropriate regression tests. > If this is not the case, a suitable explanation should be supplied." > I never even thought of the with/by :) But any way, I am fine with the above too. Cheers, Deepak > > Cheers, > > Deepak > > > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Fri Aug 5 08:14:22 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 5 Aug 2011 11:14:22 -0400 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <20110805014716.GY31431@rivendell.middle-earth.co.uk> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> Message-ID: <20110805151422.GG31824@redhat.com> * Dr Andrew John Hughes [2011-08-04 21:47]: > On 15:30 Thu 04 Aug , Deepak Bhole wrote: > > Hi, > > > > Just tried to do a clean 1.0 build and noticed that it failed. Not sure how > > this slipped before :/ > > > > That's worrying. Do you not always do clean builds? IcedTea-Web is tiny, > so there's really no excuse. > I do for all non-trivial changes. That is why I said I am not sure how this was missed. I agree that it should've been spotted. I am surprised (as Mark already mentioned) that the build-bot didn't either... I didn't know it wasn't building all branches. I'll commit this to 1.0. Thanks, Deepak > > Attached patch fixes the debug() statement to match the signature > > present in 1.0. > > > > Okay for 1.0? > > > > Yes. > > > 2011-08-04 Deepak Bhole > > > > * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > > (readPair): Fix call to PluginDebug.debug() to match signature. > > > > Cheers, > > Deepak > > > diff -r 7ee2e487f4e2 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java > > --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Aug 03 14:11:11 2011 -0400 > > +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Thu Aug 04 15:28:04 2011 -0400 > > @@ -222,7 +222,7 @@ > > } > > } > > > > - PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); > > + PluginDebug.debug("readPair: '" + array[0] + "' - '" + array[1] + "' " + end); > > return end; > > } > > > > > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at icedtea.classpath.org Fri Aug 5 08:52:47 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Fri, 05 Aug 2011 15:52:47 +0000 Subject: /hg/release/icedtea-web-1.0: Fix build failure. Message-ID: changeset 09c15e374a75 in /hg/release/icedtea-web-1.0 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.0?cmd=changeset;node=09c15e374a75 author: Deepak Bhole date: Fri Aug 05 11:52:15 2011 -0400 Fix build failure. diffstat: ChangeLog | 5 +++++ plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (24 lines): diff -r 7ee2e487f4e2 -r 09c15e374a75 ChangeLog --- a/ChangeLog Wed Aug 03 14:11:11 2011 -0400 +++ b/ChangeLog Fri Aug 05 11:52:15 2011 -0400 @@ -1,3 +1,8 @@ +2011-08-05 Deepak Bhole + + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java + (readPair): Fix call to PluginDebug.debug() to match signature. + 2011-08-03 Deepak Bhole PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diff -r 7ee2e487f4e2 -r 09c15e374a75 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Aug 03 14:11:11 2011 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Fri Aug 05 11:52:15 2011 -0400 @@ -222,7 +222,7 @@ } } - PluginDebug.debug("readPair: '", array[0], "' - '", array[1], "' ", end); + PluginDebug.debug("readPair: '" + array[0] + "' - '" + array[1] + "' " + end); return end; } From dbhole at redhat.com Fri Aug 5 09:22:34 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 5 Aug 2011 12:22:34 -0400 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work In-Reply-To: <20110805020821.GD31431@rivendell.middle-earth.co.uk> References: <20110804205816.GE31824@redhat.com> <20110805020821.GD31431@rivendell.middle-earth.co.uk> Message-ID: <20110805162234.GH31824@redhat.com> * Dr Andrew John Hughes [2011-08-04 22:08]: > On 16:58 Thu 04 Aug , Deepak Bhole wrote: > > Hi, > > > > Attached path fixes rhbz 718693: > > https://bugzilla.redhat.com/show_bug.cgi?id=718693 > > > > The patch adds a class that certain apps may call because Netscape used > > to need it. IcedTea-Web does not need this, and therefore the methods > > are empty. > > > > Okay for HEAD and 1.1? > > > > ChangeLog: > > 2011-08-04 Deepak Bhole > > > > RH718693: MindTerm SSH Applet doesn't work > > * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. > > Stub class, not needed with IcedTea-Web. > > > > Cheers, > > Deepak > > Needs a license header. It would also probably benefit from some class-level > Javadoc saying what you said above. > Doh! Good catch re: license. New patch attached. Okay for commit to HEAD and 1.1? Cheers, Deepak -------------- next part -------------- diff -r defa7d0051bf NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Fri Aug 05 12:19:21 2011 -0400 @@ -14,6 +14,7 @@ - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + - RH718693: MindTerm SSH Applet doesn't work Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diff -r defa7d0051bf plugin/icedteanp/java/netscape/security/PrivilegeManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Fri Aug 05 12:19:21 2011 -0400 @@ -0,0 +1,75 @@ +/* + PrivilegeManager.java + Copyright (C) 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +/** + * + * This class does not implement any functionality and exists for backward + * compatibility only. + * + * At one point Netscape required applets to request specific permissions to + * do things. This is not longer the case with IcedTea-Web (and other modern + * plug-ins). However because some old applets may still have code calling + * this class, an empty stub is needed to prevent a ClassNotFoundException. + * + */ + +package netscape.security; + +import sun.applet.PluginDebug; + +public class PrivilegeManager { + + /** + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void enablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.enablePrivilege stub called"); + } + + /** + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void disablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.disablePrivilege stub called"); + } +} From omajid at redhat.com Fri Aug 5 09:57:51 2011 From: omajid at redhat.com (Omair Majid) Date: Fri, 05 Aug 2011 12:57:51 -0400 Subject: [icedtea-web] RFC: Minor buildfix for 1.0 In-Reply-To: <4E3BEE29.8080403@zafena.se> References: <20110804193005.GD31824@redhat.com> <20110805014716.GY31431@rivendell.middle-earth.co.uk> <1312535204.2820.11.camel@springer.wildebeest.org> <4E3BBC9D.8070304@zafena.se> <1312539056.2820.16.camel@springer.wildebeest.org> <4E3BCB4B.7030600@redhat.com> <1312543533.2820.21.camel@springer.wildebeest.org> <4E3BEE29.8080403@zafena.se> Message-ID: <4E3C210F.1090806@redhat.com> On 08/05/2011 09:20 AM, Xerxes R?nby wrote: > I rebuilt the last icedtea-web checking on the x86_64 builder > Now it did find the junit4 jar but ... something are still FUBAR.. > http://builder.classpath.org/icedtea/buildbot/builders/icedtea-web-squeeze-x86_64/builds/147 > > The armv5 builder are also running squeeze. I am puzzled why your x86_64 > squeeze builder fail while the armv5 squeeze builder pass... > > I notice that your x86_64 builder are using a rather old bootstrap > compiler that internally includes the old icedtea-np plugin code: > java version "1.6.0_18" > OpenJDK Runtime Environment (IcedTea6 1.8.7) (6b18-1.8.7-2~squeeze1) > OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) > > This might be the issue. > I can confirm this. If I configure icedtea-web with icedtea6-1.8, I get the same failures. If I use an icedtea6-1.10 (or later I presume) build, things work fine. > FAILED: testTemplateCDATA(net.sourceforge.jnlp.JNLPMatcherTest) tried to > access class net.sourceforge.jnlp.Node from class > net.sourceforge.jnlp.JNLPMatcher An error like this normally indicates that package-private classes are loaded by different class loaders. When running a 'make check' the application classloader is used to load both netx.jar (or it's renamed version classes.jar) and the test code. If netx.jar is in the bootclasspath, however, then the JVM loads it from there and you get this problem because two classes in the same package are now being loaded by different classloaders. Cheers, Omair From ptisnovs at icedtea.classpath.org Mon Aug 8 04:39:07 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 08 Aug 2011 11:39:07 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/NormalQuadraticCurves... Message-ID: changeset 1ab36617f4cf in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=1ab36617f4cf author: Pavel Tisnovsky date: Mon Aug 08 13:40:47 2011 +0200 * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: Fixed minor issues in two tests. * src/org/gfxtest/testsuites/NormalCubisCurvesAsPaths.java: Created new test suite containing 12 gfx.tests. diffstat: ChangeLog | 6 + Makefile | 2 + src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java | 666 +++++++++++ src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java | 4 +- 4 files changed, 676 insertions(+), 2 deletions(-) diffs (truncated from 723 to 500 lines): diff -r 504ee1c39140 -r 1ab36617f4cf ChangeLog --- a/ChangeLog Fri Aug 05 14:36:35 2011 +0200 +++ b/ChangeLog Mon Aug 08 13:40:47 2011 +0200 @@ -1,3 +1,9 @@ +2011-08-08 Pavel Tisnovsky + * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: + Fixed minor issues in two tests. + * src/org/gfxtest/testsuites/NormalCubisCurvesAsPaths.java: + Created new test suite containing 12 gfx.tests. + 2011-08-05 Pavel Tisnovsky * src/org/gfxtest/framework/CubicCurvePointSet.java: Added new methods for fetching points arrays. diff -r 504ee1c39140 -r 1ab36617f4cf Makefile --- a/Makefile Fri Aug 05 14:36:35 2011 +0200 +++ b/Makefile Mon Aug 08 13:40:47 2011 +0200 @@ -108,6 +108,7 @@ $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurves.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalQuadraticCurvesAsPaths.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalCubicCurves.class \ + $(CLASSES)/$(TESTSUITE_DIR)/NormalCubicCurvesAsPaths.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledArcs.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledCircles.class \ $(CLASSES)/$(TESTSUITE_DIR)/FilledEllipses.class \ @@ -143,6 +144,7 @@ $(RESULTS)/NormalQuadraticCurves \ $(RESULTS)/NormalQuadraticCurvesAsPaths \ $(RESULTS)/NormalCubicCurves \ + $(RESULTS)/NormalCubicCurvesAsPaths \ $(RESULTS)/FilledArcs \ $(RESULTS)/FilledCircles \ $(RESULTS)/FilledEllipses \ diff -r 504ee1c39140 -r 1ab36617f4cf src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java Mon Aug 08 13:40:47 2011 +0200 @@ -0,0 +1,666 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Path2D; + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + + + +/** + * This test renders various cubic curves using identity transformation matrix. + * Quadratic curves are constructed using Path class. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at GraphicsPrimitive(GraphicsPrimitives.CUBIC_CURVE) + at RenderStyle(RenderStyles.NORMAL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class NormalCubicCurvesAsPaths extends GfxTest +{ + /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + + /** + * Default Y offset of curve end points. + */ + private static final int DEFAULT_Y_OFFSET = -20; + + /** + * Step between curves drawn by different colors onto the same image. + */ + private static final int OFFSET_STEP = 20; + + /** + * Draw crosses at the both end points and both control points of cubic + * curve. + * + * @param graphics + * graphics canvas + * @param xarray + * array containing x coordinates of all four control points of + * cubic curve + * @param yarray + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + */ + private void drawCrossesAtControlPoints(Graphics2D graphics, int[] xarray, int[] yarray, int[] pointIndexes) + { + for (int i = 0; i < 4; i++) + { + this.drawCross(graphics, xarray[pointIndexes[i]-1], yarray[pointIndexes[i]-1]); + } + } + + /** + * Draw cubic curve onto canvas specified by Graphics2D class. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics canvas + * @param path + * curve contained in the path to be drawn + * @param color + * curve color or null when Color.BLACK can be used. + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult drawPath(TestImage image, Graphics2D graphics, Path2D path, Color color, int[] pointIndexes) + { + // construct point set which consists of all four curve control points + CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + + // set curve color + graphics.setColor(color); + + // draw the cubic curve + graphics.draw(path); + + // Draw crosses at the both end points and both control points of cubic + // curve. + drawCrossesAtControlPoints(graphics, x, y, pointIndexes); + + // test return value + return TestResult.PASSED; + } + + /** + * Draw cubic curve onto canvas specified by Graphics2D class. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics canvas + * @param path + * curve contained in the path to be drawn + * @param color + * curve color or null when Color.BLACK can be used. + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult drawPath(TestImage image, Graphics2D graphics, Path2D path, Color color) + { + return drawPath(image, graphics, path, color, new int[] { 1, 2, 3, 4 }); + } + + /** + * Draw cubic curve onto canvas specified by Graphics2D class. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics canvas + * @param path + * curve contained in the path to be drawn + * @return test result status - PASSED, FAILED or ERROR + */ + private TestResult drawPath(TestImage image, Graphics2D graphics, Path2D path) + { + return drawPath(image, graphics, path, Color.BLACK); + } + + /** + * Create new path using Path2D.Float() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param xarray + * array containing x coordinates of all four control points of + * cubic curve + * @param yarray + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @param yoffset + * offset for all y-coordinates + * @return + */ + private Path2D createPathFloat(TestImage image, int[] xarray, int[] yarray, int[] pointIndexes, int yoffset) + { + // construct path containing cubic curve + Path2D path = new Path2D.Float(); + path.moveTo(xarray[pointIndexes[0]-1], yarray[pointIndexes[0]-1] + yoffset); + path.curveTo(xarray[pointIndexes[1]-1], yarray[pointIndexes[1]-1] + yoffset, + xarray[pointIndexes[2]-1], yarray[pointIndexes[2]-1] + yoffset, + xarray[pointIndexes[3]-1], yarray[pointIndexes[3]-1] + yoffset); + return path; + } + + /** + * Create new path using Path2D.Float() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param xarray + * array containing x coordinates of all four control points of + * cubic curve + * @param yarray + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @return + */ + private Path2D createPathFloat(TestImage image, int[] xarray, int[] yarray, int[] pointIndexes) + { + // construct path containing cubic curve + return createPathFloat(image, xarray, yarray, pointIndexes, 0); + } + + /** + * Create new path using Path2D.Float() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @return created path + */ + private Path2D createPathFloat(TestImage image, int[] pointIndexes) + { + // construct point set which consists of all four curve control points + CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + + // construct path containing cubic curve + return createPathFloat(image, x, y, pointIndexes); + } + + /** + * Create new path using Path2D.Float() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @return created path + */ + private Path2D createPathFloat(TestImage image) + { + // construct path containing cubic curve + return createPathFloat(image, new int[] {1,2,3,4}); + } + + /** + * Create new path using Path2D.Double() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param xarray + * array containing x coordinates of all four control points of + * cubic curve + * @param yarray + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @param yoffset + * offset for all y-coordinates + * @return + */ + private Path2D createPathDouble(TestImage image, int[] xarray, int[] yarray, int[] pointIndexes, int yoffset) + { + // construct path containing cubic curve + Path2D path = new Path2D.Double(); + path.moveTo(xarray[pointIndexes[0]-1], yarray[pointIndexes[0]-1] + yoffset); + path.curveTo(xarray[pointIndexes[1]-1], yarray[pointIndexes[1]-1] + yoffset, + xarray[pointIndexes[2]-1], yarray[pointIndexes[2]-1] + yoffset, + xarray[pointIndexes[3]-1], yarray[pointIndexes[3]-1] + yoffset); + return path; + } + + /** + * Create new path using Path2D.Double() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param xarray + * array containing x coordinates of all four control points of + * cubic curve + * @param yarray + * array containing y coordinates of all four control points of + * cubic curve + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @return + */ + private Path2D createPathDouble(TestImage image, int[] xarray, int[] yarray, int[] pointIndexes) + { + return createPathDouble(image, xarray, yarray, pointIndexes, 0); + } + + /** + * Create new path using Path2D.Double() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param pointIndexes + * indexes of control point to use to draw the curve (default + * value should be {1,2,3,4}) + * @return created path + */ + private Path2D createPathDouble(TestImage image, int[] pointIndexes) + { + // construct point set which consists of all four curve control points + CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + + // construct path containing cubic curve + return createPathDouble(image, x, y, pointIndexes); + } + + /** + * Create new path using Path2D.Double() which contains just one cubic + * curve. + * + * @param image + * image to which two dimensional shape is to be rendered + * @return created path + */ + private Path2D createPathDouble(TestImage image) + { + // construct path containing cubic curve + return createPathDouble(image, new int[] {1,2,3,4}); + } + + /** + * Test if cubic curve created by Path2D.Float() is rendered correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBasicCubicCurveFloat(TestImage image, Graphics2D graphics) + { + // create cubic curve and draw it + Path2D path = createPathFloat(image); + return drawPath(image, graphics, path); + } + + /** + * Test if cubic curve created by Path2D.Double() is rendered correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBasicCubicCurveDouble(TestImage image, Graphics2D graphics) + { + // create cubic curve and draw it + Path2D path = createPathDouble(image); + return drawPath(image, graphics, path); + } + + /** + * Test if cubic curve created by Path2D.Float() is rendered + * correctly. Curve is to be drawn with 10 pixels wide stroke and default + * caps. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStroke(TestImage image, Graphics2D graphics) + { + // set 30 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + + // create cubic curve and draw it + Path2D path = createPathFloat(image); + return drawPath(image, graphics, path); + } + + /** + * Test if cubic curve created by Path2D.Float() is rendered correctly. + * Curve is to be drawn with 10 pixels wide stroke and the curve caps is set + * to CAP_BUTT. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStrokeCapsButt(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + // create cubic curve and draw it + Path2D path = createPathFloat(image); + return drawPath(image, graphics, path); + } + + /** + * Test if cubic curve created by Path2D.Float() is rendered correctly. + * Curve is to be drawn with 10 pixels wide stroke and the curve caps is set + * to CAP_ROUND. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testThickStrokeCapsRound(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + + // create cubic curve and draw it + Path2D path = createPathFloat(image); + return drawPath(image, graphics, path); + } + + /** + * Test if cubic curve created by Path2D.Float() is rendered correctly. + * Curve is to be drawn with 10 pixels wide stroke and the curve caps is set + * to CAP_SQUARE. + * + * @param image From xranby at icedtea.classpath.org Mon Aug 8 05:02:02 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 08 Aug 2011 12:02:02 +0000 Subject: /hg/buildbot: karmic EOL: karmic_ia32 builder replaced by lucid_... Message-ID: changeset 857af5a797b9 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=857af5a797b9 author: Xerxes R?nby date: Mon Aug 08 14:01:40 2011 +0200 karmic EOL: karmic_ia32 builder replaced by lucid_ia32. diffstat: icedtea/master.cfg | 138 ++++++++++++++++++++++++++-------------------------- 1 files changed, 69 insertions(+), 69 deletions(-) diffs (259 lines): diff -r ebaaa32e45e2 -r 857af5a797b9 icedtea/master.cfg --- a/icedtea/master.cfg Tue Aug 02 21:50:37 2011 +0200 +++ b/icedtea/master.cfg Mon Aug 08 14:01:40 2011 +0200 @@ -31,7 +31,7 @@ BuildSlave("natty-armv7l", getpw("natty-armv7l"), max_builds=1), - BuildSlave("karmic-ia32", + BuildSlave("lucid-ia32", getpw("jaunty-ia32"), max_builds=3), BuildSlave("squeeze-armv5tel", @@ -67,10 +67,10 @@ "icedtea6-natty-armv7l-quick-cacao", "icedtea6-natty-armv7l-quick-jamvm", "icedtea6-natty-armv7l-quick-shark", - "icedtea6-karmic-ia32-quick-zero", - "icedtea6-karmic-ia32-quick-cacao", - "icedtea6-karmic-ia32-quick-jamvm", - "icedtea6-karmic-ia32-quick-shark", + "icedtea6-lucid-ia32-quick-zero", + "icedtea6-lucid-ia32-quick-cacao", + "icedtea6-lucid-ia32-quick-jamvm", + "icedtea6-lucid-ia32-quick-shark", "icedtea6-squeeze-armv5tel-quick", "icedtea6-squeeze-armv5tel-quick-cacao", "icedtea6-squeeze-armv5tel-quick-jamvm", @@ -97,7 +97,7 @@ treeStableTimer=60, builderNames=["testrepo-squeeze-x86_64", "testrepo-natty-armv7l", - "testrepo-karmic-ia32", + "testrepo-lucid-ia32", "testrepo-squeeze-armv5tel"])) # Full scheduler for icedtea6 or icedtea7 branches. @@ -224,9 +224,9 @@ 'slavenames': ["natty-armv7l"], 'builddir': "testrepo_natty_armv7l", 'factory': f2 } -testrepo_builder_karmic_ia32 = { 'name': "testrepo-karmic-ia32", - 'slavenames': ["karmic-ia32"], - 'builddir': "testrepo_karmic_ia32", +testrepo_builder_lucid_ia32 = { 'name': "testrepo-lucid-ia32", + 'slavenames': ["lucid-ia32"], + 'builddir': "testrepo_lucid_ia32", 'factory': f2 } testrepo_builder_squeeze_armv5tel = { 'name': "testrepo-squeeze-armv5tel", 'slavenames': ["squeeze-armv5tel"], @@ -470,103 +470,103 @@ description="check-langtools", workdir="build", timeout=2400)) -f3kz = factory.BuildFactory() -f3kz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3kz.addStep(ShellCommand(command=["./autogen.sh"], +f3lz = factory.BuildFactory() +f3lz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3lz.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3kz.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3lz.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3kz.addStep(Configure(command=["../src/configure", +f3lz.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-zero"], workdir="build")) -f3kz.addStep(Compile(workdir="build")) -f3kz.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3lz.addStep(Compile(workdir="build")) +f3lz.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3kz.addStep(JTRegCheck(command=["make", "check-langtools"], +f3lz.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) -f3ks = factory.BuildFactory() -f3ks.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3ks.addStep(ShellCommand(command=["./autogen.sh"], +f3ls = factory.BuildFactory() +f3ls.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3ls.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3ks.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3ls.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3ks.addStep(Configure(command=["../src/configure", +f3ls.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-shark"], workdir="build")) -f3ks.addStep(Compile(workdir="build")) -f3ks.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3ls.addStep(Compile(workdir="build")) +f3ls.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3ks.addStep(JTRegCheck(command=["make", "check-langtools"], +f3ls.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) -f3ks.addStep(JTRegCheck(command=["make", "check-jdk"], +f3ls.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", workdir="build", timeout=2400)) -f3kc = factory.BuildFactory() -f3kc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3kc.addStep(ShellCommand(command=["./autogen.sh"], +f3lc = factory.BuildFactory() +f3lc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3lc.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3kc.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3lc.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3kc.addStep(Configure(command=["../src/configure", +f3lc.addStep(Configure(command=["../src/configure", "--disable-bootstrap", "--with-parallel-jobs=5", "--disable-docs", "--with-hotspot-build", "--enable-cacao"], workdir="build")) -f3kc.addStep(Compile(workdir="build")) -f3kc.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3lc.addStep(Compile(workdir="build")) +f3lc.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3kc.addStep(JTRegCheck(command=["make", "check-langtools"], +f3lc.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) -f3kc.addStep(JTRegCheck(command=["make", "check-jdk"], +f3lc.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", workdir="build", timeout=2400)) -f3kj = factory.BuildFactory() -f3kj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) -f3kj.addStep(ShellCommand(command=["./autogen.sh"], +f3lj = factory.BuildFactory() +f3lj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) +f3lj.addStep(ShellCommand(command=["./autogen.sh"], workdir="src", description="autogen")) -f3kj.addStep(ShellCommand(command=["rm", "-rf", "build"], +f3lj.addStep(ShellCommand(command=["rm", "-rf", "build"], workdir=".", description="clean build dir")) -f3kj.addStep(Configure(command=["../src/configure", +f3lj.addStep(Configure(command=["../src/configure", "--enable-jamvm", "--disable-bootstrap", "--with-parallel-jobs=2", "--disable-docs"], workdir="build")) -f3kj.addStep(Compile(workdir="build")) -f3kj.addStep(JTRegCheck(command=["make", "check-hotspot"], +f3lj.addStep(Compile(workdir="build")) +f3lj.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) -f3kj.addStep(JTRegCheck(command=["make", "check-langtools"], +f3lj.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) -f3kj.addStep(JTRegCheck(command=["make", "check-jdk"], +f3lj.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", workdir="build", timeout=2400)) @@ -703,26 +703,26 @@ 'slavenames': ["natty-armv7l"], 'builddir': "icedtea6-natty-armv7l-quick-shark", 'factory': f3ans } -icedtea6_builder_quick_ia32_karmic_shark = { - 'name': "icedtea6-karmic-ia32-quick-shark", - 'slavenames': ["karmic-ia32"], - 'builddir': "icedtea6-karmic-ia32-quick-shark", - 'factory': f3ks } -icedtea6_builder_quick_ia32_karmic_cacao = { - 'name': "icedtea6-karmic-ia32-quick-cacao", - 'slavenames': ["karmic-ia32"], - 'builddir': "icedtea6-karmic-ia32-quick-cacao", - 'factory': f3kc } -icedtea6_builder_quick_ia32_karmic_jamvm = { - 'name': "icedtea6-karmic-ia32-quick-jamvm", - 'slavenames': ["karmic-ia32"], - 'builddir': "icedtea6-karmic-ia32-quick-jamvm", - 'factory': f3kj } -icedtea6_builder_quick_ia32_karmic_zero = { - 'name': "icedtea6-karmic-ia32-quick-zero", - 'slavenames': ["karmic-ia32"], - 'builddir': "icedtea6-karmic-ia32-quick-zero", - 'factory': f3kz } +icedtea6_builder_quick_ia32_lucid_shark = { + 'name': "icedtea6-lucid-ia32-quick-shark", + 'slavenames': ["lucid-ia32"], + 'builddir': "icedtea6-lucid-ia32-quick-shark", + 'factory': f3ls } +icedtea6_builder_quick_ia32_lucid_cacao = { + 'name': "icedtea6-lucid-ia32-quick-cacao", + 'slavenames': ["lucid-ia32"], + 'builddir': "icedtea6-lucid-ia32-quick-cacao", + 'factory': f3lc } +icedtea6_builder_quick_ia32_lucid_jamvm = { + 'name': "icedtea6-lucid-ia32-quick-jamvm", + 'slavenames': ["lucid-ia32"], + 'builddir': "icedtea6-lucid-ia32-quick-jamvm", + 'factory': f3lj } +icedtea6_builder_quick_ia32_lucid_zero = { + 'name': "icedtea6-lucid-ia32-quick-zero", + 'slavenames': ["lucid-ia32"], + 'builddir': "icedtea6-lucid-ia32-quick-zero", + 'factory': f3lz } icedtea6_builder_quick_armv5tel_squeeze = { 'name': "icedtea6-squeeze-armv5tel-quick", 'slavenames': ["squeeze-armv5tel"], @@ -804,10 +804,10 @@ icedtea6_builder_quick_arm_natty_cacao, icedtea6_builder_quick_arm_natty_jamvm, icedtea6_builder_quick_arm_natty_shark, - icedtea6_builder_quick_ia32_karmic_shark, - icedtea6_builder_quick_ia32_karmic_cacao, - icedtea6_builder_quick_ia32_karmic_jamvm, - icedtea6_builder_quick_ia32_karmic_zero, + icedtea6_builder_quick_ia32_lucid_shark, + icedtea6_builder_quick_ia32_lucid_cacao, + icedtea6_builder_quick_ia32_lucid_jamvm, + icedtea6_builder_quick_ia32_lucid_zero, icedtea6_builder_quick_armv5tel_squeeze, icedtea6_builder_quick_armv5tel_squeeze_cacao, icedtea6_builder_quick_armv5tel_squeeze_jamvm, @@ -822,7 +822,7 @@ icedtea_web_builder_natty_armv7l, testrepo_builder_x86_64, testrepo_builder_natty_armv7l, - testrepo_builder_karmic_ia32, + testrepo_builder_lucid_ia32, testrepo_builder_squeeze_armv5tel ] ####### STATUS TARGETS From bugzilla-daemon at icedtea.classpath.org Mon Aug 8 10:22:31 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 08 Aug 2011 17:22:31 +0000 Subject: [Bug 765] Lazy jars do not have a signature check In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 --- Comment #1 from Saad Mohammad 2011-08-08 17:22:30 --- (In reply to comment #0) > In the launching JNLP file, IcedTea-Web treats all resources with > download="lazy" (within the jar element) as unsigned jars, even if a valid > signature exist. If the signature is invalid, it still runs the application but > as an unsigned application. > I recently discovered, this only occurs if there are no eager jars. This also happens if the main jar is a lazy jar and there are no other resources. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From smohammad at redhat.com Mon Aug 8 12:03:52 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 08 Aug 2011 15:03:52 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 Message-ID: <4E403318.4010701@redhat.com> This is the patch for PR765: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 This bug is reproduced by having the jar (with the main class) marked as lazy with additional resources (if any) that are also marked as lazy. ChangeLog: 2011-08-08 Saad Mohammad * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Always initializes the jar file with the main class at start (even if the jar file is marked as lazy) -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 765.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110808/483f9120/765.patch From smohamma at redhat.com Mon Aug 8 12:09:15 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Mon, 8 Aug 2011 15:09:15 -0400 (EDT) Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E403318.4010701@redhat.com> Message-ID: <245532348.891282.1312830555168.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Not sure why changelog has incorrect indentation. ChangeLog: 2011-08-08 Saad Mohammad * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Always initializes the jar file with the main class at start (even if the jar file is marked as lazy) ----- Original Message ----- From: "Saad Mohammad" To: "IcedTea Distro List" Sent: Monday, August 8, 2011 3:03:52 PM Subject: [RFC][IcedTea-WEB]: Fix for PR765 This is the patch for PR765: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 This bug is reproduced by having the jar (with the main class) marked as lazy with additional resources (if any) that are also marked as lazy. ChangeLog: 2011-08-08 Saad Mohammad * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Always initializes the jar file with the main class at start (even if the jar file is marked as lazy) -- Cheers, Saad Mohammad From dbhole at redhat.com Mon Aug 8 12:13:48 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 8 Aug 2011 15:13:48 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E403318.4010701@redhat.com> References: <4E403318.4010701@redhat.com> Message-ID: <20110808191348.GB2420@redhat.com> * Saad Mohammad [2011-08-08 15:04]: > This is the patch for PR765: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 > > This bug is reproduced by having the jar (with the main class) > marked as lazy with additional resources (if any) that are also > marked as lazy. > > ChangeLog: > > 2011-08-08 Saad Mohammad > > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > (initializeResources): Always initializes the jar file with > the main class > at start (even if the jar file is marked as lazy) > Hi Saad, ChangeLog indentation is not wrong (not the overflow, which you addressed in another email), but the spacing. Additional lines should only be preceded with a tab, no spaces. Also, this should have a NEWS entry for the bugfix. Code changes look fine to me. Please repost with fix for ChangeLog and with a NEWS item. Cheers, Deepak > -- > Cheers, > Saad Mohammad > > diff -r defa7d0051bf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Aug 08 14:27:47 2011 -0400 > @@ -415,11 +415,14 @@ > */ > List initialJars = new ArrayList(); > > + //Stores the URL of the jar file that has the main class > + URL mainJarURL= file.getResources().getMainJAR().getLocation(); > + > for (int i = 0; i < jars.length; i++) { > > available.add(jars[i]); > > - if (jars[i].isEager()) > + if (jars[i].isEager() || jars[i].getLocation().equals(mainJarURL)) > initialJars.add(jars[i]); // regardless of part > > tracker.addResource(jars[i].getLocation(), From mjw at icedtea.classpath.org Mon Aug 8 12:38:39 2011 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Mon, 08 Aug 2011 19:38:39 +0000 Subject: /hg/buildbot: Allow people to force a build. Message-ID: changeset ce2d40e0fa04 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=ce2d40e0fa04 author: Mark Wielaard date: Mon Aug 08 21:35:00 2011 +0200 Allow people to force a build. diffstat: icedtea/master.cfg | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diffs (19 lines): diff -r 857af5a797b9 -r ce2d40e0fa04 icedtea/master.cfg --- a/icedtea/master.cfg Mon Aug 08 14:01:40 2011 +0200 +++ b/icedtea/master.cfg Mon Aug 08 21:35:00 2011 +0200 @@ -848,10 +848,14 @@ cc_re_tuple = (r'(PR [a-z]+/|PR ?|#)(\d+)', r'http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=\2') +# Allow people to force a build. +from buildbot.status.web.authz import Authz +authz = Authz(forceBuild=True) + # Note http_port is local only, will be proxied by httpd running on builder. from buildbot.status import html c['status'].append(html.WebStatus(http_port=8010, - allowForce=False, + authz=authz, order_console_by_time=True, revlink=create_revlink, repositories=create_repolink, From smohammad at redhat.com Mon Aug 8 13:39:07 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 08 Aug 2011 16:39:07 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <20110808191348.GB2420@redhat.com> References: <4E403318.4010701@redhat.com> <20110808191348.GB2420@redhat.com> Message-ID: <4E40496B.7010400@redhat.com> * Please ignore this patch. * In this patch, I have used getMainJAR() to find the main jar file, but I have realized it isn't the best way to determine if the jar contains the main class. It has a dependency on the attribute, main="true", which is not ideal in this situation. If there are no jars which are marked as main="true", it will just return the first jar element. However, I do think this patch can be a lead to an alternative solution which works similar. If all jar files are marked as 'lazy', it should initialize at least the very first jar file; therefore it would not stop the launch of the application in case the main class is located within a 'lazy' jar. I will get started on this. Please feel free to provide any feedback. -- Cheers, Saad Mohammad From xranby at icedtea.classpath.org Tue Aug 9 02:23:19 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 09 Aug 2011 09:23:19 +0000 Subject: /hg/icedtea6: JamVM: Updated to 2011-08-08 revision. Message-ID: changeset 9193b3c49dd0 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9193b3c49dd0 author: Xerxes R?nby date: Tue Aug 09 11:21:50 2011 +0200 JamVM: Updated to 2011-08-08 revision. 2011-08-09 Xerxes R?nby JamVM - Remove empty clobber. - Use dots instead of slashes in classname for exception. - Correct thrown exception by bootstrap loader. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 4 ++-- NEWS | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diffs (45 lines): diff -r 013f83c2fa16 -r 9193b3c49dd0 ChangeLog --- a/ChangeLog Tue Aug 02 15:02:27 2011 +0200 +++ b/ChangeLog Tue Aug 09 11:21:50 2011 +0200 @@ -1,3 +1,14 @@ +2011-08-09 Xerxes R??nby + + JamVM + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-02 Xerxes R??nby JamVM diff -r 013f83c2fa16 -r 9193b3c49dd0 Makefile.am --- a/Makefile.am Tue Aug 02 15:02:27 2011 +0200 +++ b/Makefile.am Tue Aug 09 11:21:50 2011 +0200 @@ -11,8 +11,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da -JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 +JAMVM_VERSION = 0501bb8bea978c2d37e7b5caaa0969c92ae148b4 +JAMVM_SHA256SUM = 5a21290813affb5878d27995e487c60e7d0b85793987bb814baf162f179acedb 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 diff -r 013f83c2fa16 -r 9193b3c49dd0 NEWS --- a/NEWS Tue Aug 02 15:02:27 2011 +0200 +++ b/NEWS Tue Aug 09 11:21:50 2011 +0200 @@ -368,6 +368,9 @@ * CACAO - Threadlist & threadobject improvements. * JamVM + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. From xranby at icedtea.classpath.org Tue Aug 9 02:34:37 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 09 Aug 2011 09:34:37 +0000 Subject: /hg/icedtea6: CACAO: Updated to 2011-08-08 revision. Message-ID: changeset 305c98561e8d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=305c98561e8d author: Xerxes Ranby date: Tue Aug 09 11:34:28 2011 +0200 CACAO: Updated to 2011-08-08 revision. 2011-08-09 Xerxes R?nby CACAO - CA159: Exception handler blocks / register mixup. - Set thread to RUNNABLE during Thread.start. - Removed state-setting function call that would be done by the thread itself, creating a nasty race. * NEWS: Updated. * Makefile.am (CACAO_VERSION): Updated CACAO to 2011-08-08 revision. (CACAO_SHA256SUM): Updated. diffstat: ChangeLog | 12 ++++++++++++ Makefile.am | 4 ++-- NEWS | 4 ++++ 3 files changed, 18 insertions(+), 2 deletions(-) diffs (47 lines): diff -r 9193b3c49dd0 -r 305c98561e8d ChangeLog --- a/ChangeLog Tue Aug 09 11:21:50 2011 +0200 +++ b/ChangeLog Tue Aug 09 11:34:28 2011 +0200 @@ -1,3 +1,15 @@ +2011-08-09 Xerxes R??nby + + CACAO + - CA159: Exception handler blocks / register mixup. + - Set thread to RUNNABLE during Thread.start. + - Removed state-setting function call that would be done by the thread + itself, creating a nasty race. + * NEWS: Updated. + * Makefile.am + (CACAO_VERSION): Updated CACAO to 2011-08-08 revision. + (CACAO_SHA256SUM): Updated. + 2011-08-09 Xerxes R??nby JamVM diff -r 9193b3c49dd0 -r 305c98561e8d Makefile.am --- a/Makefile.am Tue Aug 09 11:21:50 2011 +0200 +++ b/Makefile.am Tue Aug 09 11:34:28 2011 +0200 @@ -5,8 +5,8 @@ OPENJDK_VERSION = b23 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ -CACAO_VERSION = d6264eb66506 -CACAO_SHA256SUM = 94ea7899e806ccbc33a732b5113a8f969d8b1f4ce7ffd27cf04577054f65f63c +CACAO_VERSION = 12d5cd5d2dfa +CACAO_SHA256SUM = f4a93710709f43e203d79c1c8bb73f14ebcca41be75887fb92308b86747312c5 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 diff -r 9193b3c49dd0 -r 305c98561e8d NEWS --- a/NEWS Tue Aug 09 11:21:50 2011 +0200 +++ b/NEWS Tue Aug 09 11:34:28 2011 +0200 @@ -366,6 +366,10 @@ - S6934356: Vector.writeObject() serialization may deadlock * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO + - CA159: Exception handler blocks / register mixup. + - Set thread to RUNNABLE during Thread.start. + - Removed state-setting function call that would be done by the thread itself, + creating a nasty race. - Threadlist & threadobject improvements. * JamVM - Remove empty clobber. From bugzilla-daemon at icedtea.classpath.org Tue Aug 9 03:04:23 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 09 Aug 2011 10:04:23 +0000 Subject: [Bug 770] New: Zero + icedtea7 7033954 regression - missing mapfile-zero Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=770 Summary: Zero + icedtea7 7033954 regression - missing mapfile- zero Product: IcedTea Version: 7-hg Platform: arm URL: http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/244b27bb14f 8 OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Zero AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se OpenJDK7 7033954 made Zero OpenJDK builds architecture dependent. The change-set http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/244b27bb14f8 added mapfiles for mapfile-amd64 mapfile-i586 mapfile-sparc mapfile-sparcv9 Zero currently FTBFS on all architectures that do not have a mapfile in place. My suggested fix are to create an architecture independent mapfile-zero to be used for zero builds. Example Zero FTBFS on ARM using icedtea7: mapfile-arm: No such file or directory Begin Processing SUBDIRS: java make[6]: Entering directory `/media/dh0/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk/jdk/make/java/main/java' gcc -O3 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -D_LITTLE_ENDIAN -g -DNDEBUG -DARCH='"arm"' -Darm -DLINUX -DRELEASE='"1.7.0_147-icedtea"' -DFULL_VERSION='"1.7.0_147-icedtea-b147"' -DJDK_MAJOR_VERSION='"1"' -DJDK_MINOR_VERSION='"7"' -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT -I. -I/var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/tmp/java/java/CClassHeaders -I../../../../src/solaris/javavm/export -I../../../../src/share/javavm/export -I../../../../src/share/bin -I../../../../src/solaris/bin -DPROGNAME='"java"' -DEXPAND_CLASSPATH_WILDCARDS -DLAUNCHER_NAME='"java"' -c -o /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/tmp/java/java/obj/main.o \ -DRELEASE='"1.7.0_147-icedtea"' -DFULL_VERSION='"1.7.0_147-icedtea-b147"' -DJDK_MAJOR_VERSION='"1"' -DJDK_MINOR_VERSION='"7"' ../../../../src/share/bin/main.c Rebuilding /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/bin/java because of /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/tmp/java/java/obj/main.o gcc -o /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/bin/java -Xlinker -O1 -Xlinker -version-script=../../../java/main/java/mapfile-arm -Wl,--hash-style=both -Xlinker -z -Xlinker defs -L/var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/lib/arm -Wl,-soname=lib.so -L /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/lib/arm/jli -lz -Wl,--allow-shlib-undefined -Wl,-rpath -Wl,\$ORIGIN/../lib/arm/jli -Wl,-rpath -Wl,\$ORIGIN/../jre/lib/arm/jli \ /var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/tmp/java/java/obj/main.o -lpthread -ljli -ldl -lc /usr/bin/ld: cannot open linker script file ../../../java/main/java/mapfile-arm: No such file or directory collect2: ld returned 1 exit status make[6]: *** [/var/lib/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk.build/bin/java] Error 1 make[6]: Leaving directory `/media/dh0/buildbot/icedtea/icedtea7-natty-armv7l-quick/build/openjdk/jdk/make/java/main/java' -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From xranby at icedtea.classpath.org Tue Aug 9 04:16:28 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 09 Aug 2011 11:16:28 +0000 Subject: /hg/icedtea7: JamVM: Updated to 2011-08-08 revision. Message-ID: changeset 8ac25d11a9e5 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=8ac25d11a9e5 author: Xerxes Ranby date: Tue Aug 09 13:16:18 2011 +0200 JamVM: Updated to 2011-08-08 revision. 2011-08-09 Xerxes Ranby JamVM - Remove empty clobber. - Use dots instead of slashes in classname for exception. - Correct thrown exception by bootstrap loader. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 4 ++-- NEWS | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diffs (45 lines): diff -r 39e5e6de461a -r 8ac25d11a9e5 ChangeLog --- a/ChangeLog Wed Aug 03 18:21:10 2011 +0100 +++ b/ChangeLog Tue Aug 09 13:16:18 2011 +0200 @@ -1,3 +1,14 @@ +2011-08-09 Xerxes R??nby + + JamVM + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-03 Andrew John Hughes * NEWS: Updated with changes from diff -r 39e5e6de461a -r 8ac25d11a9e5 Makefile.am --- a/Makefile.am Wed Aug 03 18:21:10 2011 +0100 +++ b/Makefile.am Tue Aug 09 13:16:18 2011 +0200 @@ -24,8 +24,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da -JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 +JAMVM_VERSION = 0501bb8bea978c2d37e7b5caaa0969c92ae148b4 +JAMVM_SHA256SUM = 5a21290813affb5878d27995e487c60e7d0b85793987bb814baf162f179acedb 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 diff -r 39e5e6de461a -r 8ac25d11a9e5 NEWS --- a/NEWS Wed Aug 03 18:21:10 2011 +0100 +++ b/NEWS Tue Aug 09 13:16:18 2011 +0200 @@ -30,6 +30,9 @@ - Add missing describe_pd method for Zero. * JamVM - JamVM is self-hosting. + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. From xranby at icedtea.classpath.org Tue Aug 9 04:45:29 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 09 Aug 2011 11:45:29 +0000 Subject: /hg/icedtea: JamVM: Updated to 2011-08-08 revision. Message-ID: changeset ed87c77c461d in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=ed87c77c461d author: Xerxes Ranby date: Tue Aug 09 13:45:23 2011 +0200 JamVM: Updated to 2011-08-08 revision. 2011-08-09 Xerxes Ranby JamVM - Remove empty clobber. - Use dots instead of slashes in classname for exception. - Correct thrown exception by bootstrap loader. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 11 +++++++++++ Makefile.am | 4 ++-- NEWS | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diffs (45 lines): diff -r 7b17eac0147b -r ed87c77c461d ChangeLog --- a/ChangeLog Tue Aug 02 15:30:27 2011 +0200 +++ b/ChangeLog Tue Aug 09 13:45:23 2011 +0200 @@ -1,3 +1,14 @@ +2011-08-09 Xerxes R??nby + + JamVM + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-08 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-02 Xerxes R??nby JamVM diff -r 7b17eac0147b -r ed87c77c461d Makefile.am --- a/Makefile.am Tue Aug 02 15:30:27 2011 +0200 +++ b/Makefile.am Tue Aug 09 13:45:23 2011 +0200 @@ -24,8 +24,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.bz2 CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 -JAMVM_VERSION = 3e473008c66db345d71e3503179d4b73f0ba66da -JAMVM_SHA256SUM = 4d6a380d8e04cdfd39141d04f7f5f116a4b5f1c7fbca4e37a1b92da15ad93cf7 +JAMVM_VERSION = 0501bb8bea978c2d37e7b5caaa0969c92ae148b4 +JAMVM_SHA256SUM = 5a21290813affb5878d27995e487c60e7d0b85793987bb814baf162f179acedb 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 diff -r 7b17eac0147b -r ed87c77c461d NEWS --- a/NEWS Tue Aug 02 15:30:27 2011 +0200 +++ b/NEWS Tue Aug 09 13:45:23 2011 +0200 @@ -15,6 +15,9 @@ * JamVM - JamVM is self-hosting. + - Remove empty clobber. + - Use dots instead of slashes in classname for exception. + - Correct thrown exception by bootstrap loader. - Put parsing of -cp and -classpath options back in. - Fix threading of references list during compaction. - Further fix to freeClassData for native methods. From ptisnovs at redhat.com Tue Aug 9 06:29:42 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 09 Aug 2011 15:29:42 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "7041100: The load in String.equals intrinsic executed before null check" Message-ID: <4E413646.1020202@redhat.com> Greetings, Here's another backport I'd like to push to IcedTea6 HEAD: "7041100: The load in String.equals intrinsic executed before null check". Tested on RHEL 5.x. ChangeLog entry: 2011-08-09 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/7041100-load_in_String_equals_before_null_check.patch: Backport of 7041100. Can anybody please review this fix? Cheers, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 7041100_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110809/459814ff/7041100_hg.diff From ptisnovs at icedtea.classpath.org Tue Aug 9 07:45:06 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 09 Aug 2011 14:45:06 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/ColorPaint.java: Message-ID: changeset 2d2f7eecc246 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=2d2f7eecc246 author: Pavel Tisnovsky date: Tue Aug 09 16:46:47 2011 +0200 * src/org/gfxtest/testsuites/ColorPaint.java: Created new test suite containing 12 gfx.tests. diffstat: ChangeLog | 4 + Makefile | 3 + src/org/gfxtest/testsuites/ColorPaint.java | 588 +++++++++++++++++++++++++++++ 3 files changed, 595 insertions(+), 0 deletions(-) diffs (truncated from 630 to 500 lines): diff -r 1ab36617f4cf -r 2d2f7eecc246 ChangeLog --- a/ChangeLog Mon Aug 08 13:40:47 2011 +0200 +++ b/ChangeLog Tue Aug 09 16:46:47 2011 +0200 @@ -1,3 +1,7 @@ +2011-08-09 Pavel Tisnovsky + * src/org/gfxtest/testsuites/ColorPaint.java: + Created new test suite containing 12 gfx.tests. + 2011-08-08 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: Fixed minor issues in two tests. diff -r 1ab36617f4cf -r 2d2f7eecc246 Makefile --- a/Makefile Mon Aug 08 13:40:47 2011 +0200 +++ b/Makefile Tue Aug 09 16:46:47 2011 +0200 @@ -96,6 +96,7 @@ TESTSUITE_CLASSES = \ $(CLASSES)/$(TESTSUITE_DIR)/AALines.class \ $(CLASSES)/$(TESTSUITE_DIR)/BlankImage.class \ + $(CLASSES)/$(TESTSUITE_DIR)/ColorPaint.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalArcs.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalLines.class \ $(CLASSES)/$(TESTSUITE_DIR)/NormalCircles.class \ @@ -132,6 +133,7 @@ COMPARE_RESULTS = \ $(RESULTS)/AALines \ $(RESULTS)/BlankImage \ + $(RESULTS)/ColorPaint \ $(RESULTS)/NormalArcs \ $(RESULTS)/NormalLines \ $(RESULTS)/NormalCircles \ @@ -258,6 +260,7 @@ clean-output: rm -rf $(OUTPUT) + rm *.png clean-test-build: rm -rf $(TEST_BUILD) diff -r 1ab36617f4cf -r 2d2f7eecc246 src/org/gfxtest/testsuites/ColorPaint.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/ColorPaint.java Tue Aug 09 16:46:47 2011 +0200 @@ -0,0 +1,588 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Path2D; + + + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + +/** + * This test renders filled shapes using simple ColorPaint. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at RenderStyle(RenderStyles.FILL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class ColorPaint extends GfxTest +{ + /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + + /** + * Default stroke color. + */ + private static final Color DEFAULT_STROKE_COLOR = Color.BLACK; + + /** + * Default fill color. + */ + private static final Color DEFAULT_FILL_COLOR = Color.GREEN.darker(); + + /** + * Radius of round rectangle. + */ + private static final int ROUND_RECT_RADIUS = 80; + + /** + * Draw circle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawCircle(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the circle + graphics.drawOval(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Calculate radius of circle/arc/rectangle based on image size. + * + * @param image + * image to which two dimensional shape is to be rendered + * @return radius + */ + private int calculateRadius(TestImage image) + { + return Math.min(image.getWidth(), image.getHeight()) / 3; + } + + /** + * Draw crosses at interesting points of image. + * + * @param graphics + * graphics context for image + * @param xc center of image + * @param yc center of image + * @param radius radius of shape(s) + */ + private void drawCrossesForBasicShapes(Graphics2D graphics, int xc, int yc, int radius) + { + // move in vertical direction + for (int y = yc - radius; y <= yc + radius; y += radius) + { + // move in horizontal direction + for (int x = xc - radius; x <= xc + radius; x += radius) + { + drawCross(graphics, x, y); + } + } + } + + /** + * Draw filled circle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledCircle(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled circle + graphics.fillOval(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled arc onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledArc(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled arc + graphics.fillArc(xc - radius, yc - radius, radius << 1, radius << 1, 0, 135 + 180); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled rectangle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledRect(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled rectangle + graphics.fillRect(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled rounded rectangle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledRoundRect(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled rectangle round rectangle + graphics.fillRoundRect(xc - radius, yc - radius, radius << 1, radius << 1, ROUND_RECT_RADIUS, ROUND_RECT_RADIUS); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled polygon onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledPolygon(TestImage image, Graphics2D graphics) + { + // calculate image size + int w = image.getWidth(); + int h = image.getHeight(); + + // polygon vertexes + int xPoints[] = new int[] { OFFSET, w >> 1, w >> 1, w - OFFSET }; + int yPoints[] = new int[] { h >> 1, OFFSET, h - OFFSET, h >> 1 }; + + // draw the polygon + graphics.fillPolygon(xPoints, yPoints, xPoints.length); + + // draw crosses at interesting points of image + drawCross(graphics, OFFSET, h >> 1, CROSS_SIZE); + drawCross(graphics, w >> 1, OFFSET, CROSS_SIZE); + drawCross(graphics, w >> 1, h - OFFSET, CROSS_SIZE); + drawCross(graphics, w - OFFSET, h >> 1, CROSS_SIZE); + } + + /** + * Draw filled closed path onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + private void drawFilledClosedPath(TestImage image, Graphics2D graphics) + { + // calculate image size + int w = image.getWidth(); + int h = image.getHeight(); + + // construct closed path + Path2D path = new Path2D.Float(); + path.moveTo(OFFSET, OFFSET); + path.quadTo(w - OFFSET, OFFSET, w - OFFSET, h - OFFSET); + path.quadTo(OFFSET, h - OFFSET, w >> 1, h >> 1); + path.closePath(); + + // draw the closed path + graphics.fill(path); + + // draw crosses at interesting points of image + drawCross(graphics, OFFSET, OFFSET); + drawCross(graphics, w - OFFSET, OFFSET); + drawCross(graphics, w - OFFSET, h - OFFSET); + drawCross(graphics, OFFSET, h - OFFSET); + drawCross(graphics, w >> 1, h >> 1); + } + + /** + * Set default stroke color. + * + * @param graphics + * graphics context for image + */ + private void setStrokeColor(Graphics2D graphics) + { + graphics.setColor(DEFAULT_STROKE_COLOR); + } + + /** + * Set default fill color. + * + * @param graphics + * graphics context for image + */ + private void setFillColor(Graphics2D graphics) + { + graphics.setPaint(DEFAULT_FILL_COLOR); + } + + /** + * Set 10 pixels wide stroke. + * + * @param graphics + * graphics context for image + */ + private void setStrokeThickWidth(Graphics2D graphics) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + } + + /** + * Set 30 pixels wide stroke. + * + * @param graphics + * graphics context for image + */ + private void setStrokeExtraThickWidth(Graphics2D graphics) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK)); + } + + /** + * Test if circle drawn by graphics.drawOval() is rendered correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleBasicStrokeEmptyFill(TestImage image, Graphics2D graphics) + { + // set stroke color + setStrokeColor(graphics); + // draw the circle + drawCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if circle drawn by graphics.drawOval() is rendered correctly. + * Stroke of the circle is 10 pixels wide. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleThickStrokeEmptyFill(TestImage image, Graphics2D graphics) + { + // set stroke color + setStrokeColor(graphics); + // set 10 pixels wide stroke + setStrokeThickWidth(graphics); + // draw the circle + drawCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if circle drawn by graphics.drawOval() is rendered correctly. + * Stroke of the circle is 30 pixels wide. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleExtraThickStrokeEmptyFill(TestImage image, Graphics2D graphics) + { + // set stroke color + setStrokeColor(graphics); + // set 30 pixels wide stroke + setStrokeExtraThickWidth(graphics); + // draw the circle + drawCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleBasicStrokeColorFill(TestImage image, Graphics2D graphics) + { + // set stroke color + setStrokeColor(graphics); + // set fill color + setFillColor(graphics); + // draw the circle + drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Stroke of the circle is 10 pixels wide (but it cannot affect the draw + * process). + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleThickStrokeColorFill(TestImage image, Graphics2D graphics) + { + // set stroke color + setStrokeColor(graphics); + // set 10 pixels wide stroke + setStrokeThickWidth(graphics); + // set fill color + setFillColor(graphics); + // draw the circle + drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Stroke of the circle is 30 pixels wide (but it cannot affect the draw From dbhole at redhat.com Tue Aug 9 09:08:39 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 12:08:39 -0400 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work In-Reply-To: <20110805162234.GH31824@redhat.com> References: <20110804205816.GE31824@redhat.com> <20110805020821.GD31431@rivendell.middle-earth.co.uk> <20110805162234.GH31824@redhat.com> Message-ID: <20110809160839.GJ2420@redhat.com> * Deepak Bhole [2011-08-05 12:23]: > * Dr Andrew John Hughes [2011-08-04 22:08]: > > On 16:58 Thu 04 Aug , Deepak Bhole wrote: > > > Hi, > > > > > > Attached path fixes rhbz 718693: > > > https://bugzilla.redhat.com/show_bug.cgi?id=718693 > > > > > > The patch adds a class that certain apps may call because Netscape used > > > to need it. IcedTea-Web does not need this, and therefore the methods > > > are empty. > > > > > > Okay for HEAD and 1.1? > > > > > > ChangeLog: > > > 2011-08-04 Deepak Bhole > > > > > > RH718693: MindTerm SSH Applet doesn't work > > > * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. > > > Stub class, not needed with IcedTea-Web. > > > > > > Cheers, > > > Deepak > > > > Needs a license header. It would also probably benefit from some class-level > > Javadoc saying what you said above. > > > > Doh! Good catch re: license. New patch attached. > > Okay for commit to HEAD and 1.1? > ping? > Cheers, > Deepak > > diff -r defa7d0051bf NEWS > --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 > +++ b/NEWS Fri Aug 05 12:19:21 2011 -0400 > @@ -14,6 +14,7 @@ > - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation > * Plugin > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > + - RH718693: MindTerm SSH Applet doesn't work > Common > - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up > > diff -r defa7d0051bf plugin/icedteanp/java/netscape/security/PrivilegeManager.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Fri Aug 05 12:19:21 2011 -0400 > @@ -0,0 +1,75 @@ > +/* > + PrivilegeManager.java > + Copyright (C) 2011 Red Hat > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or modify > +it under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 2, or (at your option) > +any later version. > + > +IcedTea is distributed in the hope that it will be useful, but > +WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to the > +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. > +*/ > + > +/** > + * > + * This class does not implement any functionality and exists for backward > + * compatibility only. > + * > + * At one point Netscape required applets to request specific permissions to > + * do things. This is not longer the case with IcedTea-Web (and other modern > + * plug-ins). However because some old applets may still have code calling > + * this class, an empty stub is needed to prevent a ClassNotFoundException. > + * > + */ > + > +package netscape.security; > + > +import sun.applet.PluginDebug; > + > +public class PrivilegeManager { > + > + /** > + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility > + * > + * @param privilege > + */ > + public static void enablePrivilege(String privilege) { > + PluginDebug.debug("netscape.security.enablePrivilege stub called"); > + } > + > + /** > + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility > + * > + * @param privilege > + */ > + public static void disablePrivilege(String privilege) { > + PluginDebug.debug("netscape.security.disablePrivilege stub called"); > + } > +} From dbhole at redhat.com Tue Aug 9 11:16:20 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 14:16:20 -0400 Subject: [icedtea-web] RFC: PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 In-Reply-To: <20110803210718.GJ9903@redhat.com> References: <20110803210718.GJ9903@redhat.com> Message-ID: <20110809181620.GL2420@redhat.com> * Deepak Bhole [2011-08-03 17:08]: > Hi, > > Attached fix is for PR769: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 > > The fix is not Java 7 specific ... Java 7 just exposed the bug. > ping? > ChangeLog: > 2011-08-03 Deepak Bhole > > PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 > * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java > (checkServerTrusted): Account for a null hostname that the overloaded > implementation may pass. > > Okay for HEAD, 1.0 and 1.1? > > Cheers, > Deepak > diff -r db6914cf15be NEWS > --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 > +++ b/NEWS Wed Aug 03 17:06:33 2011 -0400 > @@ -13,6 +13,7 @@ > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > Common > - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up > + - PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 > > New in release 1.1.1 (2011-07-20): > * Security updates: > diff -r db6914cf15be netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java > --- a/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Wed Aug 03 14:11:11 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Wed Aug 03 17:06:33 2011 -0400 > @@ -222,7 +222,7 @@ > > // If the certificate is not explicitly trusted, we > // need to prompt the user > - if (!isExplicitlyTrusted(chain, authType)) { > + if (!isExplicitlyTrusted(chain, authType) && hostName != null) { > > try { > HostnameChecker checker = HostnameChecker > @@ -235,6 +235,8 @@ > CNMatched = false; > ce = e; > } > + } else if (!isExplicitlyTrusted(chain, authType)) { > + CNMatched = false; > } > > if (!trusted || !CNMatched) { From smohammad at redhat.com Tue Aug 9 12:00:48 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Tue, 09 Aug 2011 15:00:48 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E403318.4010701@redhat.com> References: <4E403318.4010701@redhat.com> Message-ID: <4E4183E0.4070500@redhat.com> On 08/08/2011 03:03 PM, Saad Mohammad wrote: > This is the patch for PR765: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 > > This bug is reproduced by having the jar (with the main class) marked > as lazy with additional resources (if any) that are also marked as lazy. > CHANGELOG: 2011-08-08 Saad Mohammad * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Initializes the first jar file if all resources are marked as lazy jars [ . . .] -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 765a.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110809/f641915c/765a.patch From dbhole at redhat.com Tue Aug 9 12:09:53 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 15:09:53 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E4183E0.4070500@redhat.com> References: <4E403318.4010701@redhat.com> <4E4183E0.4070500@redhat.com> Message-ID: <20110809190953.GM2420@redhat.com> * Saad Mohammad [2011-08-09 15:01]: > On 08/08/2011 03:03 PM, Saad Mohammad wrote: > >This is the patch for PR765: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 > > > >This bug is reproduced by having the jar (with the main class) > >marked as lazy with additional resources (if any) that are also > >marked as lazy. > > > CHANGELOG: > I see that the first jar is being added to the initial list. Is it guaranteed to contain the main method? Cheers, Deepak > 2011-08-08 Saad Mohammad > > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > (initializeResources): Initializes the first jar file if all resources > are marked as lazy jars > > > [ . . .] > > -- > Cheers, > Saad Mohammad > > diff -r defa7d0051bf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 14:50:39 2011 -0400 > @@ -428,6 +428,10 @@ > jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE > ); > } > + > + //If there are no eager jars, initialize the first jar > + if(initialJars.size() == 0) > + initialJars.add(jars[0]); > > if (strict) > fillInPartJars(initialJars); // add in each initial part's lazy jars From smohammad at redhat.com Tue Aug 9 12:22:54 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Tue, 09 Aug 2011 15:22:54 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <20110809190953.GM2420@redhat.com> References: <4E403318.4010701@redhat.com> <4E4183E0.4070500@redhat.com> <20110809190953.GM2420@redhat.com> Message-ID: <4E41890E.10703@redhat.com> On 08/09/2011 03:09 PM, Deepak Bhole wrote: > * Saad Mohammad [2011-08-09 15:01]: >> On 08/08/2011 03:03 PM, Saad Mohammad wrote: >>> This is the patch for PR765: >>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 >>> >>> This bug is reproduced by having the jar (with the main class) >>> marked as lazy with additional resources (if any) that are also >>> marked as lazy. >>> >> CHANGELOG: >> > I see that the first jar is being added to the initial list. Is it > guaranteed to contain the main method? > > Cheers, > Deepak > No, it does not guarantee that the first jar will have the main method; but it will not stop the launch of the application. At the moment, if all jars are marked 'lazy', it will not initialize any jars and the application will fail to launch. As long as there is at least one jar that can be initialized, it will not fail the launch of the application (even if the main class is in a different jar that's marked as lazy). I was looking into different ways of finding the jar with the main class but it doesn't seem to be possible unless we download all the jars (including lazy ones) and go through each jar entry one by one. This would defeat the purpose of having lazy jars. >> 2011-08-08 Saad Mohammad >> >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >> (initializeResources): Initializes the first jar file if all resources >> are marked as lazy jars >> >> >> [ . . .] >> >> -- >> Cheers, >> Saad Mohammad >> >> diff -r defa7d0051bf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 14:50:39 2011 -0400 >> @@ -428,6 +428,10 @@ >> jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE >> ); >> } >> + >> + //If there are no eager jars, initialize the first jar >> + if(initialJars.size() == 0) >> + initialJars.add(jars[0]); >> >> if (strict) >> fillInPartJars(initialJars); // add in each initial part's lazy jars -- Cheers, Saad Mohammad From dbhole at redhat.com Tue Aug 9 12:41:49 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 15:41:49 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E41890E.10703@redhat.com> References: <4E403318.4010701@redhat.com> <4E4183E0.4070500@redhat.com> <20110809190953.GM2420@redhat.com> <4E41890E.10703@redhat.com> Message-ID: <20110809194149.GO2420@redhat.com> * Saad Mohammad [2011-08-09 15:22]: > On 08/09/2011 03:09 PM, Deepak Bhole wrote: > >* Saad Mohammad [2011-08-09 15:01]: > >>On 08/08/2011 03:03 PM, Saad Mohammad wrote: > >>>This is the patch for PR765: > >>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 > >>> > >>>This bug is reproduced by having the jar (with the main class) > >>>marked as lazy with additional resources (if any) that are also > >>>marked as lazy. > >>> > >>CHANGELOG: > >> > >I see that the first jar is being added to the initial list. Is it > >guaranteed to contain the main method? > > > >Cheers, > >Deepak > > > No, it does not guarantee that the first jar will have the main > method; but it will not stop the launch of the application. At the > moment, if all jars are marked 'lazy', it will not initialize any > jars and the application will fail to launch. As long as there is at > least one jar that can be initialized, it will not fail the launch > of the application (even if the main class is in a different jar > that's marked as lazy). > > I was looking into different ways of finding the jar with the main > class but it doesn't seem to be possible unless we download all the > jars (including lazy ones) and go through each jar entry one by one. > This would defeat the purpose of having lazy jars. > Ah okay. Please repost this with a NEWS entry then and I will approve. Thanks, Deepak > >>2011-08-08 Saad Mohammad > >> > >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > >> (initializeResources): Initializes the first jar file if all resources > >> are marked as lazy jars > >> > >> > >>[ . . .] > >> > >>-- > >>Cheers, > >>Saad Mohammad > >> > >>diff -r defa7d0051bf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > >>--- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 > >>+++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 14:50:39 2011 -0400 > >>@@ -428,6 +428,10 @@ > >> jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE > >> ); > >> } > >>+ > >>+ //If there are no eager jars, initialize the first jar > >>+ if(initialJars.size() == 0) > >>+ initialJars.add(jars[0]); > >> > >> if (strict) > >> fillInPartJars(initialJars); // add in each initial part's lazy jars > > > -- > Cheers, > Saad Mohammad > From bugzilla-daemon at icedtea.classpath.org Tue Aug 9 13:19:36 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 09 Aug 2011 20:19:36 +0000 Subject: [Bug 765] JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=765 Saad Mohammad changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Lazy jars do not have a |JNLP file with all resource |signature check |jars marked as 'lazy' fails | |to validate signature and | |stops the launch of | |application -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Aug 9 13:22:52 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 09 Aug 2011 20:22:52 +0000 Subject: [Bug 770] Zero + icedtea7 7033954 regression - missing mapfile-zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=770 Matthias Klose changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |doko at ubuntu.com --- Comment #1 from Matthias Klose 2011-08-09 20:22:51 --- patch at http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-July/015090.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From smohammad at redhat.com Tue Aug 9 13:23:32 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Tue, 09 Aug 2011 16:23:32 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <20110809194149.GO2420@redhat.com> References: <4E403318.4010701@redhat.com> <4E4183E0.4070500@redhat.com> <20110809190953.GM2420@redhat.com> <4E41890E.10703@redhat.com> <20110809194149.GO2420@redhat.com> Message-ID: <4E419744.30109@redhat.com> On 08/09/2011 03:41 PM, Deepak Bhole wrote: [ . . .] > Ah okay. > > Please repost this with a NEWS entry then and I will approve. > > Thanks, > Deepak > I have attached the complete patch with NEWS/ChangeLog entry. [ . . .] -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 765b.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110809/4721f5a6/765b.patch From dbhole at redhat.com Tue Aug 9 13:43:35 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 16:43:35 -0400 Subject: [RFC][IcedTea-WEB]: Fix for PR765 In-Reply-To: <4E419744.30109@redhat.com> References: <4E403318.4010701@redhat.com> <4E4183E0.4070500@redhat.com> <20110809190953.GM2420@redhat.com> <4E41890E.10703@redhat.com> <20110809194149.GO2420@redhat.com> <4E419744.30109@redhat.com> Message-ID: <20110809204335.GQ2420@redhat.com> * Saad Mohammad [2011-08-09 16:23]: > On 08/09/2011 03:41 PM, Deepak Bhole wrote: > [ . . .] > >Ah okay. > > > >Please repost this with a NEWS entry then and I will approve. > > > >Thanks, > >Deepak > > > I have attached the complete patch with NEWS/ChangeLog entry. > > [ . . .] > > -- > Cheers, > Saad Mohammad > The ChangeLog entry should have a "PR765: JNLP file..." line as well. See other entries in the file for examples. After adding the above, okay for HEAD. Cheers, Deepak > diff -r defa7d0051bf ChangeLog > --- a/ChangeLog Wed Aug 03 14:11:11 2011 -0400 > +++ b/ChangeLog Tue Aug 09 16:21:52 2011 -0400 > @@ -1,3 +1,9 @@ > +2011-08-09 Saad Mohammad > + > + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > + (initializeResources): Initializes the first jar file if all resources > + are marked as lazy jars > + > 2011-08-03 Saad Mohammad > > * netx/net/sourceforge/jnlp/JNLPMatcher.java: > diff -r defa7d0051bf NEWS > --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 > +++ b/NEWS Tue Aug 09 16:21:52 2011 -0400 > @@ -12,6 +12,8 @@ > * Security updates: > - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications > - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation > +* NetX > + - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application > * Plugin > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > Common > diff -r defa7d0051bf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 16:21:52 2011 -0400 > @@ -428,6 +428,10 @@ > jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE > ); > } > + > + //If there are no eager jars, initialize the first jar > + if(initialJars.size() == 0) > + initialJars.add(jars[0]); > > if (strict) > fillInPartJars(initialJars); // add in each initial part's lazy jars From smohammad at icedtea.classpath.org Tue Aug 9 13:52:19 2011 From: smohammad at icedtea.classpath.org (smohammad at icedtea.classpath.org) Date: Tue, 09 Aug 2011 20:52:19 +0000 Subject: /hg/icedtea-web: PR765: JNLP file with all resource jars marked ... Message-ID: changeset a06bae0764b6 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a06bae0764b6 author: Saad Mohammad date: Tue Aug 09 16:52:29 2011 -0400 PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application diffstat: ChangeLog | 8 ++++++++ NEWS | 2 ++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 ++++ 3 files changed, 14 insertions(+), 0 deletions(-) diffs (41 lines): diff -r defa7d0051bf -r a06bae0764b6 ChangeLog --- a/ChangeLog Wed Aug 03 14:11:11 2011 -0400 +++ b/ChangeLog Tue Aug 09 16:52:29 2011 -0400 @@ -1,3 +1,11 @@ +2011-08-09 Saad Mohammad + + PR765: JNLP file with all resource jars marked as 'lazy' fails to validate + signature and stops the launch of application + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + (initializeResources): Initializes the first jar file if all resources + are marked as lazy jars + 2011-08-03 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: diff -r defa7d0051bf -r a06bae0764b6 NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Tue Aug 09 16:52:29 2011 -0400 @@ -12,6 +12,8 @@ * Security updates: - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation +* NetX + - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Common diff -r defa7d0051bf -r a06bae0764b6 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 16:52:29 2011 -0400 @@ -428,6 +428,10 @@ jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE ); } + + //If there are no eager jars, initialize the first jar + if(initialJars.size() == 0) + initialJars.add(jars[0]); if (strict) fillInPartJars(initialJars); // add in each initial part's lazy jars From bugzilla-daemon at icedtea.classpath.org Tue Aug 9 14:13:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 09 Aug 2011 21:13:05 +0000 Subject: [Bug 771] New: IcedTea-Web certificate verification code does not use the right API Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=771 Summary: IcedTea-Web certificate verification code does not use the right API Product: IcedTea-Web Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: General AssignedTo: unassigned at icedtea.classpath.org ReportedBy: dbhole at redhat.com CC: unassigned at icedtea.classpath.org Currently, a certificate foo is verified by running KeySTore.getCertificateAlias(foo). This only works if all fields match perfectly. If certain properties like signature algorithm differs, verification fails even when it shouldn't. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From dbhole at redhat.com Tue Aug 9 14:18:36 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 17:18:36 -0400 Subject: [icedtea-web] RFC: PR771: IcedTea-Web certificate verification code does not use the right API Message-ID: <20110809211835.GA10410@redhat.com> Hi, Attached patch fixes an issue Danesh found whereby certificates using a different signature algorithm than the certificate in the store are marked untrusted even when they shouldn't be. Okay for HEAD? ChangeLog: 2011-08-09 Deepak Bhole PR771: IcedTea-Web certificate verification code does not use the right API * netx/net/sourceforge/jnlp/security/CertificateUtils.java (inKeyStores): Use Certificate.verify to correctly verify a certificate against a public key in the store. Cheers, Deepak -------------- next part -------------- diff -r defa7d0051bf NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Tue Aug 09 17:15:30 2011 -0400 @@ -16,6 +16,7 @@ - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + - PR771: IcedTea-Web certificate verification code does not use the right API New in release 1.1 (2011-XX-XX): * Security updates diff -r defa7d0051bf netx/net/sourceforge/jnlp/security/CertificateUtils.java --- a/netx/net/sourceforge/jnlp/security/CertificateUtils.java Wed Aug 03 14:11:11 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/CertificateUtils.java Tue Aug 09 17:15:30 2011 -0400 @@ -43,16 +43,20 @@ import java.io.IOException; import java.io.PrintStream; import java.math.BigInteger; +import java.security.InvalidKeyException; import java.security.KeyStore; import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.SignatureException; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.util.Enumeration; import java.util.Random; import net.sourceforge.jnlp.runtime.JNLPRuntime; - import sun.misc.BASE64Encoder; import sun.security.provider.X509Factory; @@ -122,11 +126,36 @@ public static final boolean inKeyStores(X509Certificate c, KeyStore[] keyStores) { for (int i = 0; i < keyStores.length; i++) { try { - if (keyStores[i].getCertificateAlias(c) != null) { - if (JNLPRuntime.isDebug()) { - System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); + // Check against all certs + Enumeration aliases = keyStores[i].aliases(); + while (aliases.hasMoreElements()) { + String alias = aliases.nextElement(); + try { + // Verify against this entry + c.verify(keyStores[i].getCertificate(alias).getPublicKey()); + + if (JNLPRuntime.isDebug()) { + System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); + } + + // If we got here, it means verification succeeded. Return true. + return true; + } catch (NoSuchAlgorithmException nsae) { + // Unsupported signature algorithm + // Consider non-match and keep going + } catch (InvalidKeyException ike) { + // Incorrect/corrupt key + // Consider non-match and keep going + } catch (NoSuchProviderException nspe) { + // No default provider + // Consider non-match and keep going + } catch (SignatureException se) { + // Signature error + // Consider non-match and keep going + } catch (CertificateException ce) { + // Encoding error + // Consider non-match and keep going } - return true; } } catch (KeyStoreException e) { e.printStackTrace(); From bugzilla-daemon at icedtea.classpath.org Tue Aug 9 14:21:14 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 09 Aug 2011 21:21:14 +0000 Subject: [Bug 771] IcedTea-Web certificate verification code does not use the right API In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=771 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | Target Milestone|--- |1.2 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. You are the assignee for the bug. From ddadacha at redhat.com Tue Aug 9 14:27:35 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 09 Aug 2011 17:27:35 -0400 Subject: [icedtea-web] RFC: PR771: IcedTea-Web certificate verification code does not use the right API In-Reply-To: <20110809211835.GA10410@redhat.com> References: <20110809211835.GA10410@redhat.com> Message-ID: <4E41A647.4020502@redhat.com> Hi, Looks good to me. Tested it with a few JNLPs from the IcedTea-Web-Tests wiki page too. Okay for HEAD. Regards, Danesh On 09/08/11 05:18 PM, Deepak Bhole wrote: > Hi, > > Attached patch fixes an issue Danesh found whereby certificates using > a different signature algorithm than the certificate in the store are > marked untrusted even when they shouldn't be. > > Okay for HEAD? > > ChangeLog: > 2011-08-09 Deepak Bhole > > PR771: IcedTea-Web certificate verification code does not use the right > API > * netx/net/sourceforge/jnlp/security/CertificateUtils.java > (inKeyStores): Use Certificate.verify to correctly verify a certificate > against a public key in the store. > > Cheers, > Deepak From dbhole at icedtea.classpath.org Tue Aug 9 14:34:42 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Tue, 09 Aug 2011 21:34:42 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 9b7eca03a9ea in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9b7eca03a9ea author: Deepak Bhole date: Tue Aug 09 17:29:45 2011 -0400 PR771: IcedTea-Web certificate verification code does not use the right API changeset 27f08d58854f in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=27f08d58854f author: Deepak Bhole date: Tue Aug 09 17:34:35 2011 -0400 Merge diffstat: ChangeLog | 16 ++++++ NEWS | 3 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 + netx/net/sourceforge/jnlp/security/CertificateUtils.java | 39 +++++++++++++-- 4 files changed, 57 insertions(+), 5 deletions(-) diffs (120 lines): diff -r defa7d0051bf -r 27f08d58854f ChangeLog --- a/ChangeLog Wed Aug 03 14:11:11 2011 -0400 +++ b/ChangeLog Tue Aug 09 17:34:35 2011 -0400 @@ -1,3 +1,19 @@ +2011-08-09 Deepak Bhole + + PR771: IcedTea-Web certificate verification code does not use the right + API + * netx/net/sourceforge/jnlp/security/CertificateUtils.java + (inKeyStores): Use Certificate.verify to correctly verify a certificate + against a public key in the store. + +2011-08-09 Saad Mohammad + + PR765: JNLP file with all resource jars marked as 'lazy' fails to validate + signature and stops the launch of application + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + (initializeResources): Initializes the first jar file if all resources + are marked as lazy jars + 2011-08-03 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPMatcher.java: diff -r defa7d0051bf -r 27f08d58854f NEWS --- a/NEWS Wed Aug 03 14:11:11 2011 -0400 +++ b/NEWS Tue Aug 09 17:34:35 2011 -0400 @@ -12,10 +12,13 @@ * Security updates: - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation +* NetX + - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + - PR771: IcedTea-Web certificate verification code does not use the right API New in release 1.1 (2011-XX-XX): * Security updates diff -r defa7d0051bf -r 27f08d58854f netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 03 14:11:11 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Aug 09 17:34:35 2011 -0400 @@ -428,6 +428,10 @@ jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE ); } + + //If there are no eager jars, initialize the first jar + if(initialJars.size() == 0) + initialJars.add(jars[0]); if (strict) fillInPartJars(initialJars); // add in each initial part's lazy jars diff -r defa7d0051bf -r 27f08d58854f netx/net/sourceforge/jnlp/security/CertificateUtils.java --- a/netx/net/sourceforge/jnlp/security/CertificateUtils.java Wed Aug 03 14:11:11 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/CertificateUtils.java Tue Aug 09 17:34:35 2011 -0400 @@ -43,16 +43,20 @@ import java.io.IOException; import java.io.PrintStream; import java.math.BigInteger; +import java.security.InvalidKeyException; import java.security.KeyStore; import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.SignatureException; import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.util.Enumeration; import java.util.Random; import net.sourceforge.jnlp.runtime.JNLPRuntime; - import sun.misc.BASE64Encoder; import sun.security.provider.X509Factory; @@ -122,11 +126,36 @@ public static final boolean inKeyStores(X509Certificate c, KeyStore[] keyStores) { for (int i = 0; i < keyStores.length; i++) { try { - if (keyStores[i].getCertificateAlias(c) != null) { - if (JNLPRuntime.isDebug()) { - System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); + // Check against all certs + Enumeration aliases = keyStores[i].aliases(); + while (aliases.hasMoreElements()) { + String alias = aliases.nextElement(); + try { + // Verify against this entry + c.verify(keyStores[i].getCertificate(alias).getPublicKey()); + + if (JNLPRuntime.isDebug()) { + System.out.println(c.getSubjectX500Principal().getName() + " found in cacerts"); + } + + // If we got here, it means verification succeeded. Return true. + return true; + } catch (NoSuchAlgorithmException nsae) { + // Unsupported signature algorithm + // Consider non-match and keep going + } catch (InvalidKeyException ike) { + // Incorrect/corrupt key + // Consider non-match and keep going + } catch (NoSuchProviderException nspe) { + // No default provider + // Consider non-match and keep going + } catch (SignatureException se) { + // Signature error + // Consider non-match and keep going + } catch (CertificateException ce) { + // Encoding error + // Consider non-match and keep going } - return true; } } catch (KeyStoreException e) { e.printStackTrace(); From dbhole at redhat.com Tue Aug 9 14:38:15 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 9 Aug 2011 17:38:15 -0400 Subject: [icedtea-web] RFC: PR771: IcedTea-Web certificate verification code does not use the right API In-Reply-To: <4E41A647.4020502@redhat.com> References: <20110809211835.GA10410@redhat.com> <4E41A647.4020502@redhat.com> Message-ID: <20110809213814.GB10410@redhat.com> * Danesh Dadachanji [2011-08-09 17:27]: > Hi, > > Looks good to me. Tested it with a few JNLPs from the > IcedTea-Web-Tests wiki page too. > > Okay for HEAD. > Thanks! Committed. Cheers, Deepak > Regards, > Danesh > > On 09/08/11 05:18 PM, Deepak Bhole wrote: > >Hi, > > > >Attached patch fixes an issue Danesh found whereby certificates using > >a different signature algorithm than the certificate in the store are > >marked untrusted even when they shouldn't be. > > > >Okay for HEAD? > > > >ChangeLog: > >2011-08-09 Deepak Bhole > > > > PR771: IcedTea-Web certificate verification code does not use the right > > API > > * netx/net/sourceforge/jnlp/security/CertificateUtils.java > > (inKeyStores): Use Certificate.verify to correctly verify a certificate > > against a public key in the store. > > > >Cheers, > >Deepak From drazzib at drazzib.com Tue Aug 9 14:53:28 2011 From: drazzib at drazzib.com (Damien Raude-Morvan) Date: Tue, 9 Aug 2011 23:53:28 +0200 Subject: [patch] ZeroVM fix under linuxthreads Message-ID: <201108092353.32567.drazzib@drazzib.com> Hi, When trying to use Zero VM with linuxthreads (under x86 but should also exist under others CPU), I found an issue with safe_cond_timedwait usage. In openjdk/hotspot/src/os/linux/vm/os_linux.cpp#safe_cond_timedwait : if (is_NPTL()) { return pthread_cond_timedwait(_cond, _mutex, _abstime); } else { #ifndef IA64 // 6292965: LinuxThreads pthread_cond_timedwait() resets FPU control // word back to default 64bit precision if condvar is signaled. Java // wants 53bit precision. Save and restore current value. int fpu = get_fpu_control_word(); #endif // IA64 int status = pthread_cond_timedwait(_cond, _mutex, _abstime); #ifndef IA64 set_fpu_control_word(fpu); #endif // IA64 return status; } So if you use linuxthreads (!= NTPL) with a arch different from x86_64, it will try to call get_fpu_control_word / set_fpu_control_word. Now, in os_linux_zero.cpp, this methods currently throw errors with ShouldNotCallThis. This obvousily fails in this case. I've choosen to just replace this with just noop (see attached patch). Regards, -- Damien -------------- next part -------------- A non-text attachment was scrubbed... Name: zero-fpu-control-is-noop.diff Type: text/x-patch Size: 970 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110809/cc0dd879/zero-fpu-control-is-noop.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: This is a digitally signed message part. Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110809/cc0dd879/attachment.bin From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 04:48:35 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 11:48:35 +0000 Subject: [Bug 772] New: JamVM + jtreg LocalOnlyTest sends SIGQUIT to all processes on exit Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=772 Summary: JamVM + jtreg LocalOnlyTest sends SIGQUIT to all processes on exit Product: IcedTea Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: JamVM AssignedTo: xerxes at zafena.se ReportedBy: xerxes at zafena.se CC: unassigned at icedtea.classpath.org Created an attachment (id=557) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=557) jamvm_jmm_GetLongAttribute_201_PID.patch Problem: When JamVM are used to run check-jdk then a SIGQUIT are sent to all processes when the openjdk/jdk/test/sun/management/jmxremote/bootstrap/LocalOnlyTest.java test exit. Output from the test are: jmm_GetLongAttribute: Unknown attribute 201 name = -1 at hp vmid = -1 The problematic part of the test code are: VirtualMachine vm = VirtualMachine.attach(vmid); Here vmid are set to "-1" instead of the JVM PID while performing the test using JamVM. The attached patch fixes this bug by patching JamVM to implement the jmm_GetLongAttribute: Unknown attribute 201 and return its PID when requested. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ptisnovs at redhat.com Wed Aug 10 06:26:27 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 10 Aug 2011 15:26:27 +0200 Subject: Reviewer needed: regression test fix in IcedTea7-jdk Message-ID: <4E428703.5070905@redhat.com> Greetings, I'd like to fix regression test "openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java" in IcedTea7 JDK. This test should delete all its temporary files, but the method File.deleteOnExit() does not work properly if such test is called from JTreg tool in sameVM mode (the same test was fixed in IcedTea6). Here's ChangeLog entry for IcedTea7 repo: 2011-08-10 Pavel Tisnovsky Make sure that the regression test openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java deletes all its work files. * Makefile.am: (JDK_CHANGESET): Updated. (JDK_SHA256SUM): Likewise. Can anybody please review this fix? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jdk_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110810/cb9a0975/jdk_hg.diff From xranby at icedtea.classpath.org Wed Aug 10 07:34:04 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Wed, 10 Aug 2011 14:34:04 +0000 Subject: /hg/icedtea6: PR772: JamVM + jtreg LocalOnlyTest sends SIGQUIT t... Message-ID: changeset 7c0028a7e2a3 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7c0028a7e2a3 author: Xerxes Ranby date: Wed Aug 10 16:33:51 2011 +0200 PR772: JamVM + jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. 2011-08-10 Xerxes Ranby JamVM - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. * NEWS: Updated. * patches/jamvm/jmm_GetLongAttribute_201.patch: New patch. * Makefile.am: Apply JamVM patch. diffstat: ChangeLog | 8 ++++++++ Makefile.am | 5 +++++ NEWS | 1 + patches/jamvm/jmm_GetLongAttribute_201.patch | 21 +++++++++++++++++++++ 4 files changed, 35 insertions(+), 0 deletions(-) diffs (67 lines): diff -r 305c98561e8d -r 7c0028a7e2a3 ChangeLog --- a/ChangeLog Tue Aug 09 11:34:28 2011 +0200 +++ b/ChangeLog Wed Aug 10 16:33:51 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-10 Xerxes R??nby + + JamVM + - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. + * NEWS: Updated. + * patches/jamvm/jmm_GetLongAttribute_201.patch: New patch. + * Makefile.am: Apply JamVM patch. + 2011-08-09 Xerxes R??nby CACAO diff -r 305c98561e8d -r 7c0028a7e2a3 Makefile.am --- a/Makefile.am Tue Aug 09 11:34:28 2011 +0200 +++ b/Makefile.am Wed Aug 10 16:33:51 2011 +0200 @@ -391,6 +391,11 @@ patches/cacao/ignore-tests.patch endif +if BUILD_JAMVM +ICEDTEA_PATCHES += \ + patches/jamvm/jmm_GetLongAttribute_201.patch +endif + if ENABLE_PULSE_JAVA ICEDTEA_PATCHES += \ patches/pulse-soundproperties.patch diff -r 305c98561e8d -r 7c0028a7e2a3 NEWS --- a/NEWS Tue Aug 09 11:34:28 2011 +0200 +++ b/NEWS Wed Aug 10 16:33:51 2011 +0200 @@ -372,6 +372,7 @@ creating a nasty race. - Threadlist & threadobject improvements. * JamVM + - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. - Remove empty clobber. - Use dots instead of slashes in classname for exception. - Correct thrown exception by bootstrap loader. diff -r 305c98561e8d -r 7c0028a7e2a3 patches/jamvm/jmm_GetLongAttribute_201.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jamvm/jmm_GetLongAttribute_201.patch Wed Aug 10 16:33:51 2011 +0200 @@ -0,0 +1,22 @@ +Index: jamvm/jamvm/src/classlib/openjdk/management.c +=================================================================== +--- jamvm.orig/jamvm/src/classlib/openjdk/management.c 2011-08-09 23:39:21.067466386 +0200 ++++ jamvm/jamvm/src/classlib/openjdk/management.c 2011-08-09 23:43:21.987466384 +0200 +@@ -146,6 +146,9 @@ + case JMM_JVM_INIT_DONE_TIME_MS: + result = 0; + break; ++ case JMM_OS_PROCESS_ID: ++ result = getpid(); ++ break; + + case JMM_CLASS_LOADED_COUNT: + case JMM_CLASS_UNLOADED_COUNT: +@@ -153,7 +156,6 @@ + case JMM_THREAD_LIVE_COUNT: + case JMM_THREAD_PEAK_COUNT: + case JMM_THREAD_DAEMON_COUNT: +- case JMM_OS_PROCESS_ID: + + default: + UNIMPLEMENTED("jmm_GetLongAttribute: Unknown attribute %d", att); From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 08:03:26 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 15:03:26 +0000 Subject: [Bug 772] JamVM + jtreg LocalOnlyTest sends SIGQUIT to all processes on exit In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=772 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |6-1.11 --- Comment #1 from Xerxes R?nby 2011-08-10 15:03:25 --- fixed in http://icedtea.classpath.org/hg/icedtea6/rev/7c0028a7e2a3 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Wed Aug 10 08:16:41 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 10 Aug 2011 16:16:41 +0100 Subject: Reviewer needed: regression test fix in IcedTea7-jdk In-Reply-To: <4E428703.5070905@redhat.com> References: <4E428703.5070905@redhat.com> Message-ID: <20110810151641.GA25807@rivendell.middle-earth.co.uk> On 15:26 Wed 10 Aug , Pavel Tisnovsky wrote: > Greetings, > > I'd like to fix regression test > "openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java" in IcedTea7 JDK. > This test should delete all its temporary files, but the method > File.deleteOnExit() does not work properly if such test is called from > JTreg tool in sameVM mode (the same test was fixed in IcedTea6). > > Here's ChangeLog entry for IcedTea7 repo: > > 2011-08-10 Pavel Tisnovsky > > > > Make sure that the regression test > > openjdk/jdk/test/java/nio/MappedByteBuffer/Basic.java > > deletes all its work files. > > * Makefile.am: > > (JDK_CHANGESET): Updated. > > (JDK_SHA256SUM): Likewise. > > > Can anybody please review this fix? > > Thank you in advance, > Pavel The patch for the forest is fine. Do NOT update IcedTea7 to a new changeset at this time. I have stuff I'm working on and I don't want IcedTea7 pulling it yet. > diff -r 4da6bd3bb35e test/java/nio/MappedByteBuffer/Basic.java > --- a/test/java/nio/MappedByteBuffer/Basic.java Thu Aug 04 05:09:19 2011 +0100 > +++ b/test/java/nio/MappedByteBuffer/Basic.java Wed Aug 10 15:11:59 2011 +0200 > @@ -35,50 +35,61 @@ > byte[] srcData = new byte[20]; > for (int i=0; i<20; i++) > srcData[i] = 3; > - File blah = File.createTempFile("blah", null); > - blah.deleteOnExit(); > - FileOutputStream fos = new FileOutputStream(blah); > - FileChannel fc = fos.getChannel(); > - fc.write(ByteBuffer.wrap(srcData)); > - fc.close(); > - fos.close(); > + File blah = null; > + try { > + blah = File.createTempFile("blah", null); > + blah.deleteOnExit(); > + FileOutputStream fos = new FileOutputStream(blah); > + FileChannel fc = fos.getChannel(); > + fc.write(ByteBuffer.wrap(srcData)); > + fc.close(); > + fos.close(); > > - FileInputStream fis = new FileInputStream(blah); > - fc = fis.getChannel(); > - MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10); > - mbb.load(); > - mbb.isLoaded(); > - mbb.force(); > - if (!mbb.isReadOnly()) > - throw new RuntimeException("Incorrect isReadOnly"); > + FileInputStream fis = new FileInputStream(blah); > + fc = fis.getChannel(); > + MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10); > + mbb.load(); > + mbb.isLoaded(); > + mbb.force(); > + if (!mbb.isReadOnly()) { > + throw new RuntimeException("Incorrect isReadOnly"); > + } > > - // repeat with unaligned position in file > - mbb = fc.map(FileChannel.MapMode.READ_ONLY, 1, 10); > - mbb.load(); > - mbb.isLoaded(); > - mbb.force(); > - fc.close(); > - fis.close(); > + // repeat with unaligned position in file > + mbb = fc.map(FileChannel.MapMode.READ_ONLY, 1, 10); > + mbb.load(); > + mbb.isLoaded(); > + mbb.force(); > + fc.close(); > + fis.close(); > > - RandomAccessFile raf = new RandomAccessFile(blah, "r"); > - fc = raf.getChannel(); > - mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10); > - if (!mbb.isReadOnly()) > - throw new RuntimeException("Incorrect isReadOnly"); > - fc.close(); > - raf.close(); > + RandomAccessFile raf = new RandomAccessFile(blah, "r"); > + fc = raf.getChannel(); > + mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, 10); > + if (!mbb.isReadOnly()) { > + throw new RuntimeException("Incorrect isReadOnly"); > + } > + fc.close(); > + raf.close(); > > - raf = new RandomAccessFile(blah, "rw"); > - fc = raf.getChannel(); > - mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, 10); > - if (mbb.isReadOnly()) > - throw new RuntimeException("Incorrect isReadOnly"); > - fc.close(); > - raf.close(); > + raf = new RandomAccessFile(blah, "rw"); > + fc = raf.getChannel(); > + mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, 10); > + if (mbb.isReadOnly()) { > + throw new RuntimeException("Incorrect isReadOnly"); > + } > + fc.close(); > + raf.close(); > > - // clean-up > - mbb = null; > - System.gc(); > - Thread.sleep(500); > + // clean-up > + mbb = null; > + System.gc(); > + Thread.sleep(500); > + } > + finally { > + if (blah != null) { > + blah.delete(); > + } > + } > } > } -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 10:48:15 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 17:48:15 +0000 Subject: [Bug 773] New: OpenJDK 64-Bit Server VM : SIGSEGV (0xb) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Summary: OpenJDK 64-Bit Server VM : SIGSEGV (0xb) Product: IcedTea Version: unspecified Platform: all OS/Version: Windows Status: NEW Severity: blocker Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: jonb at jmbaai.com # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00002ae13ea0e381, pid=7733, tid=1096153408 # # Java VM: OpenJDK 64-Bit Server VM (1.6.0-b09 mixed mode linux-amd64) # Problematic frame: # V [libjvm.so+0x36b381] -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 10:50:05 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 17:50:05 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #1 from Jon Barrilleaux 2011-08-10 17:50:04 --- Created an attachment (id=558) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=558) error log -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 11:04:16 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 18:04:16 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com --- Comment #2 from Deepak Bhole 2011-08-10 18:04:16 --- Where is lib_linux_libjhdf5.so coming from? Looks like a bug in that. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ddadacha at redhat.com Wed Aug 10 14:18:49 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 10 Aug 2011 17:18:49 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <4E025953.3020906@redhat.com> References: <4E025953.3020906@redhat.com> Message-ID: <4E42F5B9.3080800@redhat.com> Hello, Here's an update for this bug. It took so long because of the (at the time) mysterious PR771. This will now check all the certificates along the certPath for trust in the store. It also displays a new icon[1] and automatically selects the "Always Trust" checkbox when an applet is verified. Along the way I found a miscalculation in the window size of the dialog. It was too small to display the entire icon so I increased the height. I've tested it on all of the certificate holding JNLPs on the test wiki page. The original reporter's applet is signed by an older version of a Thawte CA which I was unable to find online. The newer version is technically considered a different certificate (public keys are different) so this patch still won't verify their applet. ChangeLog: +2011-08-10 Danesh Dadachanji + + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring + them untrusted. + * NEWS: Updated. + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. Credit + to The GNOME Project for the image + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: + (addComponents): When certs are verified, question.png is used as the icon + and SAlwaysTrustPublisher is automatically selected. + * netx/net/sourceforge/jnlp/tools/JarSigner.java: + (checkTrustedCerts): All certs along certPath are now checked for trust. Okay for HEAD? Regards, Danesh [1] question.png is attached, it needs to be saved in /path/to/icedtea-web/netx/net/sourceforge/jnlp/resources -------------- next part -------------- A non-text attachment was scrubbed... Name: question.png Type: image/png Size: 5406 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110810/1f0db38e/question.png -------------- next part -------------- A non-text attachment was scrubbed... Name: PR742.patch Type: text/x-patch Size: 4429 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110810/1f0db38e/PR742.patch From ddadacha at redhat.com Wed Aug 10 14:25:03 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 10 Aug 2011 17:25:03 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <4E42F5B9.3080800@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> Message-ID: <4E42F72F.1010403@redhat.com> Woops forgot I had a comment on something. I'm not quite happy with the name of the var, rootInCacerts. It's no longer _just_ the root cert being in the store, it would also be set if any cert along the chain is in the store. However, the method associated with it is also from an interface that is also inheritted by the HTTP side. That side has kept it as root even though it has always checked all certs along the path. Comments? Regards, Danesh On 10/08/11 05:18 PM, Danesh Dadachanji wrote: > Hello, > > Here's an update for this bug. It took so long because of the (at the > time) mysterious PR771. This will now check all the certificates along > the certPath for trust in the store. It also displays a new icon[1] and > automatically selects the "Always Trust" checkbox when an applet is > verified. Along the way I found a miscalculation in the window size of > the dialog. It was too small to display the entire icon so I increased > the height. > > I've tested it on all of the certificate holding JNLPs on the test wiki > page. > > The original reporter's applet is signed by an older version of a Thawte > CA which I was unable to find online. The newer version is technically > considered a different certificate (public keys are different) so this > patch still won't verify their applet. > > ChangeLog: > +2011-08-10 Danesh Dadachanji > + > + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring > + them untrusted. > + * NEWS: Updated. > + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. > Credit > + to The GNOME Project for the image > + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: > + (addComponents): When certs are verified, question.png is used as the > icon > + and SAlwaysTrustPublisher is automatically selected. > + * netx/net/sourceforge/jnlp/tools/JarSigner.java: > + (checkTrustedCerts): All certs along certPath are now checked for trust. > > Okay for HEAD? > > Regards, > Danesh > > [1] question.png is attached, it needs to be saved in > /path/to/icedtea-web/netx/net/sourceforge/jnlp/resources From dbhole at redhat.com Wed Aug 10 15:01:25 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 10 Aug 2011 18:01:25 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <4E42F5B9.3080800@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> Message-ID: <20110810220124.GF20852@redhat.com> * Danesh Dadachanji [2011-08-10 17:20]: > Hello, > > Here's an update for this bug. It took so long because of the (at > the time) mysterious PR771. This will now check all the certificates > along the certPath for trust in the store. It also displays a new > icon[1] and automatically selects the "Always Trust" checkbox when > an applet is verified. Along the way I found a miscalculation in the > window size of the dialog. It was too small to display the entire > icon so I increased the height. > > I've tested it on all of the certificate holding JNLPs on the test > wiki page. > > The original reporter's applet is signed by an older version of a > Thawte CA which I was unable to find online. The newer version is > technically considered a different certificate (public keys are > different) so this patch still won't verify their applet. > Hi Danesh, Patch looks good. Couple of minor things: When a cert has been verified and we show a prompt with the new question icon, the title still says "Warning - Security" ... we should probably update this to something that doesn't look as alarming ... maybe "Security approval needed" or something? Also, one code related fix below: > - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); > + // Check entire cert path for a trusted CA > + List certList = certPath.getCertificates(); > + for (int i = 0; i != certList.size(); i++) { > + if ((rootInCacerts = CertificateUtils.inKeyStores( > + (X509Certificate) certList.get(i), caKeyStores))) { > + break; > + } > + } It would be cleaner to use the Java foreach syntax with certPath.getCertificates() directly... e.g.: for (Certificate c: certPath.getCertificates()) { ... } Cheers, Deepak From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 15:03:44 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 22:03:44 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #3 from Jon Barrilleaux 2011-08-10 22:03:43 --- Thanks for taking a look. That lib comes from http://www.hdfgroup.org. After your response i posted a help request there. The .so I'm using is supposed to be for linux x86-64, which is what I am trying to run the app on. Could this possibly be a bug in the JVM, or is it conclusively a bug in the .so? --jon -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 15:21:32 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 10 Aug 2011 22:21:32 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #4 from Deepak Bhole 2011-08-10 22:21:32 --- It is hard to say. Given that the error occurs in libjvm.so immediately after the Java_ncsa_hdf_hdf5lib_H5_H5Gget_1obj_1info_1all call, it is possible that lib_linux_libjhdf5.so is passing it something bad. I looked on the site you mentioned, but it doesn't seem like the code is Open Source. Without looking at what it is going, I cannot give a conclusive answer. I didn't look closely before, but it seems like you are using a very old (and now unsupported) version of IcedTea. Can you update to the latest and see if it still crashes? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 17:01:19 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Aug 2011 00:01:19 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #5 from Jon Barrilleaux 2011-08-11 00:01:19 --- (In reply to comment #4) > It is hard to say. Given that the error occurs in libjvm.so immediately after > the Java_ncsa_hdf_hdf5lib_H5_H5Gget_1obj_1info_1all call, it is possible that > lib_linux_libjhdf5.so is passing it something bad. > > I looked on the site you mentioned, but it doesn't seem like the code is Open > Source. Without looking at what it is going, I cannot give a conclusive answer. > > I didn't look closely before, but it seems like you are using a very old (and > now unsupported) version of IcedTea. Can you update to the latest and see if it > still crashes? > I asked our IT person to update icedtea. If that happens I'll try it again. I believe HDF is open source. Here is an excerpt from the site..... HDF is open-source and the software is distributed at no cost. Potential users can evaluate HDF without any financial investment. Projects that adopt HDF are assured that the technology they rely on to manage their data is not dependent upon a proprietary format and binary-only software that a company may dramatically increase the price of, or decide to stop supporting altogether. --jon -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 10 18:07:49 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Aug 2011 01:07:49 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #6 from Jon Barrilleaux 2011-08-11 01:07:49 --- Created an attachment (id=559) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=559) error log using latest JRE -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at icedtea.classpath.org Thu Aug 11 01:12:04 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 11 Aug 2011 08:12:04 +0000 Subject: /hg/icedtea6: Fixed typo in the name of patch fixing bug 6934356. Message-ID: changeset fbfd59dbdf30 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=fbfd59dbdf30 author: ptisnovs date: Thu Aug 11 10:11:19 2011 +0200 Fixed typo in the name of patch fixing bug 6934356. diffstat: ChangeLog | 8 + Makefile.am | 2 +- patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch | 290 ++++++++++ patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch | 290 ---------- 4 files changed, 299 insertions(+), 291 deletions(-) diffs (truncated from 621 to 500 lines): diff -r 7c0028a7e2a3 -r fbfd59dbdf30 ChangeLog --- a/ChangeLog Wed Aug 10 16:33:51 2011 +0200 +++ b/ChangeLog Thu Aug 11 10:11:19 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-11 Pavel Tisnovsky + + * Makefile.am: fixed typo in patch name + * patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch: + Deleted + * patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch: + Added as replacement of deleted patch file. + 2011-08-10 Xerxes R??nby JamVM diff -r 7c0028a7e2a3 -r fbfd59dbdf30 Makefile.am --- a/Makefile.am Wed Aug 10 16:33:51 2011 +0200 +++ b/Makefile.am Thu Aug 11 10:11:19 2011 +0200 @@ -371,7 +371,7 @@ 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/6934356-Vector_writeObject_serialization_DL.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 7c0028a7e2a3 -r fbfd59dbdf30 patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch Thu Aug 11 10:11:19 2011 +0200 @@ -0,0 +1,293 @@ +# HG changeset patch +# User mduigou +# Date 1297708731 28800 +# Node ID 28037efa90a3ac3740897685b238f4a3318c237e +# Parent 21a1e86dedc2091d47562a676a19f72bbc58c0bf +6934356: Vector.writeObject() serialization may deadlock +Summary: No longer synchronize on self while writing other objects. +Reviewed-by: alanb, forax, mduigou, peterjones +Contributed-by: Neil Richards + +diff -r 21a1e86dedc2 -r 28037efa90a3 src/share/classes/java/util/Vector.java +--- openjdk.orig/jdk/src/share/classes/java/util/Vector.java Fri Feb 11 17:09:35 2011 -0800 ++++ openjdk/jdk/src/share/classes/java/util/Vector.java Mon Feb 14 10:38:51 2011 -0800 +@@ -1027,13 +1027,21 @@ + + /** + * Save the state of the {@code Vector} instance to a stream (that +- * is, serialize it). This method is present merely for synchronization. +- * It just calls the default writeObject method. ++ * is, serialize it). ++ * This method performs synchronization to ensure the consistency ++ * of the serialized data. + */ +- private synchronized void writeObject(java.io.ObjectOutputStream s) +- throws java.io.IOException +- { +- s.defaultWriteObject(); ++ private void writeObject(java.io.ObjectOutputStream s) ++ throws java.io.IOException { ++ final java.io.ObjectOutputStream.PutField fields = s.putFields(); ++ final Object[] data; ++ synchronized (this) { ++ fields.put("capacityIncrement", capacityIncrement); ++ fields.put("elementCount", elementCount); ++ data = elementData.clone(); ++ } ++ fields.put("elementData", data); ++ s.writeFields(); + } + + /** +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SerializationDeadlock.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/util/Vector/SerializationDeadlock.java Mon Feb 14 10:38:51 2011 -0800 +@@ -0,0 +1,157 @@ ++/* ++ * Copyright (c) 2010, 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. ++ */ ++ ++/* ++ * Portions Copyright (c) 2010, 2011 IBM Corporation ++ */ ++ ++/* ++ * @test ++ * @bug 6934356 ++ * @summary Serializing Vector objects which refer to each other should not be able to deadlock. ++ * @author Neil Richards , ++ */ ++ ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.io.ObjectOutputStream; ++import java.io.PrintWriter; ++import java.io.Serializable; ++import java.io.StringWriter; ++import java.util.ArrayList; ++import java.util.List; ++import java.util.Vector; ++import java.util.concurrent.CyclicBarrier; ++ ++public class SerializationDeadlock { ++ public static void main(final String[] args) throws Exception { ++ // Test for Vector serialization deadlock ++ final Vector v1 = new Vector(); ++ final Vector v2 = new Vector(); ++ final TestBarrier testStart = new TestBarrier(3); ++ ++ // Populate the vectors so that they refer to each other ++ v1.add(testStart); ++ v1.add(v2); ++ v2.add(testStart); ++ v2.add(v1); ++ ++ final CyclicBarrier testEnd = new CyclicBarrier(3); ++ final TestThread t1 = new TestThread(v1, testEnd); ++ final TestThread t2 = new TestThread(v2, testEnd); ++ ++ t1.start(); ++ t2.start(); ++ ++ // Wait for both test threads to have initiated serialization ++ // of the 'testStart' object (and hence of both 'v1' and 'v2') ++ testStart.await(); ++ ++ // Wait for both test threads to successfully finish serialization ++ // of 'v1' and 'v2'. ++ System.out.println("Waiting for Vector serialization to complete ..."); ++ System.out.println("(This test will hang if serialization deadlocks)"); ++ testEnd.await(); ++ System.out.println("Test PASSED: serialization completed successfully"); ++ ++ TestThread.handleExceptions(); ++ } ++ ++ static final class TestBarrier extends CyclicBarrier ++ implements Serializable { ++ public TestBarrier(final int count) { ++ super(count); ++ } ++ ++ private void writeObject(final ObjectOutputStream oos) ++ throws IOException { ++ oos.defaultWriteObject(); ++ // Wait until all test threads have started serializing data ++ try { ++ await(); ++ } catch (final Exception e) { ++ throw new IOException("Test ERROR: Unexpected exception caught", e); ++ } ++ } ++ } ++ ++ static final class TestThread extends Thread { ++ private static final List exceptions = new ArrayList(); ++ ++ private final Vector vector; ++ private final CyclicBarrier testEnd; ++ ++ public TestThread(final Vector vector, final CyclicBarrier testEnd) { ++ this.vector = vector; ++ this.testEnd = testEnd; ++ setDaemon(true); ++ } ++ ++ public void run() { ++ try { ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); ++ ++ oos.writeObject(vector); ++ oos.close(); ++ } catch (final IOException ioe) { ++ addException(ioe); ++ } finally { ++ try { ++ testEnd.await(); ++ } catch (Exception e) { ++ addException(e); ++ } ++ } ++ } ++ ++ private static synchronized void addException(final Exception exception) { ++ exceptions.add(exception); ++ } ++ ++ public static synchronized void handleExceptions() { ++ if (false == exceptions.isEmpty()) { ++ throw new RuntimeException(getErrorText(exceptions)); ++ } ++ } ++ ++ private static String getErrorText(final List exceptions) { ++ final StringWriter sw = new StringWriter(); ++ final PrintWriter pw = new PrintWriter(sw); ++ ++ pw.println("Test ERROR: Unexpected exceptions thrown on test threads:"); ++ for (Exception exception : exceptions) { ++ pw.print("\t"); ++ pw.println(exception); ++ for (StackTraceElement element : exception.getStackTrace()) { ++ pw.print("\t\tat "); ++ pw.println(element); ++ } ++ } ++ ++ pw.close(); ++ return sw.toString(); ++ } ++ } ++} ++ +diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SimpleSerialization.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/util/Vector/SimpleSerialization.java Mon Feb 14 10:38:51 2011 -0800 +@@ -0,0 +1,87 @@ ++/* ++ * Copyright (c) 2010, 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. ++ */ ++ ++/* ++ * Portions Copyright (c) 2010, 2011 IBM Corporation ++ */ ++ ++/* ++ * @test ++ * @bug 6934356 ++ * @summary A serialized Vector can be successfully de-serialized. ++ * @author Neil Richards , ++ */ ++ ++import java.io.ByteArrayInputStream; ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.io.ObjectInputStream; ++import java.io.ObjectOutputStream; ++import java.io.PrintWriter; ++import java.io.StringWriter; ++import java.util.Vector; ++ ++public class SimpleSerialization { ++ public static void main(final String[] args) throws Exception { ++ final Vector v1 = new Vector(); ++ ++ v1.add("entry1"); ++ v1.add("entry2"); ++ ++ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); ++ final ObjectOutputStream oos = new ObjectOutputStream(baos); ++ ++ oos.writeObject(v1); ++ oos.close(); ++ ++ final byte[] data = baos.toByteArray(); ++ final ByteArrayInputStream bais = new ByteArrayInputStream(data); ++ final ObjectInputStream ois = new ObjectInputStream(bais); ++ ++ final Object deserializedObject = ois.readObject(); ++ ois.close(); ++ ++ if (false == v1.equals(deserializedObject)) { ++ throw new RuntimeException(getFailureText(v1, deserializedObject)); ++ } ++ } ++ ++ private static String getFailureText(final Object orig, final Object copy) { ++ final StringWriter sw = new StringWriter(); ++ final PrintWriter pw = new PrintWriter(sw); ++ ++ pw.println("Test FAILED: Deserialized object is not equal to the original object"); ++ pw.print("\tOriginal: "); ++ printObject(pw, orig).println(); ++ pw.print("\tCopy: "); ++ printObject(pw, copy).println(); ++ ++ pw.close(); ++ return sw.toString(); ++ } ++ ++ private static PrintWriter printObject(final PrintWriter pw, final Object o) { ++ pw.printf("%s@%08x", o.getClass().getName(), System.identityHashCode(o)); ++ return pw; ++ } ++} diff -r 7c0028a7e2a3 -r fbfd59dbdf30 patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch --- a/patches/openjdk/6934356_Vector_writeObject_serialization_DL.patch Wed Aug 10 16:33:51 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,293 +0,0 @@ -# HG changeset patch -# User mduigou -# Date 1297708731 28800 -# Node ID 28037efa90a3ac3740897685b238f4a3318c237e -# Parent 21a1e86dedc2091d47562a676a19f72bbc58c0bf -6934356: Vector.writeObject() serialization may deadlock -Summary: No longer synchronize on self while writing other objects. -Reviewed-by: alanb, forax, mduigou, peterjones -Contributed-by: Neil Richards - -diff -r 21a1e86dedc2 -r 28037efa90a3 src/share/classes/java/util/Vector.java ---- openjdk.orig/jdk/src/share/classes/java/util/Vector.java Fri Feb 11 17:09:35 2011 -0800 -+++ openjdk/jdk/src/share/classes/java/util/Vector.java Mon Feb 14 10:38:51 2011 -0800 -@@ -1027,13 +1027,21 @@ - - /** - * Save the state of the {@code Vector} instance to a stream (that -- * is, serialize it). This method is present merely for synchronization. -- * It just calls the default writeObject method. -+ * is, serialize it). -+ * This method performs synchronization to ensure the consistency -+ * of the serialized data. - */ -- private synchronized void writeObject(java.io.ObjectOutputStream s) -- throws java.io.IOException -- { -- s.defaultWriteObject(); -+ private void writeObject(java.io.ObjectOutputStream s) -+ throws java.io.IOException { -+ final java.io.ObjectOutputStream.PutField fields = s.putFields(); -+ final Object[] data; -+ synchronized (this) { -+ fields.put("capacityIncrement", capacityIncrement); -+ fields.put("elementCount", elementCount); -+ data = elementData.clone(); -+ } -+ fields.put("elementData", data); -+ s.writeFields(); - } - - /** -diff -r 21a1e86dedc2 -r 28037efa90a3 test/java/util/Vector/SerializationDeadlock.java ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/test/java/util/Vector/SerializationDeadlock.java Mon Feb 14 10:38:51 2011 -0800 -@@ -0,0 +1,157 @@ -+/* -+ * Copyright (c) 2010, 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. -+ */ -+ -+/* -+ * Portions Copyright (c) 2010, 2011 IBM Corporation -+ */ -+ -+/* -+ * @test -+ * @bug 6934356 -+ * @summary Serializing Vector objects which refer to each other should not be able to deadlock. -+ * @author Neil Richards , -+ */ -+ -+import java.io.ByteArrayOutputStream; -+import java.io.IOException; -+import java.io.ObjectOutputStream; -+import java.io.PrintWriter; -+import java.io.Serializable; -+import java.io.StringWriter; -+import java.util.ArrayList; -+import java.util.List; -+import java.util.Vector; -+import java.util.concurrent.CyclicBarrier; -+ -+public class SerializationDeadlock { -+ public static void main(final String[] args) throws Exception { -+ // Test for Vector serialization deadlock -+ final Vector v1 = new Vector(); -+ final Vector v2 = new Vector(); -+ final TestBarrier testStart = new TestBarrier(3); -+ -+ // Populate the vectors so that they refer to each other -+ v1.add(testStart); -+ v1.add(v2); -+ v2.add(testStart); -+ v2.add(v1); -+ -+ final CyclicBarrier testEnd = new CyclicBarrier(3); -+ final TestThread t1 = new TestThread(v1, testEnd); -+ final TestThread t2 = new TestThread(v2, testEnd); -+ -+ t1.start(); -+ t2.start(); -+ -+ // Wait for both test threads to have initiated serialization -+ // of the 'testStart' object (and hence of both 'v1' and 'v2') -+ testStart.await(); -+ -+ // Wait for both test threads to successfully finish serialization -+ // of 'v1' and 'v2'. -+ System.out.println("Waiting for Vector serialization to complete ..."); -+ System.out.println("(This test will hang if serialization deadlocks)"); -+ testEnd.await(); -+ System.out.println("Test PASSED: serialization completed successfully"); -+ -+ TestThread.handleExceptions(); -+ } -+ -+ static final class TestBarrier extends CyclicBarrier -+ implements Serializable { -+ public TestBarrier(final int count) { -+ super(count); -+ } -+ -+ private void writeObject(final ObjectOutputStream oos) -+ throws IOException { -+ oos.defaultWriteObject(); -+ // Wait until all test threads have started serializing data -+ try { -+ await(); -+ } catch (final Exception e) { -+ throw new IOException("Test ERROR: Unexpected exception caught", e); -+ } -+ } -+ } -+ -+ static final class TestThread extends Thread { -+ private static final List exceptions = new ArrayList(); -+ -+ private final Vector vector; -+ private final CyclicBarrier testEnd; -+ -+ public TestThread(final Vector vector, final CyclicBarrier testEnd) { -+ this.vector = vector; -+ this.testEnd = testEnd; -+ setDaemon(true); -+ } -+ -+ public void run() { -+ try { -+ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); -+ final ObjectOutputStream oos = new ObjectOutputStream(baos); -+ -+ oos.writeObject(vector); -+ oos.close(); -+ } catch (final IOException ioe) { -+ addException(ioe); -+ } finally { -+ try { -+ testEnd.await(); -+ } catch (Exception e) { -+ addException(e); -+ } -+ } -+ } -+ From xranby at icedtea.classpath.org Thu Aug 11 02:29:38 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Thu, 11 Aug 2011 09:29:38 +0000 Subject: /hg/buildbot: Add check-jdk to most of the icedtea6 builders. Message-ID: changeset abc2e1778aef in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=abc2e1778aef author: Xerxes Ranby date: Thu Aug 11 11:29:29 2011 +0200 Add check-jdk to most of the icedtea6 builders. Increased timeout for check-jdk to 7200sec. Some of the jtreg nio tests like FindDecoderBugs and FindEncoderBugs do take a lot of time to compete. diffstat: icedtea/master.cfg | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 39 insertions(+), 9 deletions(-) diffs (156 lines): diff -r ce2d40e0fa04 -r abc2e1778aef icedtea/master.cfg --- a/icedtea/master.cfg Mon Aug 08 21:35:00 2011 +0200 +++ b/icedtea/master.cfg Thu Aug 11 11:29:29 2011 +0200 @@ -53,9 +53,10 @@ c['schedulers'] = [] # "Quick" schedulers for icedtea6 and 7 -# Schedules a quick build (no jdk-check, no documentation) -# after waiting 5 minutes for any more changes. Should finish in less -# than an hour. +# Schedules a quick build (no bootstrap, no documentation) +# after waiting 5 minutes for any more changes. +# the x85_64 builders also skips check-jdk to prevent server hickups since +# they are running on the buildmaster. c['schedulers'].append(Scheduler(name="icedtea6-quick", branch="icedtea6", treeStableTimer=5*60, builderNames=["icedtea6-squeeze-x86_64-quick", @@ -379,6 +380,9 @@ f3an.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3an.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3an7 = factory.BuildFactory() f3an7.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -401,6 +405,9 @@ f3an7.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3an7.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3anc = factory.BuildFactory() f3anc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -417,7 +424,6 @@ "--enable-cacao"], workdir="build")) f3anc.addStep(Compile(command=["make", - "CACAO_CONFIGURE_ARGS=\"--enable-softfloat\""], workdir="build")) f3anc.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", @@ -425,6 +431,9 @@ f3anc.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3anc.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3anj = factory.BuildFactory() f3anj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -447,6 +456,9 @@ f3anj.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3anj.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3ans = factory.BuildFactory() f3ans.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -469,6 +481,9 @@ f3ans.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3ans.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3lz = factory.BuildFactory() f3lz.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -492,6 +507,9 @@ f3lz.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3lz.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3ls = factory.BuildFactory() f3ls.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -517,7 +535,7 @@ workdir="build", timeout=2400)) f3ls.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", - workdir="build", timeout=2400)) + workdir="build", timeout=7200)) f3lc = factory.BuildFactory() f3lc.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -543,7 +561,7 @@ workdir="build", timeout=2400)) f3lc.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", - workdir="build", timeout=2400)) + workdir="build", timeout=7200)) f3lj = factory.BuildFactory() f3lj.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -568,7 +586,7 @@ workdir="build", timeout=2400)) f3lj.addStep(JTRegCheck(command=["make", "check-jdk"], description="check-jdk", - workdir="build", timeout=2400)) + workdir="build", timeout=7200)) f3a5 = factory.BuildFactory() f3a5.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -590,7 +608,10 @@ workdir="build")) f3a5.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", - workdir="build")) + workdir="build", timeout=2400)) +f3a5.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3a5c = factory.BuildFactory() f3a5c.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -615,6 +636,9 @@ f3a5c.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build")) +f3a5c.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3a5j = factory.BuildFactory() f3a5j.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -637,6 +661,9 @@ f3a5j.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", workdir="build", timeout=2400)) +f3a5j.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) f3a5s = factory.BuildFactory() f3a5s.addStep(Mercurial(baseURL=hgrepo, workdir="src", mode="update")) @@ -658,7 +685,10 @@ workdir="build")) f3a5s.addStep(JTRegCheck(command=["make", "check-langtools"], description="check-langtools", - workdir="build")) + workdir="build", timeout=2400)) +f3a5s.addStep(JTRegCheck(command=["make", "check-jdk"], + description="check-jdk", + workdir="build", timeout=7200)) icedtea6_builder_quick = { 'name': "icedtea6-squeeze-x86_64-quick", 'slavenames': ["squeeze-x86_64"], From ptisnovs at redhat.com Thu Aug 11 02:51:50 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 11 Aug 2011 11:51:50 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "7036582: Improve test coverage of java.math.BigDecimal" Message-ID: <4E43A636.9020109@redhat.com> Greetings, here's another backport I'd like to push to IcedTea6 HEAD: "7036582: Improve test coverage of java.math.BigDecimal". Tested on RHEL 5.x. Please note that this backport does not contains any fix to JDK, it consists only of regression tests improvements and two new tests. ChangeLog entry: 2011-08-11 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch: Backport of 7036582: Improve test coverage of java.math.BigDecimal Can anybody please review this fix? Cheers, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 7036582_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110811/281c864b/7036582_hg.diff From xranby at icedtea.classpath.org Thu Aug 11 04:00:03 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Thu, 11 Aug 2011 11:00:03 +0000 Subject: /hg/buildbot: fix master.cfg Message-ID: changeset 4490440ca358 in /hg/buildbot details: http://icedtea.classpath.org/hg/buildbot?cmd=changeset;node=4490440ca358 author: Xerxes Ranby date: Thu Aug 11 13:00:04 2011 +0200 fix master.cfg diffstat: icedtea/master.cfg | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diffs (13 lines): diff -r abc2e1778aef -r 4490440ca358 icedtea/master.cfg --- a/icedtea/master.cfg Thu Aug 11 11:29:29 2011 +0200 +++ b/icedtea/master.cfg Thu Aug 11 13:00:04 2011 +0200 @@ -423,8 +423,7 @@ "--disable-docs", "--enable-cacao"], workdir="build")) -f3anc.addStep(Compile(command=["make", - workdir="build")) +f3anc.addStep(Compile(workdir="build")) f3anc.addStep(JTRegCheck(command=["make", "check-hotspot"], description="check-hotspot", workdir="build")) From ptisnovs at icedtea.classpath.org Thu Aug 11 04:18:07 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 11 Aug 2011 11:18:07 +0000 Subject: /hg/gfx-test: * Makefile: added new classes to compile Message-ID: changeset 554e6adab4f4 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=554e6adab4f4 author: Pavel Tisnovsky date: Thu Aug 11 13:19:50 2011 +0200 * Makefile: added new classes to compile * src/org/gfxtest/framework/CommonRenderingStyles.java: Added class containing static methods for setting various rendering styles used for drawing graphics entities in gfx. tests. * src/org/gfxtest/framework/CommonShapesRenderer.java: Added class containing static methods for rendering common shapes onto specified graphics canvas. * src/org/gfxtest/framework/GfxTest.java: Javadoc. diffstat: ChangeLog | 11 + Makefile | 2 + src/org/gfxtest/framework/CommonRenderingStyles.java | 187 +++++++++++ src/org/gfxtest/framework/CommonShapesRenderer.java | 313 +++++++++++++++++++ src/org/gfxtest/framework/GfxTest.java | 34 +- 5 files changed, 543 insertions(+), 4 deletions(-) diffs (truncated from 625 to 500 lines): diff -r 2d2f7eecc246 -r 554e6adab4f4 ChangeLog --- a/ChangeLog Tue Aug 09 16:46:47 2011 +0200 +++ b/ChangeLog Thu Aug 11 13:19:50 2011 +0200 @@ -1,3 +1,14 @@ +2011-08-11 Pavel Tisnovsky + * Makefile: added new classes to compile + * src/org/gfxtest/framework/CommonRenderingStyles.java: + Added class containing static methods for setting various rendering + styles used for drawing graphics entities in gfx. tests. + * src/org/gfxtest/framework/CommonShapesRenderer.java: + Added class containing static methods for rendering common shapes onto + specified graphics canvas. + * src/org/gfxtest/framework/GfxTest.java: + Javadoc. + 2011-08-09 Pavel Tisnovsky * src/org/gfxtest/testsuites/ColorPaint.java: Created new test suite containing 12 gfx.tests. diff -r 2d2f7eecc246 -r 554e6adab4f4 Makefile --- a/Makefile Tue Aug 09 16:46:47 2011 +0200 +++ b/Makefile Thu Aug 11 13:19:50 2011 +0200 @@ -75,6 +75,8 @@ $(CLASSES)/$(FRAMEWORK_DIR)/annotations/Transformations.class \ $(CLASSES)/$(FRAMEWORK_DIR)/annotations/Transformation.class \ $(CLASSES)/$(FRAMEWORK_DIR)/annotations/Zoom.class \ + $(CLASSES)/$(FRAMEWORK_DIR)/CommonRenderingStyles.class \ + $(CLASSES)/$(FRAMEWORK_DIR)/CommonShapesRenderer.class \ $(CLASSES)/$(FRAMEWORK_DIR)/EntityRenderingStyle.class \ $(CLASSES)/$(FRAMEWORK_DIR)/TestResult.class \ $(CLASSES)/$(FRAMEWORK_DIR)/ParameterNotFoundException.class \ diff -r 2d2f7eecc246 -r 554e6adab4f4 src/org/gfxtest/framework/CommonRenderingStyles.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Thu Aug 11 13:19:50 2011 +0200 @@ -0,0 +1,187 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.framework; + +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Graphics2D; + + + +/** + * This class contains static methods for setting various rendering styles used + * for drawing entities in gfx. tests. + * + * @author Pavel Tisnovsky + */ +public class CommonRenderingStyles +{ + /** + * Stroke width used for drawing "thick" curves. + */ + private static final int STROKE_WIDTH_THICK = 10; + + /** + * Stroke width used for drawing extra "thick" curves. + */ + private static final int STROKE_WIDTH_EXTRA_THICK = 30; + + /** + * Default stroke color. + */ + private static final Color DEFAULT_STROKE_COLOR = Color.BLACK; + + /** + * Default fill color. + */ + private static final Color DEFAULT_FILL_COLOR = Color.GREEN.darker(); + + /** + * Set default stroke color. + * + * @param graphics + * graphics context for image + */ + public static void setStrokeColor(Graphics2D graphics) + { + graphics.setColor(DEFAULT_STROKE_COLOR); + } + + /** + * Set default fill color. + * + * @param graphics + * graphics context for image + */ + public static void setFillColor(Graphics2D graphics) + { + graphics.setPaint(DEFAULT_FILL_COLOR); + } + + /** + * Set zero pixels wide stroke and default cap and join style. + * + * @param graphics + * graphics context for image + */ + public static void setStrokeZeroThick(Graphics2D graphics) + { + graphics.setStroke(new BasicStroke(0)); + } + + /** + * Set 10 pixels wide stroke and default cap and join style. + * + * @param graphics + * graphics context for image + */ + public static void setStrokeThickWidth(Graphics2D graphics) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + } + + /** + * Set 10 pixels wide stroke and specified cap style. + * + * @param graphics + * graphics context for image + * @param capStyle + * the decoration of the ends of a BasicStroke + */ + public static void setStrokeThickWidth(Graphics2D graphics, int capStyle) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, capStyle, BasicStroke.JOIN_BEVEL)); + } + + /** + * Set 10 pixels wide stroke and specified cap style and join style. + * + * @param graphics + * graphics context for image + * @param capStyle + * the decoration of the ends of a BasicStroke + * @param joinStyle + * the decoration applied where path segments meet + */ + public static void setStrokeThickWidth(Graphics2D graphics, int capStyle, int joinStyle) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, capStyle, joinStyle)); + } + + /** + * Set 30 pixels wide stroke. + * + * @param graphics + * graphics context for image + */ + public static void setStrokeExtraThickWidth(Graphics2D graphics) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK)); + } + + /** + * Set 30 pixels wide stroke and specified cap style. + * + * @param graphics + * graphics context for image + * @param capStyle + * the decoration of the ends of a BasicStroke + */ + public static void setStrokeExtraThickWidth(Graphics2D graphics, int capStyle) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, capStyle, BasicStroke.JOIN_BEVEL)); + } + + /** + * Set 30 pixels wide stroke and specified cap style and join style. + * + * @param graphics + * graphics context for image + * @param capStyle + * the decoration of the ends of a BasicStroke + * @param joinStyle + * the decoration applied where path segments meet + */ + public static void setStrokeExtraThickWidth(Graphics2D graphics, int capStyle, int joinStyle) + { + graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, capStyle, joinStyle)); + } +} diff -r 2d2f7eecc246 -r 554e6adab4f4 src/org/gfxtest/framework/CommonShapesRenderer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/framework/CommonShapesRenderer.java Thu Aug 11 13:19:50 2011 +0200 @@ -0,0 +1,313 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.framework; + +import java.awt.Graphics2D; +import java.awt.geom.Path2D; + + + +/** + * This class contains static methods for rendering common shapes (circles, + * rectangles etc.) onto specified graphics canvas. These methods can be called + * from gfx. tests. + * + * @author Pavel Tisnovsky + */ +public class CommonShapesRenderer +{ + /** + * Radius of all four corners of rounded rectangle. + */ + private static final int ROUND_RECT_RADIUS = 80; + + /** + * Calculate radius of circle/arc/rectangle based on image size. + * + * @param image + * image to which two dimensional shape is to be rendered + * @return radius + */ + private static int calculateRadius(TestImage image) + { + return Math.min(image.getWidth(), image.getHeight()) / 3; + } + + /** + * Draw cross into graphics canvas, to mark shape's end points, curves's + * control points etc. Size of cross is stored in constant CROSS_SIZE. + * + * @param graphics + * graphics context for the image created by test case + * @param x + * x-coordinate of the cross center + * @param y + * y-coordinate of the cross center + * @param size + * size of cross (measured in pixels) + */ + private static void drawCross(Graphics2D graphics, int x, int y) + { + GfxTest.drawCross(graphics, x, y); + } + + /** + * Draw cross into graphics canvas, to mark shape's end points, curves's + * control points etc. Size of cross is stored in constant CROSS_SIZE. + * + * @param graphics + * graphics context for the image created by test case + * @param x + * x-coordinate of the cross center + * @param y + * y-coordinate of the cross center + */ + private static void drawCross(Graphics2D graphics, int x, int y, int crossSize) + { + GfxTest.drawCross(graphics, x, y, crossSize); + } + + /** + * Draw crosses at interesting points of image. + * + * @param graphics + * graphics context for image + * @param xc + * center of image + * @param yc + * center of image + * @param radius + * radius of shape(s) + */ + public static void drawCrossesForBasicShapes(Graphics2D graphics, int xc, int yc, int radius) + { + // move in vertical direction + for (int y = yc - radius; y <= yc + radius; y += radius) + { + // move in horizontal direction + for (int x = xc - radius; x <= xc + radius; x += radius) + { + drawCross(graphics, x, y); + } + } + } + + /** + * Draw circle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawCircle(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the circle + graphics.drawOval(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled circle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawFilledCircle(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled circle + graphics.fillOval(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled arc onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawFilledArc(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled arc + graphics.fillArc(xc - radius, yc - radius, radius << 1, radius << 1, 0, 135 + 180); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled rectangle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawFilledRect(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled rectangle + graphics.fillRect(xc - radius, yc - radius, radius << 1, radius << 1); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled rounded rectangle onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawFilledRoundRect(TestImage image, Graphics2D graphics) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = calculateRadius(image); + + // draw the filled rectangle round rectangle + graphics.fillRoundRect(xc - radius, yc - radius, radius << 1, radius << 1, ROUND_RECT_RADIUS, ROUND_RECT_RADIUS); + + // draw crosses at interesting points of image + drawCrossesForBasicShapes(graphics, xc, yc, radius); + } + + /** + * Draw filled polygon onto the graphics canvas. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void drawFilledPolygon(TestImage image, Graphics2D graphics) + { + // calculate image size + int w = image.getWidth(); + int h = image.getHeight(); + + // polygon vertexes + int xPoints[] = new int[] { GfxTest.OFFSET, w >> 1, w >> 1, w - GfxTest.OFFSET }; + int yPoints[] = new int[] { h >> 1, GfxTest.OFFSET, h - GfxTest.OFFSET, h >> 1 }; + + // draw the polygon + graphics.fillPolygon(xPoints, yPoints, xPoints.length); + + // draw crosses at interesting points of image + drawCross(graphics, GfxTest.OFFSET, h >> 1, GfxTest.CROSS_SIZE); From bugzilla-daemon at icedtea.classpath.org Thu Aug 11 06:03:09 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 11 Aug 2011 13:03:09 +0000 Subject: [Bug 770] Zero + icedtea7 7033954 regression - missing mapfile-zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=770 --- Comment #2 from Xerxes R?nby 2011-08-11 13:03:09 --- (In reply to comment #1) > patch at > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-July/015090.html > Thank you Matthias! I have pushed your fix to: http://icedtea.classpath.org/hg/icedtea7-forest/jdk/rev/55a2cf00dc6a This bug will be fixed on the next changesets bump in the icedtea7 tree. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Thu Aug 11 06:11:43 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 11 Aug 2011 15:11:43 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "7036582: Improve test coverage of java.math.BigDecimal" In-Reply-To: <4E43A636.9020109@redhat.com> References: <4E43A636.9020109@redhat.com> Message-ID: <4E43D50F.9010000@redhat.com> On 08/11/2011 11:51 AM, Pavel Tisnovsky wrote: > Greetings, > > here's another backport I'd like to push to IcedTea6 HEAD: > "7036582: Improve test coverage of java.math.BigDecimal". > Tested on RHEL 5.x. > > Please note that this backport does not contains any fix to JDK, it > consists only of regression tests improvements and two new tests. > > ChangeLog entry: > > 2011-08-11 Pavel Tisnovsky > > > > * Makefile.am: added new patch > > * NEWS: updated with backport > > * > patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch: > Backport of 7036582: Improve test coverage of > java.math.BigDecimal > > > Can anybody please review this fix? > > Cheers, > Pavel > Approved J. From ahughes at redhat.com Thu Aug 11 06:35:43 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 11 Aug 2011 14:35:43 +0100 Subject: Reviewer needed: backport to IcedTea6 HEAD: "7036582: Improve test coverage of java.math.BigDecimal" In-Reply-To: <4E43A636.9020109@redhat.com> References: <4E43A636.9020109@redhat.com> Message-ID: <20110811133543.GC7669@rivendell.middle-earth.co.uk> On 11:51 Thu 11 Aug , Pavel Tisnovsky wrote: > Greetings, > > here's another backport I'd like to push to IcedTea6 HEAD: > "7036582: Improve test coverage of java.math.BigDecimal". > Tested on RHEL 5.x. > > Please note that this backport does not contains any fix to JDK, it > consists only of regression tests improvements and two new tests. > > ChangeLog entry: > > 2011-08-11 Pavel Tisnovsky > > > > * Makefile.am: added new patch > > * NEWS: updated with backport > > * > patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch: > Backport of 7036582: Improve test coverage of > java.math.BigDecimal > > > Can anybody please review this fix? > > Cheers, > Pavel > Approved. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Thu Aug 11 06:36:57 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 11 Aug 2011 14:36:57 +0100 Subject: Request to backport 2 Kerberos related fixes In-Reply-To: <20110810205921.GD20852@redhat.com> References: <20110810205921.GD20852@redhat.com> Message-ID: <20110811133657.GD7669@rivendell.middle-earth.co.uk> On 16:59 Wed 10 Aug , Deepak Bhole wrote: > Hi, > > I would like to backport the following fixes from OpenJDK7 to OpenJDK6: > > -- > > 6815182: GSSAPI/SPNEGO does not work with server using MIT Kerberos library > > http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/9d5cce463fa0 > > changeset: 949:9d5cce463fa0 > user: weijun > date: Fri Mar 13 09:20:56 2009 +0800 > summary: 6815182: GSSAPI/SPNEGO does not work with server using MIT > Kerberos library > > -- > > 6979329: CCacheInputStream fails to read ticket cache files from Kerberos 1.8.1: > > http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/c1734c00a8ba > > changeset: 3122:c1734c00a8ba > user: weijun > date: Mon Nov 22 09:43:58 2010 +0800 > summary: 6979329: CCacheInputStream fails to read ticket cache files > from Kerberos 1.8.1 > > -- > > I had to update the copyright headers to apply it correctly. Updated > webrevs: > http://cr.openjdk.java.net/~dbhole/6815182-JDK6.00/ > http://cr.openjdk.java.net/~dbhole/6979329-JDK6.00/ > > Okay to push? > > Cheers, > Deepak Have you backported these to IcedTea6? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Thu Aug 11 07:48:52 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 11 Aug 2011 14:48:52 +0000 Subject: /hg/icedtea6: S7036582: Improve test coverage of java.math.BigDe... Message-ID: changeset 4c641e5e379d in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4c641e5e379d author: ptisnovs date: Thu Aug 11 16:48:40 2011 +0200 S7036582: Improve test coverage of java.math.BigDecimal diffstat: ChangeLog | 7 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch | 6163 ++++++++++ 4 files changed, 6173 insertions(+), 1 deletions(-) diffs (truncated from 6210 to 500 lines): diff -r fbfd59dbdf30 -r 4c641e5e379d ChangeLog --- a/ChangeLog Thu Aug 11 10:11:19 2011 +0200 +++ b/ChangeLog Thu Aug 11 16:48:40 2011 +0200 @@ -1,3 +1,10 @@ +2011-08-11 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch: + Backport of 7036582: Improve test coverage of java.math.BigDecimal + 2011-08-11 Pavel Tisnovsky * Makefile.am: fixed typo in patch name diff -r fbfd59dbdf30 -r 4c641e5e379d Makefile.am --- a/Makefile.am Thu Aug 11 10:11:19 2011 +0200 +++ b/Makefile.am Thu Aug 11 16:48:40 2011 +0200 @@ -371,7 +371,8 @@ 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/6934356-Vector_writeObject_serialization_DL.patch \ + patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r fbfd59dbdf30 -r 4c641e5e379d NEWS --- a/NEWS Thu Aug 11 10:11:19 2011 +0200 +++ b/NEWS Thu Aug 11 16:48:40 2011 +0200 @@ -364,6 +364,7 @@ - S5047314: [Col] Collator.compare() runs indefinitely for a certain set of Thai strings - S6669869: Beans.isDesignTime() and other queries should be per-AppContext - S6934356: Vector.writeObject() serialization may deadlock + - S7036582: Improve test coverage of java.math.BigDecimal * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - CA159: Exception handler blocks / register mixup. diff -r fbfd59dbdf30 -r 4c641e5e379d patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch Thu Aug 11 16:48:40 2011 +0200 @@ -0,0 +1,6168 @@ +# HG changeset patch +# User alanb +# Date 1303044573 -3600 +# Node ID 007b2535a7f5678dac753960154b39d4530d5d4c +# Parent 54d9513f87a40f0a0954222cf1286c012153c661 +7036582: Improve test coverage of java.math.BigDecimal +Reviewed-by: darcy +Contributed-by: sergey.kuksenko at oracle.com + +diff -r 54d9513f87a4 -r 007b2535a7f5 test/java/math/BigDecimal/DivideMcTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigDecimal/DivideMcTests.java Sun Apr 17 13:49:33 2011 +0100 +@@ -0,0 +1,5797 @@ ++/* ++ * 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 ++ * @bug 7036582 ++ * @summary Some tests for the divide(..,MathContext) method. ++ * @run main DivideMcTests ++ * @run main/othervm -XX:+AggressiveOpts DivideMcTests ++ * @author Sergey V. Kuksenko ++ */ ++ ++import java.math.BigDecimal; ++import java.math.MathContext; ++import java.math.RoundingMode; ++ ++ ++public class DivideMcTests { ++ ++ static String[] value = new String[75]; ++ static String[][] results = new String[75][75]; ++ static { ++ value[0]="11061"; ++ value[1]="5030285645"; ++ value[2]="224198292018431"; ++ value[3]="19226185404220649458"; ++ value[4]="2754593222460641763294400"; ++ value[5]="88290e4"; ++ value[6]="14207e-4"; ++ value[7]="9206524943e4"; ++ value[8]="9637167289e-4"; ++ value[9]="987673128759528e4"; ++ value[10]="270627774630281e-4"; ++ value[11]="81503625886547904651e4"; ++ value[12]="60700032235397315737e-4"; ++ value[13]="6477954854329556663533122e4"; ++ value[14]="8056417378028557868905113e-4"; ++ value[15]="74996e8"; ++ value[16]="65282e-8"; ++ value[17]="6336626690e8"; ++ value[18]="8318166778e-8"; ++ value[19]="983114227763768e8"; ++ value[20]="245802997834566e-8"; ++ value[21]="52727924122290902686e8"; ++ value[22]="42785567085625398961e-8"; ++ value[23]="4810906998143118279742863e8"; ++ value[24]="8077506080975981172874361e-8"; ++ value[25]="80689e12"; ++ value[26]="30125e-12"; ++ value[27]="6921467144e12"; ++ value[28]="1953347181e-12"; ++ value[29]="405471649883944e12"; ++ value[30]="866720590936024e-12"; ++ value[31]="33231666378140173438e12"; ++ value[32]="42631490906110209257e-12"; ++ value[33]="7723154992826793726050991e12"; ++ value[34]="1611437259018380210686834e-12"; ++ value[35]="65645e16"; ++ value[36]="31153e-16"; ++ value[37]="7758733150e16"; ++ value[38]="6365465077e-16"; ++ value[39]="727973863299662e16"; ++ value[40]="351084160935215e-16"; ++ value[41]="45470432070181568402e16"; ++ value[42]="97216256670931719037e-16"; ++ value[43]="2520581904836081418366563e16"; ++ value[44]="3700768934485477578987416e-16"; ++ value[45]="28736e20"; ++ value[46]="52779e-20"; ++ value[47]="7904805864e20"; ++ value[48]="6373815349e-20"; ++ value[49]="186651310031326e20"; ++ value[50]="189125880591366e-20"; ++ value[51]="74987916068454915171e20"; ++ value[52]="10554589082317914511e-20"; ++ value[53]="3599986721169840668392202e20"; ++ value[54]="2588106172836128849130551e-20"; ++ value[55]="71080e24"; ++ value[56]="61576e-24"; ++ value[57]="7086656363e24"; ++ value[58]="7703864845e-24"; ++ value[59]="361167296280301e24"; ++ value[60]="149150690375117e-24"; ++ value[61]="78129219923655854302e24"; ++ value[62]="20861932490694515212e-24"; ++ value[63]="9185868654811652011998047e24"; ++ value[64]="1996563690880014012200226e-24"; ++ value[65]="84665e28"; ++ value[66]="94968e-28"; ++ value[67]="2622821029e28"; ++ value[68]="4451579486e-28"; ++ value[69]="590522407411869e28"; ++ value[70]="606293232614518e-28"; ++ value[71]="96628087822208148505e28"; ++ value[72]="24875240094942654314e-28"; ++ value[73]="5099400093819597146233149e28"; ++ value[74]="8906650752845770170008864e-28"; ++ //-------------------------------------------- ++ initResults1(); ++ initResults2(); ++ } ++ ++ private static void initResults1() { ++ results[0][0]="1"; ++ results[0][1]="0.000002198881093560642"; ++ results[0][2]="4.933579065397471E-11"; ++ results[0][3]="5.753091300977375E-16"; ++ results[0][4]="4.015474920147867E-21"; ++ results[0][5]="0.00001252803261977574"; ++ results[0][6]="7785.598648553530"; ++ results[0][7]="1.201430514605841E-10"; ++ results[0][8]="0.01147743903192921"; ++ results[0][9]="1.119904923797219E-15"; ++ results[0][10]="4.087163638363069E-7"; ++ results[0][11]="1.357117536758031E-20"; ++ results[0][12]="1.822239559462666E-12"; ++ results[0][13]="1.707483341383177E-25"; ++ results[0][14]="1.372942771084022E-17"; ++ results[0][15]="1.474878660195210E-9"; ++ results[0][16]="16943414.72381361"; ++ results[0][17]="1.745565983468090E-14"; ++ results[0][18]="132.9740109233477"; ++ results[0][19]="1.125098151123273E-19"; ++ results[0][20]="0.004499945117611804"; ++ results[0][21]="2.097749946374985E-24"; ++ results[0][22]="2.585217575324869E-8"; ++ results[0][23]="2.299150660004288E-29"; ++ results[0][24]="1.369358300583728E-13"; ++ results[0][25]="1.370818822887878E-13"; ++ results[0][26]="367170124481.3278"; ++ results[0][27]="1.598071589430057E-18"; ++ results[0][28]="5662587.842852089"; ++ results[0][29]="2.727934247231818E-23"; ++ results[0][30]="12.76189825841631"; ++ results[0][31]="3.328451806821200E-28"; ++ results[0][32]="0.0002594560913752765"; ++ results[0][33]="1.432186717769276E-33"; ++ results[0][34]="6.864058738928437E-9"; ++ results[0][35]="1.684972198948892E-17"; ++ results[0][36]="3550540878888069"; ++ results[0][37]="1.425619335806130E-22"; ++ results[0][38]="17376577934.52694"; ++ results[0][39]="1.519422682273810E-27"; ++ results[0][40]="315052.6634564146"; ++ results[0][41]="2.432569803367569E-32"; ++ results[0][42]="1.137772670824026"; ++ results[0][43]="4.388272398043467E-37"; ++ results[0][44]="0.00002988838318687904"; ++ results[0][45]="3.849178730512249E-21"; ++ results[0][46]="2.095719888592054E+19"; ++ results[0][47]="1.399275351008165E-26"; ++ results[0][48]="173538130528606.9"; ++ results[0][49]="5.926023234524105E-31"; ++ results[0][50]="5848485656.967753"; ++ results[0][51]="1.475037656720937E-36"; ++ results[0][52]="104798.0164242535"; ++ results[0][53]="3.072511333154488E-41"; ++ results[0][54]="0.4273781391232109"; ++ results[0][55]="1.556133933595948E-25"; ++ results[0][56]="1.796316746784461E+23"; ++ results[0][57]="1.560820707738894E-30"; ++ results[0][58]="1.435772852009322E+18"; ++ results[0][59]="3.062569649555309E-35"; ++ results[0][60]="74159898101586.80"; ++ results[0][61]="1.415731529229177E-40"; ++ results[0][62]="530200162.6615257"; ++ results[0][63]="1.204132174718842E-45"; ++ results[0][64]="5540.018608234184"; ++ results[0][65]="1.306443040217327E-29"; ++ results[0][66]="1.164708112206217E+27"; ++ results[0][67]="4.217214929154817E-34"; ++ results[0][68]="2.484736043641657E+22"; ++ results[0][69]="1.873087263272185E-39"; ++ results[0][70]="1.824364747121068E+17"; ++ results[0][71]="1.144698218633054E-44"; ++ results[0][72]="4446590247082.196"; ++ results[0][73]="2.169078675235893E-49"; ++ results[0][74]="12418809.61422664"; ++ results[1][0]="454776.7511979025"; ++ results[1][1]="1"; ++ results[1][2]="0.00002243677059139446"; ++ results[1][3]="2.616372171203405E-10"; ++ results[1][4]="1.826144638701504E-15"; ++ results[1][5]="5.697457973722958"; ++ results[1][6]="3540709259.519955"; ++ results[1][7]="0.00005463826662224685"; ++ results[1][8]="5219.672435012765"; ++ results[1][9]="5.093067228950338E-10"; ++ results[1][10]="0.1858747001068956"; ++ results[1][11]="6.171855043605175E-15"; ++ results[1][12]="8.287121867567282E-7"; ++ results[1][13]="7.765237267187802E-20"; ++ results[1][14]="6.243824530142372E-12"; ++ results[1][15]="0.0006707405254946931"; ++ results[1][16]="7705471102294.660"; ++ results[1][17]="7.938428269631898E-9"; ++ results[1][18]="60473488.68147447"; ++ results[1][19]="5.116684819466090E-14"; ++ results[1][20]="2046.470421156359"; ++ results[1][21]="9.540079054379898E-19"; ++ results[1][22]="0.01175696850045963"; ++ results[1][23]="1.045600267671264E-23"; ++ results[1][24]="6.227523191653488E-8"; ++ results[1][25]="6.234165307538822E-8"; ++ results[1][26]="1.669804363485477E+17"; ++ results[1][27]="7.267658056226699E-13"; ++ results[1][28]="2575213302545.012"; ++ results[1][29]="1.240601074437582E-17"; ++ results[1][30]="5803814.629080740"; ++ results[1][31]="1.513702499224934E-22"; ++ results[1][32]="117.9945983141544"; ++ results[1][33]="6.513252226158986E-28"; ++ results[1][34]="0.003121614333321446"; ++ results[1][35]="7.662861824967629E-12"; ++ results[1][36]="1.614703445896061E+21"; ++ results[1][37]="6.483385299828233E-17"; ++ results[1][38]="7902463660001319"; ++ results[1][39]="6.909981111408860E-22"; ++ results[1][40]="143278626742.9544"; ++ results[1][41]="1.106276192237624E-26"; ++ results[1][42]="517432.5588391111"; ++ results[1][43]="1.995684264553637E-31"; ++ results[1][44]="13.59254180428686"; ++ results[1][45]="1.750516997842428E-15"; ++ results[1][46]="9.530846823547244E+24"; ++ results[1][47]="6.363578981627979E-21"; ++ results[1][48]="7.892110721075739E+19"; ++ results[1][49]="2.695017594120158E-25"; ++ results[1][50]="2659755306503325"; ++ results[1][51]="6.708128334181145E-31"; ++ results[1][52]="47659701441.40646"; ++ results[1][53]="1.397306722110734E-35"; ++ results[1][54]="194361.6416434591"; ++ results[1][55]="7.076935347495779E-20"; ++ results[1][56]="8.169230942250227E+28"; ++ results[1][57]="7.098249706679054E-25"; ++ results[1][58]="6.529561130949462E+23"; ++ results[1][59]="1.392785475542062E-29"; ++ results[1][60]="3.372619752780715E+19"; ++ results[1][61]="6.438417854312836E-35"; ++ results[1][62]="241122707459808.1"; ++ results[1][63]="5.476113184315002E-40"; ++ results[1][64]="2519471664.228668"; ++ results[1][65]="5.941399214551468E-24"; ++ results[1][66]="5.296821713629854E+32"; ++ results[1][67]="1.917891304584321E-28"; ++ results[1][68]="1.130000185511682E+28"; ++ results[1][69]="8.518365403010947E-34"; ++ results[1][70]="8.296786726957023E+22"; ++ results[1][71]="5.205821369719668E-39"; ++ results[1][72]="2.022205866476320E+18"; ++ results[1][73]="9.864465530164297E-44"; ++ results[1][74]="5647785890103.269"; ++ results[2][0]="20269260647.17756"; ++ results[2][1]="44569.69401753148"; ++ results[2][2]="1"; ++ results[2][3]="0.00001166109071065203"; ++ results[2][4]="8.139070777868161E-11"; ++ results[2][5]="253933.9585665772"; ++ results[2][6]="157808328301844.9"; ++ results[2][7]="2.435210825001846"; ++ results[2][8]="232639203.3002624"; ++ results[2][9]="0.00002269964480050335"; ++ results[2][10]="8284.378509364762"; ++ results[2][11]="2.750776908140411E-10"; ++ results[2][12]="0.03693544859234678"; ++ results[2][13]="3.460942489720927E-15"; ++ results[2][14]="2.782853488076028E-7"; ++ results[2][15]="29.89469998645674"; ++ results[2][16]="3.434304892902040E+17"; ++ results[2][17]="0.0003538133189576156"; ++ results[2][18]="2695284886705.971"; ++ results[2][19]="2.280490767877520E-9"; ++ results[2][20]="91210560.48686773"; ++ results[2][21]="4.251984043567731E-14"; ++ results[2][22]="524.0044886392415"; ++ results[2][23]="4.660208399475724E-19"; ++ results[2][24]="0.002775588031390770"; ++ results[2][25]="0.002778548402117154"; ++ results[2][26]="7.442266954968664E+21"; ++ results[2][27]="3.239172957900716E-8"; ++ results[2][28]="1.147764689243079E+17"; ++ results[2][29]="5.529321028550383E-13"; ++ results[2][30]="258674242152.6016"; ++ results[2][31]="6.746525722402801E-18"; ++ results[2][32]="5258983.142583397"; ++ results[2][33]="2.902936587789118E-23"; ++ results[2][34]="139.1293956768774"; ++ results[2][35]="3.415314068374301E-7"; ++ results[2][36]="7.196683851264116E+25"; ++ results[2][37]="2.889624990111060E-12"; ++ results[2][38]="3.522103873109208E+20"; ++ results[2][39]="3.079757438024150E-17"; ++ results[2][40]="6385884553185581"; ++ results[2][41]="4.930639138691073E-22"; ++ results[2][42]="23061810822.16754"; ++ results[2][43]="8.894703702675794E-27"; ++ results[2][44]="605815.4291375707"; ++ results[2][45]="7.802000696632482E-11"; ++ results[2][46]="4.247869266534626E+29"; ++ results[2][47]="2.836227680675536E-16"; ++ results[2][48]="3.517489599908254E+24"; ++ results[2][49]="1.201161095417993E-20"; ++ results[2][50]="1.185444801723589E+20"; ++ results[2][51]="2.989792272847868E-26"; ++ results[2][52]="2124178310210390"; ++ results[2][53]="6.227753305311532E-31"; ++ results[2][54]="8662638896.794075"; ++ results[2][55]="3.154168430197397E-15"; ++ results[2][56]="3.641001234546430E+33"; ++ results[2][57]="3.163668174867180E-20"; ++ results[2][58]="2.910205416751843E+28"; ++ results[2][59]="6.207602247697180E-25"; ++ results[2][60]="1.503166304189191E+24"; ++ results[2][61]="2.869583137237347E-30"; ++ results[2][62]="1.074676529216240E+19"; ++ results[2][63]="2.440686890302896E-35"; ++ results[2][64]="112292081160512.5"; ++ results[2][65]="2.648063450285608E-19"; ++ results[2][66]="2.360777230418994E+37"; ++ results[2][67]="8.547982860420744E-24"; ++ results[2][68]="5.036376250800950E+32"; ++ results[2][69]="3.796609395417242E-29"; ++ results[2][70]="3.697852457491911E+27"; ++ results[2][71]="2.320218655583322E-34"; ++ results[2][72]="9.012909670930670E+22"; ++ results[2][73]="4.396562103259092E-39"; ++ results[2][74]="2.517200889984344E+17"; ++ results[3][0]="1738195950114877"; ++ results[3][1]="3822086211.611279"; ++ results[3][2]="85755.27151045421"; ++ results[3][3]="1"; ++ results[3][4]="0.000006979682243988879"; ++ results[3][5]="21776175562.60126"; ++ results[3][6]="1.353289604013560E+19"; ++ results[3][7]="208832.1654832305"; ++ results[3][8]="19950038042989.76"; ++ results[3][9]="1.946614203058035"; ++ results[3][10]="710429128.3659471"; ++ results[3][11]="0.00002358936206222687"; ++ results[3][12]="3167.409422397122"; ++ results[3][13]="2.967940628880855E-10"; ++ results[3][14]="0.02386443564437743"; ++ results[3][15]="2563628.114062170"; ++ results[3][16]="2.945097485404958E+22"; ++ results[3][17]="30.34135723122526"; ++ results[3][18]="2.311348872574943E+17"; ++ results[3][19]="0.0001955641049764209"; ++ results[3][20]="7821786379172.049"; ++ results[3][21]="3.646300461142698E-9"; ++ results[3][22]="44936147.19595487"; ++ results[3][23]="3.996374365923399E-14"; ++ results[3][24]="238.0213052330826"; ++ results[3][25]="238.2751726284952"; ++ results[3][26]="6.382136233766191E+26"; ++ results[3][27]="0.002777761564740970"; ++ results[3][28]="9.842687255615237E+21"; ++ results[3][29]="4.741684260718020E-8"; ++ results[3][30]="2.218267986855733E+16"; ++ results[3][31]="5.785501450769154E-13"; ++ results[3][32]="450985527261.1410"; ++ results[3][33]="2.489421152634873E-18"; ++ results[3][34]="11931079.10135604"; ++ results[3][35]="0.02928811852269122"; ++ results[3][36]="6.171535776400555E+30"; ++ results[3][37]="2.478005755903675E-7"; ++ results[3][38]="3.020389739265025E+25"; ++ results[3][39]="2.641054352841019E-12"; ++ results[3][40]="5.476232636928451E+20"; ++ results[3][41]="4.228282980585251E-17"; ++ results[3][42]="1977671848577708"; ++ results[3][43]="7.627677310280051E-22"; ++ results[3][44]="51951866610.91471"; ++ results[3][45]="0.000006690626880644714"; ++ results[3][46]="3.642771822925908E+34"; ++ results[3][47]="2.432214748217965E-11"; ++ results[3][48]="3.016432756753313E+29"; ++ results[3][49]="1.030058958653646E-15"; ++ results[3][50]="1.016581408324629E+25"; ++ results[3][51]="2.563904481179269E-21"; ++ results[3][52]="1.821594877287098E+20"; ++ results[3][53]="5.340626755971191E-26"; ++ results[3][54]="742866950591597.5"; ++ results[3][55]="2.704865701212809E-10"; ++ results[3][56]="3.122350494384281E+38"; ++ results[3][57]="2.713012233047182E-15"; ++ results[3][58]="2.495654556647489E+33"; ++ results[3][59]="5.323346161801775E-20"; ++ results[3][60]="1.289044345411101E+29"; ++ results[3][61]="2.460818810556097E-25"; ++ results[3][62]="9.215917754885128E+23"; ++ results[3][63]="2.093017669499310E-30"; ++ results[3][64]="9.629637908393713E+18"; ++ results[3][65]="2.270854001561525E-14"; ++ results[3][66]="2.024490923702789E+42"; ++ results[3][67]="7.330345910620899E-19"; ++ results[3][68]="4.318958128162389E+37"; ++ results[3][69]="3.255792695231470E-24"; ++ results[3][70]="3.171103414978191E+32"; ++ results[3][71]="1.989709807731689E-29"; ++ results[3][72]="7.729045159298581E+27"; ++ results[3][73]="3.770283768775571E-34"; ++ results[3][74]="2.158632457669644E+22"; ++ results[4][0]="2.490365448386802E+20"; ++ results[4][1]="547601750051441.0"; ++ results[4][2]="12286414841.35031"; ++ results[4][3]="143272.9979736873"; ++ results[4][4]="1"; ++ results[4][5]="3119937957255229"; ++ results[4][6]="1.938898586936469E+24"; ++ results[4][7]="29920010422.11961"; ++ results[4][8]="2.858301760108257E+18"; ++ results[4][9]="278897.2527702849"; ++ results[4][10]="101785311068822.8"; ++ results[4][11]="3.379718622942007"; ++ results[4][12]="453804243.7569410"; ++ results[4][13]="0.00004252257517076709"; ++ results[4][14]="3419.129239720079"; ++ results[4][15]="367298685591.3171"; ++ results[4][16]="4.219529460587362E+27"; ++ results[4][17]="4347097.213108260"; ++ results[4][18]="3.311538823369143E+22"; ++ results[4][19]="28.01905561601273"; ++ results[4][20]="1.120650784053732E+18"; ++ results[4][21]="0.0005224163985807529"; From ddadacha at redhat.com Thu Aug 11 09:20:45 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Thu, 11 Aug 2011 12:20:45 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <20110810220124.GF20852@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> Message-ID: <4E44015D.2040902@redhat.com> On 10/08/11 06:01 PM, Deepak Bhole wrote: > * Danesh Dadachanji [2011-08-10 17:20]: >> Hello, >> >> Here's an update for this bug. It took so long because of the (at >> the time) mysterious PR771. This will now check all the certificates >> along the certPath for trust in the store. It also displays a new >> icon[1] and automatically selects the "Always Trust" checkbox when >> an applet is verified. Along the way I found a miscalculation in the >> window size of the dialog. It was too small to display the entire >> icon so I increased the height. >> >> I've tested it on all of the certificate holding JNLPs on the test >> wiki page. >> >> The original reporter's applet is signed by an older version of a >> Thawte CA which I was unable to find online. The newer version is >> technically considered a different certificate (public keys are >> different) so this patch still won't verify their applet. >> > > Hi Danesh, > > Patch looks good. Couple of minor things: > Hi Deepak, Thanks for the review! I pulled the icon stuff out and into another patch because it isn't related to PR742. I will email a patch in a few moments. The subject will be: Update UI for SecurityDialog > When a cert has been verified and we show a prompt with the new question > icon, the title still says "Warning - Security" ... we should probably > update this to something that doesn't look as alarming ... maybe > "Security approval needed" or something? > > Also, one code related fix below: > >> - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); >> + // Check entire cert path for a trusted CA >> + List certList = certPath.getCertificates(); >> + for (int i = 0; i != certList.size(); i++) { >> + if ((rootInCacerts = CertificateUtils.inKeyStores( >> + (X509Certificate) certList.get(i), caKeyStores))) { >> + break; >> + } >> + } > > It would be cleaner to use the Java foreach syntax with > certPath.getCertificates() directly... e.g.: > > for (Certificate c: certPath.getCertificates()) { > ... > } I changed it to this =) ChangeLog +2011-08-11 Danesh Dadachanji + + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring + them untrusted. + * NEWS: Updated. + * netx/net/sourceforge/jnlp/tools/JarSigner.java: + (checkTrustedCerts): All certs along certPath are now checked for trust. + > > Cheers, > Deepak -------------- next part -------------- A non-text attachment was scrubbed... Name: PR742.patch Type: text/x-patch Size: 1585 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110811/4f5fbaf9/PR742.patch From dbhole at redhat.com Thu Aug 11 09:23:23 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 11 Aug 2011 12:23:23 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <4E44015D.2040902@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> <4E44015D.2040902@redhat.com> Message-ID: <20110811162323.GL20852@redhat.com> * Danesh Dadachanji [2011-08-11 12:20]: > > > > On 10/08/11 06:01 PM, Deepak Bhole wrote: > >* Danesh Dadachanji [2011-08-10 17:20]: > >>Hello, > >> > >>Here's an update for this bug. It took so long because of the (at > >>the time) mysterious PR771. This will now check all the certificates > >>along the certPath for trust in the store. It also displays a new > >>icon[1] and automatically selects the "Always Trust" checkbox when > >>an applet is verified. Along the way I found a miscalculation in the > >>window size of the dialog. It was too small to display the entire > >>icon so I increased the height. > >> > >>I've tested it on all of the certificate holding JNLPs on the test > >>wiki page. > >> > >>The original reporter's applet is signed by an older version of a > >>Thawte CA which I was unable to find online. The newer version is > >>technically considered a different certificate (public keys are > >>different) so this patch still won't verify their applet. > >> > > > >Hi Danesh, > > > >Patch looks good. Couple of minor things: > > > > Hi Deepak, > > Thanks for the review! > > I pulled the icon stuff out and into another patch because it isn't > related to PR742. I will email a patch in a few moments. The subject > will be: Update UI for SecurityDialog > Hi Danesh, Looks good! The changelog lines seem to start with a space instead of a tab. I assume this is just an error from pasting though. Please make sure they start with tabs as the other others. After that, ok for HEAD. Cheers, Deepak > >When a cert has been verified and we show a prompt with the new question > >icon, the title still says "Warning - Security" ... we should probably > >update this to something that doesn't look as alarming ... maybe > >"Security approval needed" or something? > > > >Also, one code related fix below: > > > >>- rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); > >>+ // Check entire cert path for a trusted CA > >>+ List certList = certPath.getCertificates(); > >>+ for (int i = 0; i != certList.size(); i++) { > >>+ if ((rootInCacerts = CertificateUtils.inKeyStores( > >>+ (X509Certificate) certList.get(i), caKeyStores))) { > >>+ break; > >>+ } > >>+ } > > > >It would be cleaner to use the Java foreach syntax with > >certPath.getCertificates() directly... e.g.: > > > >for (Certificate c: certPath.getCertificates()) { > > ... > >} > > I changed it to this =) > > ChangeLog > +2011-08-11 Danesh Dadachanji > + > + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring > + them untrusted. > + * NEWS: Updated. > + * netx/net/sourceforge/jnlp/tools/JarSigner.java: > + (checkTrustedCerts): All certs along certPath are now checked for trust. > + > > > > >Cheers, > >Deepak > > diff -r 27f08d58854f NEWS > --- a/NEWS Tue Aug 09 17:34:35 2011 -0400 > +++ b/NEWS Thu Aug 11 12:16:08 2011 -0400 > @@ -19,6 +19,7 @@ New in release 1.2 (2011-XX-XX): > Common > - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up > - PR771: IcedTea-Web certificate verification code does not use the right API > + - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. > > New in release 1.1 (2011-XX-XX): > * Security updates > diff -r 27f08d58854f netx/net/sourceforge/jnlp/tools/JarSigner.java > --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Tue Aug 09 17:34:35 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Thu Aug 11 12:16:08 2011 -0400 > @@ -373,7 +373,13 @@ public class JarSigner implements CertVe > alreadyTrustPublisher = CertificateUtils.inKeyStores(publisher, certKeyStores); > X509Certificate root = (X509Certificate) getRoot(); > KeyStore[] caKeyStores = KeyStores.getCAKeyStores(); > - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); > + // Check entire cert path for a trusted CA > + for (Certificate c : certPath.getCertificates()) { > + if ((rootInCacerts = CertificateUtils.inKeyStores( > + (X509Certificate) c, caKeyStores))) { > + break; > + } > + } > } catch (Exception e) { > // TODO: Warn user about not being able to > // look through their cacerts/trusted.certs From ddadacha at redhat.com Thu Aug 11 09:46:26 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Thu, 11 Aug 2011 12:46:26 -0400 Subject: [RFC][IcedTea-Web] UI Update for SecurityDialog In-Reply-To: <20110810220124.GF20852@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> Message-ID: <4E440762.7020909@redhat.com> Hi, I've pulled this code out of the patch for PR742 since it isn't directly related. To recap the changes in this email, when a cert is Verified, a new icon is shown and automatically selects the "Always Trust" checkbox when an applet is verified. Along the way I found a miscalculation in the window size of the dialog. It was too small to display the entire icon so I increased the height. Snippet from PR742 email[1]: On 10/08/11 06:01 PM, Deepak Bhole wrote: > When a cert has been verified and we show a prompt with the new question > icon, the title still says "Warning - Security" ... we should probably > update this to something that doesn't look as alarming ... maybe > "Security approval needed" or something? Changed the title to "Security Approval Required", "Required" was more consistent with what the other titles were. I also changed the message of when it is _not_ verified to "Security Warning", again to be more consistent. It was orignially "Warning - Security". ChangeLog +2011-08-11 Danesh Dadachanji + + Update UI for SecurityDialog + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. Credit + to The GNOME Project for the image. + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: + (addComponents): When certs are verified, question.png is used as the icon + and SAlwaysTrustPublisher is automatically selected. + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: + (initDialog): Changed the title of a CERT_WARNING dialog. + [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-August/015411.html -------------- next part -------------- A non-text attachment was scrubbed... Name: UI-Update-for-SecurityDialog.patch Type: text/x-patch Size: 3646 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110811/c8b10a4f/UI-Update-for-SecurityDialog.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: question.png Type: image/png Size: 5406 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110811/c8b10a4f/question.png From fw at deneb.enyo.de Thu Aug 11 10:54:44 2011 From: fw at deneb.enyo.de (Florian Weimer) Date: Thu, 11 Aug 2011 19:54:44 +0200 Subject: IcedTea6 1.8.9 and Zero/Shark Message-ID: <878vqzal5n.fsf@mid.deneb.enyo.de> I'm trying to prepare another security update for Debian. After applying the changes from 1.8.9, Debian's Zero/Shark does not build anymore. It hangs during testing; jtreg hangs after throwing an exception: Exception in thread "ReadAheadIterator1" java.util.NoSuchElementException at java.util.LinkedList.remove(LinkedList.java:805) at java.util.LinkedList.removeFirst(LinkedList.java:151) at com.sun.javatest.TRT_Iterator.nextElement(TRT_Iterator.java:176) at com.sun.javatest.TRT_Iterator.next(TRT_Iterator.java:200) at com.sun.javatest.util.ReadAheadIterator.readAhead(ReadAheadIterator.java:258) at com.sun.javatest.util.ReadAheadIterator.access$000(ReadAheadIterator.java:36) at com.sun.javatest.util.ReadAheadIterator$1.run(ReadAheadIterator.java:192) I managed to get a thread dump from the stuck VM: Full thread dump OpenJDK 64-Bit Server VM (14.0-b16 mixed mode): "Timer0" daemon prio=10 tid=0x00002abccc25a000 nid=0x2b16 in Object.wait() [0x00002abccaeb0000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0ccefaa8> (a com.sun.javatest.util.Timer) at java.lang.Object.wait(Object.java:502) at com.sun.javatest.util.Timer.getNextEntry(Timer.java:160) - locked <0x00002abc0ccefaa8> (a com.sun.javatest.util.Timer) at com.sun.javatest.util.Timer.access$000(Timer.java:39) at com.sun.javatest.util.Timer$1.run(Timer.java:79) "DefaultTestRunner:Worker-0:0" prio=10 tid=0x0000000002855000 nid=0x2b14 in Object.wait() [0x00002abccacae000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0ce04fb8> (a com.sun.javatest.util.ReadAheadIterator) at java.lang.Object.wait(Object.java:502) at com.sun.javatest.util.ReadAheadIterator.next(ReadAheadIterator.java:206) - locked <0x00002abc0ce04fb8> (a com.sun.javatest.util.ReadAheadIterator) at com.sun.javatest.Harness$2.next(Harness.java:717) at com.sun.javatest.DefaultTestRunner.nextTest(DefaultTestRunner.java:144) - locked <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) at com.sun.javatest.DefaultTestRunner.access$000(DefaultTestRunner.java:43) at com.sun.javatest.DefaultTestRunner$1.run(DefaultTestRunner.java:65) "TestResultCache.worker0[/tmp/buildd/openjdk-6-6b18-1.8.9/build/test/jdk/JTwork]" daemon prio=10 tid=0x00002abccc101800 nid=0x2b13 in Object.wait() [0x00002abccabad000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0c88ae10> (a com.sun.javatest.TestResultCache) at com.sun.javatest.TestResultCache.doWorkUntilDone(TestResultCache.java:245) - locked <0x00002abc0c88ae10> (a com.sun.javatest.TestResultCache) at com.sun.javatest.TestResultCache.access$000(TestResultCache.java:47) at com.sun.javatest.TestResultCache$1.run(TestResultCache.java:138) "Low Memory Detector" daemon prio=10 tid=0x00002abccc024000 nid=0x2b11 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x00002abccc020800 nid=0x2b10 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x00002abccc01e800 nid=0x2b0f waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x00002abccc01c800 nid=0x2b0e waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x00002abccc001000 nid=0x2b0d in Object.wait() [0x00002abcca550000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0c88e0a8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133) - locked <0x00002abc0c88e0a8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177) "Reference Handler" daemon prio=10 tid=0x0000000001988000 nid=0x2b0c in Object.wait() [0x00002abcca44f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0c8880b0> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:502) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) - locked <0x00002abc0c8880b0> (a java.lang.ref.Reference$Lock) "main" prio=10 tid=0x000000000190c800 nid=0x2b00 in Object.wait() [0x00002abbfdd12000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) at java.lang.Object.wait(Object.java:502) at com.sun.javatest.DefaultTestRunner.runTests(DefaultTestRunner.java:84) - locked <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) at com.sun.javatest.Harness.runTests(Harness.java:712) at com.sun.javatest.Harness.batch(Harness.java:393) at com.sun.javatest.regtest.Main.batchHarness(Main.java:1493) at com.sun.javatest.regtest.Main.run(Main.java:823) at com.sun.javatest.regtest.Main.run(Main.java:690) at com.sun.javatest.regtest.Main.main(Main.java:634) "VM Thread" prio=10 tid=0x0000000001980000 nid=0x2b0b runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000001917000 nid=0x2b01 runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000001918800 nid=0x2b02 runnable "GC task thread#2 (ParallelGC)" prio=10 tid=0x000000000191a800 nid=0x2b03 runnable "GC task thread#3 (ParallelGC)" prio=10 tid=0x000000000191c800 nid=0x2b04 runnable "GC task thread#4 (ParallelGC)" prio=10 tid=0x000000000191e800 nid=0x2b05 runnable "GC task thread#5 (ParallelGC)" prio=10 tid=0x0000000001920000 nid=0x2b06 runnable "GC task thread#6 (ParallelGC)" prio=10 tid=0x0000000001922000 nid=0x2b07 runnable "GC task thread#7 (ParallelGC)" prio=10 tid=0x0000000001924000 nid=0x2b08 runnable "GC task thread#8 (ParallelGC)" prio=10 tid=0x0000000001925800 nid=0x2b09 runnable "GC task thread#9 (ParallelGC)" prio=10 tid=0x0000000001927800 nid=0x2b0a runnable "VM Periodic Task Thread" prio=10 tid=0x00002abccc026800 nid=0x2b12 waiting on condition JNI global references: 699 Heap PSYoungGen total 165952K, used 57866K [0x00002abc89f30000, 0x00002abc945e0000, 0x00002abcc8a80000) eden space 161856K, 33% used [0x00002abc89f30000,0x00002abc8d42a880,0x00002abc93d40000) from space 4096K, 88% used [0x00002abc94170000,0x00002abc944f8000,0x00002abc94570000) to space 4288K, 0% used [0x00002abc93d40000,0x00002abc93d40000,0x00002abc94170000) PSOldGen total 128448K, used 102042K [0x00002abc0c880000, 0x00002abc145f0000, 0x00002abc89f30000) object space 128448K, 79% used [0x00002abc0c880000,0x00002abc12c26bc8,0x00002abc145f0000) PSPermGen total 32192K, used 17998K [0x00002abc02080000, 0x00002abc03ff0000, 0x00002abc0c880000) object space 32192K, 55% used [0x00002abc02080000,0x00002abc03213950,0x00002abc03ff0000) The last test was java/io/InputStreamReader/One.java. Testing hangs always at this particular point. The jtreg invocation leading to this is: /tmp/buildd/openjdk-6-6b18-1.8.9/build/bootstrap/jdk1.6.0/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet -w:test/jdk/JTwork -r:test/jdk/JTreport -othervm -jdk:/tmp/buildd/openjdk-6-6b18-1.8.9/build/openjdk/build/linux-amd64/j2sdk-image -exclude:/tmp/buildd/openjdk-6-6b18-1.8.9/build/../test/jtreg/excludelist.jdk.jtx -vmoption:-zero /tmp/buildd/openjdk-6-6b18-1.8.9/build/openjdk/jdk/test Come to think of it, the underling issue is probably present in Debian's older versions, too: So the above stack trace is likely totally misleading. The mysterious thing is that it's not reproducible on other build systems. My build system is an Intel Core i7 X980, which as the following CPU feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid Has anybody else seen this? Does Shark offer CPU-dependent optimizations? Is there a way to turn them off? (Debian squeeze uses llvm 2.7.) From ahughes at redhat.com Thu Aug 11 09:48:36 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 11 Aug 2011 17:48:36 +0100 Subject: Not Seeing the Forests for the Trees Message-ID: <20110811164836.GC25807@rivendell.middle-earth.co.uk> Hi all, As IcedTea7 is now nearing its first proper release (2.0), its use of a forest for patches, as opposed to our previous method of using a patches directory in IcedTea, is becoming more of an issue and a change in the way we operate. One of the aims for 2.0 is to have all non-bootstrap patches in the forest: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=717 Using the forest works pretty much the same as our previous method in most cases, with the added advantage that patching is done once only and not on every build. You can use 'hg log' to find out what patches have been applied and 'hg out' to an OpenJDK6 checkout will show up which patches aren't upstream. Just as we currently do with release branches, the plan is to create a release forest to correspond to IcedTea release branches, and the usual backport process applies there. The main issue with this process is that bringing new patches into IcedTea7 requires bumping the changeset ID, which can mean bringing in other people's changes as well as your own. This came up today with Pavel. One possible solution I've thought of for this is to have a 'changeset guardian' role. Instead of each person bumping the changeset ID(s) themselves, they send a request to the changeset guardian, along with a patch containing any ancillary changes needed to IcedTea (e.g. new options passed to make). Think of it like using a print server to submit print jobs to the printer, rather than everyone trying to send their jobs at the same time. What do people think of this idea? Does anyone want to volunteer to be the changeset guardian? I've also been thinking we should go the same route for IcedTea6. I was going to propose this once 1.11 branched off, as a change in 1.12, but given the silence on jdk6-dev (e.g. http://mail.openjdk.java.net/pipermail/jdk6-dev/2011-July/thread.html is still unanswered), maybe we should do this sooner rather than later. It won't be until after IcedTea7 2.0 at any rate, so in the meantime let me know what you think. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Thu Aug 11 11:45:02 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 11 Aug 2011 14:45:02 -0400 Subject: Backport S6826104: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog Message-ID: <20110811184501.GM20852@redhat.com> Hi, 6693253-security_warning.patch introduces a regression that was subsequently fixed in OpenJDK7 through this changeset: http://hg.openjdk.java.net/jdk7/awt/jdk/rev/c6503f2a93d1 Corresponding RH bug: https://bugzilla.redhat.com/show_bug.cgi?id=730015 Attached patch brings the fix into IcedTea6. Okay for HEAD and 1.10? ChangeLog: 2011-08-11 Deepak Bhole S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Makefile.am: Apply new patch for S6826104. * NEWS: Updated. * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: New patch that fixes S6826104. Cheers, Deepak -------------- next part -------------- diff -r 4c641e5e379d Makefile.am --- a/Makefile.am Thu Aug 11 16:48:40 2011 +0200 +++ b/Makefile.am Thu Aug 11 14:44:16 2011 -0400 @@ -372,7 +372,8 @@ 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/7036582-Improve_test_coverage_of_BigDecimal.patch \ + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 4c641e5e379d NEWS --- a/NEWS Thu Aug 11 16:48:40 2011 +0200 +++ b/NEWS Thu Aug 11 14:44:16 2011 -0400 @@ -19,6 +19,7 @@ - PR744: icedtea6-1.10.2 : patching error - PR752: ImageFormatException extends Exception not RuntimeException - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Import of OpenJDK6 b22 including upgrade to HotSpot 20 - S7023111: Add webrev script to make/scripts - S6909331: Add vsvars.sh to the jdk repository (handy cygwin way to get vcvars32.bat run) diff -r 4c641e5e379d patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch Thu Aug 11 14:44:16 2011 -0400 @@ -0,0 +1,17 @@ +diff -ur openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:38:17.829462436 -0400 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:41:05.611491530 -0400 +@@ -149,6 +149,13 @@ + + params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect())); + ++ SunToolkit.awtLock(); ++ try { ++ windows.add(this); ++ } finally { ++ SunToolkit.awtUnlock(); ++ } ++ + cachedFocusableWindow = isFocusableWindow(); + + Font f = target.getFont(); From ptisnovs at redhat.com Fri Aug 12 05:56:45 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 12 Aug 2011 14:56:45 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "6806261: BigDecimal.longValueExact() method throws NullPointerException" Message-ID: <4E45230D.8050807@redhat.com> Greetings, here's another fix I'd like to backport to IcedTea6 HEAD: "6806261: BigDecimal.longValueExact() method throws NullPointerException". This fix contains only new regression tests, which were checked on RHEL 5 x86_64. ChangeLog entry: 2011-08-12 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch: Backport of 6806261: BigDecimal.longValueExact() method throws NullPointerException Can anybody please review this backport? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6806261_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110812/a9b05421/6806261_hg.diff From ptisnovs at icedtea.classpath.org Fri Aug 12 07:03:59 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 12 Aug 2011 14:03:59 +0000 Subject: /hg/gfx-test: Refactored, added new test cases (rendering using ... Message-ID: changeset fd3ba8985b59 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=fd3ba8985b59 author: Pavel Tisnovsky date: Fri Aug 12 16:05:39 2011 +0200 Refactored, added new test cases (rendering using transparency etc.) diffstat: ChangeLog | 9 +- src/org/gfxtest/testsuites/NormalCubicCurves.java | 275 ++++++- src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java | 374 ++++++++-- src/org/gfxtest/testsuites/NormalQuadraticCurves.java | 266 ++++++- src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java | 370 ++++++++-- 5 files changed, 1049 insertions(+), 245 deletions(-) diffs (truncated from 1959 to 500 lines): diff -r 554e6adab4f4 -r fd3ba8985b59 ChangeLog --- a/ChangeLog Thu Aug 11 13:19:50 2011 +0200 +++ b/ChangeLog Fri Aug 12 16:05:39 2011 +0200 @@ -1,3 +1,10 @@ +2011-08-12 Pavel Tisnovsky + * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: + * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: + * src/org/gfxtest/testsuites/NormalCubicCurves.java: + * src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java: + Refactored, added new test cases (rendering using transparency etc.) + 2011-08-11 Pavel Tisnovsky * Makefile: added new classes to compile * src/org/gfxtest/framework/CommonRenderingStyles.java: @@ -16,7 +23,7 @@ 2011-08-08 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: Fixed minor issues in two tests. - * src/org/gfxtest/testsuites/NormalCubisCurvesAsPaths.java: + * src/org/gfxtest/testsuites/NormalCubicCurvesAsPaths.java: Created new test suite containing 12 gfx.tests. 2011-08-05 Pavel Tisnovsky diff -r 554e6adab4f4 -r fd3ba8985b59 src/org/gfxtest/testsuites/NormalCubicCurves.java --- a/src/org/gfxtest/testsuites/NormalCubicCurves.java Thu Aug 11 13:19:50 2011 +0200 +++ b/src/org/gfxtest/testsuites/NormalCubicCurves.java Fri Aug 12 16:05:39 2011 +0200 @@ -63,17 +63,6 @@ @Zoom(1) public class NormalCubicCurves extends GfxTest { - - /** - * Stroke width used for drawing "thick" curves. - */ - private static final int STROKE_WIDTH_THICK = 10; - - /** - * Stroke width used for drawing extra "thick" curves. - */ - private static final int STROKE_WIDTH_EXTRA_THICK = 30; - /** * Default Y offset of curve end points. */ @@ -104,7 +93,7 @@ { for (int i = 0; i < 4; i++) { - this.drawCross(graphics, x[pointIndexes[i]-1], y[pointIndexes[i]-1]); + drawCross(graphics, x[pointIndexes[i]-1], y[pointIndexes[i]-1]); } } @@ -205,7 +194,7 @@ private TestResult drawThickCubicCurve(TestImage image, Graphics2D graphics, CubicCurve2D cubicCurve, int[] pointIndexes) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics); return drawCubicCurve(image, graphics, cubicCurve, Color.BLACK, pointIndexes); } @@ -218,9 +207,6 @@ * image to which two dimensional shape is to be rendered * @param graphics * graphics canvas - * - * @param image - * @param graphics */ private void drawCurveWithVariousColors(TestImage image, Graphics2D graphics) { @@ -258,6 +244,47 @@ } /** + * Draw set of cubic curves onto canvas specified by Graphics2D class. + * Curves are drawn using various transparency. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics canvas + */ + private void drawCurveWithVariousTransparency(TestImage image, Graphics2D graphics) + { + // construct point set which consists of all four curve control points + CubicCurvePointSet pointSet = new CubicCurvePointSet(image); + + // offset counter + int offset = -DEFAULT_Y_OFFSET >> 1; + + // Draw each curve with transparency + for (int transparency = 0; transparency < 16; transparency++) + { + // create new CubicCurve2D.Float + CubicCurve2D cubicCurve = new CubicCurve2D.Float(); + + // fill in arrays containing coordinates for all cubic curve control points + int[] x = pointSet.getXPointArray(); + int[] y = pointSet.getYPointArray(); + + // construct CubicCurve2D.Float with set coordinates + cubicCurve.setCurve(x[0], y[0] + offset, x[1], y[1] + offset, x[2], y[2] + offset, x[3], y[3] + offset); + + // set the specified color + graphics.setColor(new Color(0f, 0f, 0f, transparency / 16f)); + + // draw CubicCurve2D + graphics.draw(cubicCurve); + + // move next curve down + offset += OFFSET_STEP; + } + } + + /** * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. * @@ -297,6 +324,29 @@ /** * Test if cubic curve created by CubicCurve2D.Float() is rendered + * correctly. Curve is to be drawn with zero pixels wide + * stroke and default caps. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testZeroStroke(TestImage image, Graphics2D graphics) + { + // set zero pixels wide stroke + CommonRenderingStyles.setStrokeZeroThick(graphics); + + // create new CubicCurve2D.Float + CubicCurve2D cubicCurve = new CubicCurve2D.Float(); + + // draw cubic curve + return drawCubicCurve(image, graphics, cubicCurve); + } + + /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. Curve is to be drawn with 10 pixels wide * stroke and default caps. * @@ -309,7 +359,7 @@ public TestResult testThickStroke(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + CommonRenderingStyles.setStrokeThickWidth(graphics); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -332,7 +382,7 @@ public TestResult testThickStrokeCapsButt(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -355,7 +405,7 @@ public TestResult testThickStrokeCapsRound(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -378,7 +428,7 @@ public TestResult testThickStrokeCapsSquare(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -400,8 +450,8 @@ */ public TestResult testExtraThickStroke(TestImage image, Graphics2D graphics) { - // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK)); + // set 30 pixels wide stroke + CommonRenderingStyles.setStrokeExtraThickWidth(graphics); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -424,7 +474,7 @@ public TestResult testExtraThickStrokeCapsButt(TestImage image, Graphics2D graphics) { // set 30 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeExtraThickWidth(graphics, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -447,7 +497,7 @@ public TestResult testExtraThickStrokeCapsRound(TestImage image, Graphics2D graphics) { // set 30 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeExtraThickWidth(graphics, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -470,7 +520,7 @@ public TestResult testExtraThickStrokeCapsSquare(TestImage image, Graphics2D graphics) { // set 30 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_EXTRA_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeExtraThickWidth(graphics, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL); // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); @@ -499,7 +549,7 @@ } /** - * Test if cubic curve created by QuadCurve2D.Float() is rendered + * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. Curve is drawn using different colors and using 10 pixel wide * stroke. * @@ -512,7 +562,7 @@ public TestResult testColorsStrokeWidth(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK)); + CommonRenderingStyles.setStrokeThickWidth(graphics); // draw set of curves using test color palette drawCurveWithVariousColors(image, graphics); @@ -522,7 +572,29 @@ } /** - * Test if cubic curve created by QuadCurve2D.Float() is rendered + * Test if cubic curve created by CubicCurve2D.Float() is rendered correctly. + * Curve is drawn using different colors and using zero pixel wide stroke. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testColorsZeroStrokeWidth(TestImage image, Graphics2D graphics) + { + // set zero pixels wide stroke + CommonRenderingStyles.setStrokeZeroThick(graphics); + + // draw set of curves using test color palette + drawCurveWithVariousColors(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. Curve is drawn using different colors and using 10 pixel wide * stroke using CAP_BUTT. * @@ -535,7 +607,7 @@ public TestResult testColorsCapsButt(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL); // draw set of curves using test color palette drawCurveWithVariousColors(image, graphics); @@ -545,7 +617,7 @@ } /** - * Test if cubic curve created by QuadCurve2D.Float() is rendered + * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. Curve is drawn using different colors and using 10 pixel wide * stroke using CAP_ROUND. * @@ -558,7 +630,7 @@ public TestResult testColorsCapsRound(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL); // draw set of curves using test color palette drawCurveWithVariousColors(image, graphics); @@ -568,7 +640,7 @@ } /** - * Test if cubic curve created by QuadCurve2D.Float() is rendered + * Test if cubic curve created by CubicCurve2D.Float() is rendered * correctly. Curve is drawn using different colors and using 10 pixel wide * stroke using CAP_SQUARE. * @@ -581,7 +653,7 @@ public TestResult testColorsCapsSquare(TestImage image, Graphics2D graphics) { // set 10 pixels wide stroke - graphics.setStroke(new BasicStroke(STROKE_WIDTH_THICK, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); + CommonRenderingStyles.setStrokeThickWidth(graphics, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL); // draw set of curves using test color palette drawCurveWithVariousColors(image, graphics); @@ -591,6 +663,95 @@ } /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered correctly. + * Curve is drawn using different transparency and using 1 pixel wide + * stroke. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testTransparencyBasicStroke(TestImage image, Graphics2D graphics) + { + // draw set of curves using different transparency + drawCurveWithVariousTransparency(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered correctly. + * Curve is drawn using different transparency and using 10 pixel wide + * stroke. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testTransparencyThickStroke(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke + CommonRenderingStyles.setStrokeThickWidth(graphics); + + // draw set of curves using different transparency + drawCurveWithVariousTransparency(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered correctly. + * Curve is drawn using different transparency and using 30 pixel wide + * stroke. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testTransparencyExtraThickStroke(TestImage image, Graphics2D graphics) + { + // set 10 pixels wide stroke + CommonRenderingStyles.setStrokeExtraThickWidth(graphics); + + // draw set of curves using different transparency + drawCurveWithVariousTransparency(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** + * Test if cubic curve created by CubicCurve2D.Float() is rendered correctly. + * Curve is drawn using different transparency and using 30 pixel wide + * stroke. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testTransparencyZeroThickStroke(TestImage image, Graphics2D graphics) + { + // set zero pixels wide stroke + CommonRenderingStyles.setStrokeZeroThick(graphics); + + // draw set of curves using different transparency + drawCurveWithVariousTransparency(image, graphics); + + // test return value + return TestResult.PASSED; + } + + /** * Test drawing cubic curve with no identical points. * To be precise: first point and fourth point are curve end points and * second point and third point are control points which defines the curvature. @@ -606,10 +767,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 3, 4 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -630,10 +791,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 1, 3, 4 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawThickCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -654,10 +815,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 1, 4 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawThickCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -678,10 +839,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 3, 1 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawThickCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -702,10 +863,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 2, 4 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawThickCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -726,10 +887,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 3, 2 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); - + // draw cubic curve and return test result return drawThickCubicCurve(image, graphics, cubicCurve, controlPointIndexes); } @@ -750,10 +911,10 @@ // control point indexes int[] controlPointIndexes = new int[] { 1, 2, 3, 3 }; - + // create new CubicCurve2D.Float CubicCurve2D cubicCurve = new CubicCurve2D.Float(); From xranby at icedtea.classpath.org Fri Aug 12 08:02:25 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Fri, 12 Aug 2011 15:02:25 +0000 Subject: /hg/icedtea6: Zero/Shark: PR690: Shark fails to JIT using hs20, ... Message-ID: changeset f418ea6127b6 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f418ea6127b6 author: Xerxes Ranby date: Fri Aug 12 17:02:19 2011 +0200 Zero/Shark: PR690: Shark fails to JIT using hs20, PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. 2011-08-12 Xerxes Ranby Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. * patches/pr690-shark-jit-hs20.patch: New patch backported from OpenJDK 7 bug 7032458. * patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from OpenJDK 7 bug 7032458 and 7030207. * Makefile.am: Added new patches. * NEWS: Updated. diffstat: ChangeLog | 12 ++++++ Makefile.am | 4 +- NEWS | 3 + patches/pr690-shark-jit-hs20.patch | 58 +++++++++++++++++++++++++++++++++ patches/pr696-zero-fast_aldc-hs20.patch | 42 +++++++++++++++++++++++ 5 files changed, 118 insertions(+), 1 deletions(-) diffs (159 lines): diff -r 4c641e5e379d -r f418ea6127b6 ChangeLog --- a/ChangeLog Thu Aug 11 16:48:40 2011 +0200 +++ b/ChangeLog Fri Aug 12 17:02:19 2011 +0200 @@ -1,3 +1,15 @@ +2011-08-12 Xerxes R??nby + + Zero/Shark + - PR690: Shark fails to JIT using hs20. + - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. + * patches/pr690-shark-jit-hs20.patch: New patch backported from + OpenJDK 7 bug 7032458. + * patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from + OpenJDK 7 bug 7032458 and 7030207. + * Makefile.am: Added new patches. + * NEWS: Updated. + 2011-08-11 Pavel Tisnovsky * Makefile.am: added new patch diff -r 4c641e5e379d -r f418ea6127b6 Makefile.am --- a/Makefile.am Thu Aug 11 16:48:40 2011 +0200 +++ b/Makefile.am Fri Aug 12 17:02:19 2011 +0200 @@ -372,7 +372,9 @@ 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/7036582-Improve_test_coverage_of_BigDecimal.patch \ + patches/pr690-shark-jit-hs20.patch \ + patches/pr696-zero-fast_aldc-hs20.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 4c641e5e379d -r f418ea6127b6 NEWS --- a/NEWS Thu Aug 11 16:48:40 2011 +0200 +++ b/NEWS Fri Aug 12 17:02:19 2011 +0200 @@ -401,6 +401,9 @@ - Add extra includes to get rid off compiler warning. - Rework OpenJDK storage of native thread structure. - Implement remaining OpenJDK Array reflection interface. +* Zero/Shark + - PR690: Shark fails to JIT using hs20. + - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. New in release 1.10.2 (2011-06-07): diff -r 4c641e5e379d -r f418ea6127b6 patches/pr690-shark-jit-hs20.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr690-shark-jit-hs20.patch Fri Aug 12 17:02:19 2011 +0200 @@ -0,0 +1,61 @@ +Index: openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.hpp 2011-04-15 14:48:22.175181000 +0200 ++++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp 2011-04-15 16:19:28.915181000 +0200 +@@ -113,7 +113,7 @@ + // Global access + public: + static SharkCompiler* compiler() { +- AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple); ++ AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_full_optimization); + assert(compiler->is_shark() && compiler->is_initialized(), "should be"); + return (SharkCompiler *) compiler; + } +Index: openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp 2011-04-15 14:54:00.447181000 +0200 ++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp 2011-04-15 15:02:25.851181000 +0200 +@@ -740,9 +740,9 @@ + CompLevel_simple = 1, // C1 + CompLevel_limited_profile = 2, // C1, invocation & backedge counters + CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo +- CompLevel_full_optimization = 4, // C2 ++ CompLevel_full_optimization = 4, // C2 or Shark + +-#if defined(COMPILER2) ++#if defined(COMPILER2) || defined(SHARK) + CompLevel_highest_tier = CompLevel_full_optimization, // pure C2 and tiered + #elif defined(COMPILER1) + CompLevel_highest_tier = CompLevel_simple, // pure C1 +@@ -754,7 +754,7 @@ + CompLevel_initial_compile = CompLevel_full_profile // tiered + #elif defined(COMPILER1) + CompLevel_initial_compile = CompLevel_simple // pure C1 +-#elif defined(COMPILER2) ++#elif defined(COMPILER2) || defined(SHARK) + CompLevel_initial_compile = CompLevel_full_optimization // pure C2 + #else + CompLevel_initial_compile = CompLevel_none +Index: openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp 2011-04-15 16:05:50.051181001 +0200 ++++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp 2011-04-15 16:08:46.127181000 +0200 +@@ -768,7 +768,9 @@ + // Initialize the compilation queue + void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) { + EXCEPTION_MARK; ++#if !defined(ZERO) && !defined(SHARK) + assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?"); ++#endif // !ZERO && !SHARK + if (c2_compiler_count > 0) { + _c2_method_queue = new CompileQueue("C2MethodQueue", MethodCompileQueue_lock); + } +@@ -1029,7 +1031,7 @@ + + assert(!HAS_PENDING_EXCEPTION, "No exception should be present"); + // some prerequisites that are compiler specific +- if (compiler(comp_level)->is_c2()) { ++ if (compiler(comp_level)->is_c2() || compiler(comp_level)->is_shark()) { + method->constants()->resolve_string_constants(CHECK_0); + // Resolve all classes seen in the signature of the method + // we are compiling. diff -r 4c641e5e379d -r f418ea6127b6 patches/pr696-zero-fast_aldc-hs20.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr696-zero-fast_aldc-hs20.patch Fri Aug 12 17:02:19 2011 +0200 @@ -0,0 +1,44 @@ +Index: openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Sun Apr 03 12:00:54 2011 +0200 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 04 03:02:00 2011 -0700 +@@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterStat + /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, +-/* 0xE4 */ &&opc_default, &&opc_return_register_finalizer, &&opc_default, &&opc_default, ++/* 0xE4 */ &&opc_default, &&opc_default, &&opc_default, &&opc_return_register_finalizer, + /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + +# HG changeset patch +# User twisti +# Date 1300957910 25200 +# Node ID 151da0c145a8e4de263740273ec10c0eb46b30d0 +# Parent 9dc311b8473e0259a5de3f9358ca94de3990d692 +7030207: Zero tweak to remove accidentally incorporated code +Summary: IcedTea contains a now-unmaintained ARM-specific interpreter and part of that interpreter was accidentally incorporated in one of the webrevs when Zero was initially imported. +Reviewed-by: twisti +Contributed-by: Gary Benson + +--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Mar 21 11:28:14 2011 -0700 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Mar 24 02:11:50 2011 -0700 +@@ -2383,17 +2383,6 @@ run: + } + + DEFAULT: +-#ifdef ZERO +- // Some zero configurations use the C++ interpreter as a +- // fallback interpreter and have support for platform +- // specific fast bytecodes which aren't supported here, so +- // redispatch to the equivalent non-fast bytecode when they +- // are encountered. +- if (Bytecodes::is_defined((Bytecodes::Code)opcode)) { +- opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode); +- goto opcode_switch; +- } +-#endif + fatal(err_msg("Unimplemented opcode %d = %s", opcode, + Bytecodes::name((Bytecodes::Code)opcode))); + goto finish; + From bugzilla-daemon at icedtea.classpath.org Fri Aug 12 08:05:03 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Aug 2011 15:05:03 +0000 Subject: [Bug 690] Shark fails to JIT using hs20. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=690 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |6-1.11 --- Comment #2 from Xerxes R?nby 2011-08-12 15:05:03 --- Fixed pushed to http://icedtea.classpath.org/hg/icedtea6/rev/f418ea6127b6 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Fri Aug 12 08:11:47 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Fri, 12 Aug 2011 16:11:47 +0100 Subject: Reviewer needed: backport to IcedTea6 HEAD: "6806261: BigDecimal.longValueExact() method throws NullPointerException" In-Reply-To: <4E45230D.8050807@redhat.com> References: <4E45230D.8050807@redhat.com> Message-ID: <20110812151147.GE25807@rivendell.middle-earth.co.uk> On 14:56 Fri 12 Aug , Pavel Tisnovsky wrote: > Greetings, > > here's another fix I'd like to backport to IcedTea6 HEAD: "6806261: > BigDecimal.longValueExact() method throws NullPointerException". This > fix contains only new regression tests, which were checked on RHEL 5 x86_64. > > ChangeLog entry: > > 2011-08-12 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch: > Backport of 6806261: BigDecimal.longValueExact() method throws > NullPointerException > > > Can anybody please review this backport? > > Thank you in advance, > Pavel Approved. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at redhat.com Fri Aug 12 08:16:41 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 12 Aug 2011 17:16:41 +0200 Subject: Reviewer needed: fix for JamVM's SElinux execstack issue for IcedTea6 HEAD Message-ID: <4E4543D9.4030905@redhat.com> Greetings, as Omair and Xerxes pointed out yesterday, the SELinux executable stack issue found in JamVM running under Fedora 14 x86_64 is caused by linker settings. I've tried to add LDFLAGS to disable the settings of executable bit for stack and it works perfectly in my case. Can anybody please review this simple fix I've made in Makefile.am? AFAIK the proposed linker settings is applicable to all platforms. Here's ChangeLog entry: 2011-08-12 Pavel Tisnovsky * Makefile.am: added LDFLAGS for JamVM to fix the SELinux executable flag issue. Cheers, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jamvm_execstack_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110812/c0ed3fd7/jamvm_execstack_hg.diff From xerxes at zafena.se Fri Aug 12 08:21:23 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Fri, 12 Aug 2011 17:21:23 +0200 Subject: IcedTea6 1.8.9 and Zero/Shark In-Reply-To: <878vqzal5n.fsf@mid.deneb.enyo.de> References: <878vqzal5n.fsf@mid.deneb.enyo.de> Message-ID: <1313162483.1653.36.camel@xranby-ESPRIMO-P7935> tor 2011-08-11 klockan 19:54 +0200 skrev Florian Weimer: > I'm trying to prepare another security update for Debian. After > applying the changes from 1.8.9, Debian's Zero/Shark does not build > anymore. It hangs during testing; jtreg hangs after throwing an > exception: Good news are that Shark and OpenJDK actually built. I agree its a pain that you see a stall during testing. The version of Shark that you are packaging do contain known bugs, my best suggestion to you are to upgrade the package. The first shark release that passed the TCK was based on the icedtea 1.9.x release in combination with hs17. Cheers Xerxes > > Exception in thread "ReadAheadIterator1" java.util.NoSuchElementException > at java.util.LinkedList.remove(LinkedList.java:805) > at java.util.LinkedList.removeFirst(LinkedList.java:151) > at com.sun.javatest.TRT_Iterator.nextElement(TRT_Iterator.java:176) > at com.sun.javatest.TRT_Iterator.next(TRT_Iterator.java:200) > at com.sun.javatest.util.ReadAheadIterator.readAhead(ReadAheadIterator.java:258) > at com.sun.javatest.util.ReadAheadIterator.access$000(ReadAheadIterator.java:36) > at com.sun.javatest.util.ReadAheadIterator$1.run(ReadAheadIterator.java:192) > > I managed to get a thread dump from the stuck VM: > > Full thread dump OpenJDK 64-Bit Server VM (14.0-b16 mixed mode): > > "Timer0" daemon prio=10 tid=0x00002abccc25a000 nid=0x2b16 in Object.wait() [0x00002abccaeb0000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0ccefaa8> (a com.sun.javatest.util.Timer) > at java.lang.Object.wait(Object.java:502) > at com.sun.javatest.util.Timer.getNextEntry(Timer.java:160) > - locked <0x00002abc0ccefaa8> (a com.sun.javatest.util.Timer) > at com.sun.javatest.util.Timer.access$000(Timer.java:39) > at com.sun.javatest.util.Timer$1.run(Timer.java:79) > > "DefaultTestRunner:Worker-0:0" prio=10 tid=0x0000000002855000 nid=0x2b14 in Object.wait() [0x00002abccacae000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0ce04fb8> (a com.sun.javatest.util.ReadAheadIterator) > at java.lang.Object.wait(Object.java:502) > at com.sun.javatest.util.ReadAheadIterator.next(ReadAheadIterator.java:206) > - locked <0x00002abc0ce04fb8> (a com.sun.javatest.util.ReadAheadIterator) > at com.sun.javatest.Harness$2.next(Harness.java:717) > at com.sun.javatest.DefaultTestRunner.nextTest(DefaultTestRunner.java:144) > - locked <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) > at com.sun.javatest.DefaultTestRunner.access$000(DefaultTestRunner.java:43) > at com.sun.javatest.DefaultTestRunner$1.run(DefaultTestRunner.java:65) > > "TestResultCache.worker0[/tmp/buildd/openjdk-6-6b18-1.8.9/build/test/jdk/JTwork]" daemon prio=10 tid=0x00002abccc101800 nid=0x2b13 in Object.wait() [0x00002abccabad000] > java.lang.Thread.State: TIMED_WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0c88ae10> (a com.sun.javatest.TestResultCache) > at com.sun.javatest.TestResultCache.doWorkUntilDone(TestResultCache.java:245) > - locked <0x00002abc0c88ae10> (a com.sun.javatest.TestResultCache) > at com.sun.javatest.TestResultCache.access$000(TestResultCache.java:47) > at com.sun.javatest.TestResultCache$1.run(TestResultCache.java:138) > > "Low Memory Detector" daemon prio=10 tid=0x00002abccc024000 nid=0x2b11 runnable [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > > "CompilerThread1" daemon prio=10 tid=0x00002abccc020800 nid=0x2b10 waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > > "CompilerThread0" daemon prio=10 tid=0x00002abccc01e800 nid=0x2b0f waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > > "Signal Dispatcher" daemon prio=10 tid=0x00002abccc01c800 nid=0x2b0e waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > > "Finalizer" daemon prio=10 tid=0x00002abccc001000 nid=0x2b0d in Object.wait() [0x00002abcca550000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0c88e0a8> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133) > - locked <0x00002abc0c88e0a8> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149) > at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177) > > "Reference Handler" daemon prio=10 tid=0x0000000001988000 nid=0x2b0c in Object.wait() [0x00002abcca44f000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0c8880b0> (a java.lang.ref.Reference$Lock) > at java.lang.Object.wait(Object.java:502) > at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) > - locked <0x00002abc0c8880b0> (a java.lang.ref.Reference$Lock) > > "main" prio=10 tid=0x000000000190c800 nid=0x2b00 in Object.wait() [0x00002abbfdd12000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) > at java.lang.Object.wait(Object.java:502) > at com.sun.javatest.DefaultTestRunner.runTests(DefaultTestRunner.java:84) > - locked <0x00002abc0ccefac8> (a com.sun.javatest.DefaultTestRunner) > at com.sun.javatest.Harness.runTests(Harness.java:712) > at com.sun.javatest.Harness.batch(Harness.java:393) > at com.sun.javatest.regtest.Main.batchHarness(Main.java:1493) > at com.sun.javatest.regtest.Main.run(Main.java:823) > at com.sun.javatest.regtest.Main.run(Main.java:690) > at com.sun.javatest.regtest.Main.main(Main.java:634) > > "VM Thread" prio=10 tid=0x0000000001980000 nid=0x2b0b runnable > > "GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000001917000 nid=0x2b01 runnable > > "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000001918800 nid=0x2b02 runnable > > "GC task thread#2 (ParallelGC)" prio=10 tid=0x000000000191a800 nid=0x2b03 runnable > > "GC task thread#3 (ParallelGC)" prio=10 tid=0x000000000191c800 nid=0x2b04 runnable > > "GC task thread#4 (ParallelGC)" prio=10 tid=0x000000000191e800 nid=0x2b05 runnable > > "GC task thread#5 (ParallelGC)" prio=10 tid=0x0000000001920000 nid=0x2b06 runnable > > "GC task thread#6 (ParallelGC)" prio=10 tid=0x0000000001922000 nid=0x2b07 runnable > > "GC task thread#7 (ParallelGC)" prio=10 tid=0x0000000001924000 nid=0x2b08 runnable > > "GC task thread#8 (ParallelGC)" prio=10 tid=0x0000000001925800 nid=0x2b09 runnable > > "GC task thread#9 (ParallelGC)" prio=10 tid=0x0000000001927800 nid=0x2b0a runnable > > "VM Periodic Task Thread" prio=10 tid=0x00002abccc026800 nid=0x2b12 waiting on condition > > JNI global references: 699 > > Heap > PSYoungGen total 165952K, used 57866K [0x00002abc89f30000, 0x00002abc945e0000, 0x00002abcc8a80000) > eden space 161856K, 33% used [0x00002abc89f30000,0x00002abc8d42a880,0x00002abc93d40000) > from space 4096K, 88% used [0x00002abc94170000,0x00002abc944f8000,0x00002abc94570000) > to space 4288K, 0% used [0x00002abc93d40000,0x00002abc93d40000,0x00002abc94170000) > PSOldGen total 128448K, used 102042K [0x00002abc0c880000, 0x00002abc145f0000, 0x00002abc89f30000) > object space 128448K, 79% used [0x00002abc0c880000,0x00002abc12c26bc8,0x00002abc145f0000) > PSPermGen total 32192K, used 17998K [0x00002abc02080000, 0x00002abc03ff0000, 0x00002abc0c880000) > object space 32192K, 55% used [0x00002abc02080000,0x00002abc03213950,0x00002abc03ff0000) > > The last test was java/io/InputStreamReader/One.java. Testing hangs > always at this particular point. The jtreg invocation leading to this > is: > > /tmp/buildd/openjdk-6-6b18-1.8.9/build/bootstrap/jdk1.6.0/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet -w:test/jdk/JTwork -r:test/jdk/JTreport -othervm -jdk:/tmp/buildd/openjdk-6-6b18-1.8.9/build/openjdk/build/linux-amd64/j2sdk-image -exclude:/tmp/buildd/openjdk-6-6b18-1.8.9/build/../test/jtreg/excludelist.jdk.jtx -vmoption:-zero /tmp/buildd/openjdk-6-6b18-1.8.9/build/openjdk/jdk/test > > Come to think of it, the underling issue is probably present in > Debian's older versions, too: > > > > So the above stack trace is likely totally misleading. > > The mysterious thing is that it's not reproducible on other build > systems. > > My build system is an Intel Core i7 X980, which as the following CPU > feature flags: > > fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat > pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx > pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good > xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl > vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida > arat tpr_shadow vnmi flexpriority ept vpid > > Has anybody else seen this? > > Does Shark offer CPU-dependent optimizations? Is there a way to turn > them off? (Debian squeeze uses llvm 2.7.) From xerxes at zafena.se Fri Aug 12 08:38:05 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Fri, 12 Aug 2011 17:38:05 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "6806261: BigDecimal.longValueExact() method throws NullPointerException" In-Reply-To: <4E45230D.8050807@redhat.com> References: <4E45230D.8050807@redhat.com> Message-ID: <1313163485.1653.40.camel@xranby-ESPRIMO-P7935> Hi Pavel! Thank you for bakporting more tests! fre 2011-08-12 klockan 14:56 +0200 skrev Pavel Tisnovsky: > Greetings, > > here's another fix I'd like to backport to IcedTea6 HEAD: "6806261: > BigDecimal.longValueExact() method throws NullPointerException". This > fix contains only new regression tests, which were checked on RHEL 5 x86_64. > > ChangeLog entry: > > 2011-08-12 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch: > Backport of 6806261: BigDecimal.longValueExact() method throws > NullPointerException > > > Can anybody please review this backport? > > Thank you in advance, > Pavel > diff -r 4c641e5e379d patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch Fri Aug 12 14:53:46 2011 +0200 > @@ -0,0 +1,398 @@ > +# HG changeset patch > +# User xlu > +# Date 1243208132 25200 > +# Node ID 3994c5c669cbc5d8da999449bf702ce3588e7a3a > +# Parent 8d2efec31d78546035943afd41f9bb07a89c7dca > +6806261: BigDecimal.longValueExact() method throws NullPointerException > +Summary: add various tests to test the change to 6622432 > +Reviewed-by: darcy > + > +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigDecimal/EqualsTests.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/math/BigDecimal/EqualsTests.java Sun May 24 16:35:32 2009 -0700 > ++/* > ++ * @test > ++ * @bug 1234567 > ++ * @summary Test BigDecimal.equals() method. > ++ * @author xlu > ++ */ > +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigDecimal/PrecisionTests.java > +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 > ++++ openjdk/jdk/test/java/math/BigDecimal/PrecisionTests.java Sun May 24 16:35:32 2009 -0700 > ++ * @test > ++ * @bug 1234567 > ++ * @summary Test that precision() is computed properly. > ++ * @author Joseph D. Darcy > ++ */ > ++ Why are the both tests @bug 1234567? i think changing the bug id to 6806261 would be better. Since this backport only add more tests im all in favour for you to push them. Cheers Xerxes From xerxes at zafena.se Fri Aug 12 08:46:34 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Fri, 12 Aug 2011 17:46:34 +0200 Subject: Reviewer needed: fix for JamVM's SElinux execstack issue for IcedTea6 HEAD In-Reply-To: <4E4543D9.4030905@redhat.com> References: <4E4543D9.4030905@redhat.com> Message-ID: <1313163994.1653.45.camel@xranby-ESPRIMO-P7935> fre 2011-08-12 klockan 17:16 +0200 skrev Pavel Tisnovsky: > Greetings, > > as Omair and Xerxes pointed out yesterday, the SELinux executable stack > issue found in JamVM running under Fedora 14 x86_64 is caused by linker > settings. I've tried to add LDFLAGS to disable the settings of > executable bit for stack and it works perfectly in my case. > > Can anybody please review this simple fix I've made in Makefile.am? > AFAIK the proposed linker settings is applicable to all platforms. > > Here's ChangeLog entry: > > 2011-08-12 Pavel Tisnovsky > > * Makefile.am: added LDFLAGS for JamVM to fix the SELinux > executable flag issue. > > Cheers, > Pavel > vanligt textdokument-bilaga (jamvm_execstack_hg.diff) > diff -r 4c641e5e379d Makefile.am > --- a/Makefile.am Thu Aug 11 16:48:40 2011 +0200 > +++ b/Makefile.am Fri Aug 12 11:06:23 2011 -0400 > @@ -1811,6 +1811,7 @@ > stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp > if BUILD_JAMVM > cd jamvm/jamvm && \ > + LDFLAGS="-Xlinker -z -Xlinker noexecstack" \ > ./autogen.sh --with-java-runtime-library=openjdk \ > --prefix=$(abs_top_builddir)/jamvm/install ; \ > $(MAKE) ; \ Nice fix, i would suggest to add a NEWS entry. Pushing this and having the buildbots build and test JamVM on all various combinations of distributions and various default gcc settings are the only sane way to know if these linker flags can introduce any sideffects. In in favour for you to push this fix to icedtea6, icedtea7 and the icedtea branch, thanks. Cheers, Xerxes From ptisnovs at redhat.com Fri Aug 12 08:52:36 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 12 Aug 2011 17:52:36 +0200 Subject: Reviewer needed: backport to IcedTea6 HEAD: "6806261: BigDecimal.longValueExact() method throws NullPointerException" In-Reply-To: <1313163485.1653.40.camel@xranby-ESPRIMO-P7935> References: <4E45230D.8050807@redhat.com> <1313163485.1653.40.camel@xranby-ESPRIMO-P7935> Message-ID: <4E454C44.5000009@redhat.com> Xerxes R?nby wrote: ---snip--- > > Why are the both tests @bug 1234567? i think changing the bug id to > 6806261 would be better. Hi Xerxes, tt seems these numbers are just placeholder inserted to test codes to make JTreg tool happy :-) I wanted to make as few changes to original patch as possible, but in this case you are right - I'll push the changed patch. Thank you for reviewing! Pavel > > Since this backport only add more tests im all in favour for you to push > them. > > Cheers > Xerxes > From ddadacha at icedtea.classpath.org Fri Aug 12 09:12:26 2011 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Fri, 12 Aug 2011 16:12:26 +0000 Subject: /hg/icedtea-web: PR742: IcedTea-Web checks certs only upto 1 lev... Message-ID: changeset 68756a4f8cc0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=68756a4f8cc0 author: Danesh Dadachanji date: Thu Aug 11 14:11:41 2011 -0400 PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. diffstat: ChangeLog | 8 ++++++++ NEWS | 1 + netx/net/sourceforge/jnlp/tools/JarSigner.java | 8 +++++++- 3 files changed, 16 insertions(+), 1 deletions(-) diffs (44 lines): diff -r 27f08d58854f -r 68756a4f8cc0 ChangeLog --- a/ChangeLog Tue Aug 09 17:34:35 2011 -0400 +++ b/ChangeLog Thu Aug 11 14:11:41 2011 -0400 @@ -1,3 +1,11 @@ +2011-08-11 Danesh Dadachanji + + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring + them untrusted. + * NEWS: Updated. + * netx/net/sourceforge/jnlp/tools/JarSigner.java: + (checkTrustedCerts): All certs along certPath are now checked for trust. + 2011-08-09 Deepak Bhole PR771: IcedTea-Web certificate verification code does not use the right diff -r 27f08d58854f -r 68756a4f8cc0 NEWS --- a/NEWS Tue Aug 09 17:34:35 2011 -0400 +++ b/NEWS Thu Aug 11 14:11:41 2011 -0400 @@ -19,6 +19,7 @@ Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR771: IcedTea-Web certificate verification code does not use the right API + - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. New in release 1.1 (2011-XX-XX): * Security updates diff -r 27f08d58854f -r 68756a4f8cc0 netx/net/sourceforge/jnlp/tools/JarSigner.java --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Tue Aug 09 17:34:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Thu Aug 11 14:11:41 2011 -0400 @@ -373,7 +373,13 @@ alreadyTrustPublisher = CertificateUtils.inKeyStores(publisher, certKeyStores); X509Certificate root = (X509Certificate) getRoot(); KeyStore[] caKeyStores = KeyStores.getCAKeyStores(); - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); + // Check entire cert path for a trusted CA + for (Certificate c : certPath.getCertificates()) { + if ((rootInCacerts = CertificateUtils.inKeyStores( + (X509Certificate) c, caKeyStores))) { + break; + } + } } catch (Exception e) { // TODO: Warn user about not being able to // look through their cacerts/trusted.certs From ddadacha at redhat.com Fri Aug 12 09:14:28 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 12 Aug 2011 12:14:28 -0400 Subject: [RFC][icedtea-web] PR742: Fix checking multiple levels of JAR certs for trust In-Reply-To: <20110811162323.GL20852@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> <4E44015D.2040902@redhat.com> <20110811162323.GL20852@redhat.com> Message-ID: <4E455164.4050901@redhat.com> On 11/08/11 12:23 PM, Deepak Bhole wrote: > * Danesh Dadachanji [2011-08-11 12:20]: >> >> >> >> On 10/08/11 06:01 PM, Deepak Bhole wrote: >>> * Danesh Dadachanji [2011-08-10 17:20]: >>>> Hello, >>>> >>>> Here's an update for this bug. It took so long because of the (at >>>> the time) mysterious PR771. This will now check all the certificates >>>> along the certPath for trust in the store. It also displays a new >>>> icon[1] and automatically selects the "Always Trust" checkbox when >>>> an applet is verified. Along the way I found a miscalculation in the >>>> window size of the dialog. It was too small to display the entire >>>> icon so I increased the height. >>>> >>>> I've tested it on all of the certificate holding JNLPs on the test >>>> wiki page. >>>> >>>> The original reporter's applet is signed by an older version of a >>>> Thawte CA which I was unable to find online. The newer version is >>>> technically considered a different certificate (public keys are >>>> different) so this patch still won't verify their applet. >>>> >>> >>> Hi Danesh, >>> >>> Patch looks good. Couple of minor things: >>> >> >> Hi Deepak, >> >> Thanks for the review! >> >> I pulled the icon stuff out and into another patch because it isn't >> related to PR742. I will email a patch in a few moments. The subject >> will be: Update UI for SecurityDialog >> > > Hi Danesh, > > Looks good! The changelog lines seem to start with a space instead of a > tab. I assume this is just an error from pasting though. Please > make sure they start with tabs as the other others. > > After that, ok for HEAD. Yep, it was a copy paste error. Pushed to HEAD, thanks for the review! Danesh > > Cheers, > Deepak > >>> When a cert has been verified and we show a prompt with the new question >>> icon, the title still says "Warning - Security" ... we should probably >>> update this to something that doesn't look as alarming ... maybe >>> "Security approval needed" or something? >>> >>> Also, one code related fix below: >>> >>>> - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); >>>> + // Check entire cert path for a trusted CA >>>> + List certList = certPath.getCertificates(); >>>> + for (int i = 0; i != certList.size(); i++) { >>>> + if ((rootInCacerts = CertificateUtils.inKeyStores( >>>> + (X509Certificate) certList.get(i), caKeyStores))) { >>>> + break; >>>> + } >>>> + } >>> >>> It would be cleaner to use the Java foreach syntax with >>> certPath.getCertificates() directly... e.g.: >>> >>> for (Certificate c: certPath.getCertificates()) { >>> ... >>> } >> >> I changed it to this =) >> >> ChangeLog >> +2011-08-11 Danesh Dadachanji >> + >> + PR742: IcedTea-Web checks certs only upto 1 level deep before declaring >> + them untrusted. >> + * NEWS: Updated. >> + * netx/net/sourceforge/jnlp/tools/JarSigner.java: >> + (checkTrustedCerts): All certs along certPath are now checked for trust. >> + >> >>> >>> Cheers, >>> Deepak >> > >> diff -r 27f08d58854f NEWS >> --- a/NEWS Tue Aug 09 17:34:35 2011 -0400 >> +++ b/NEWS Thu Aug 11 12:16:08 2011 -0400 >> @@ -19,6 +19,7 @@ New in release 1.2 (2011-XX-XX): >> Common >> - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up >> - PR771: IcedTea-Web certificate verification code does not use the right API >> + - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. >> >> New in release 1.1 (2011-XX-XX): >> * Security updates >> diff -r 27f08d58854f netx/net/sourceforge/jnlp/tools/JarSigner.java >> --- a/netx/net/sourceforge/jnlp/tools/JarSigner.java Tue Aug 09 17:34:35 2011 -0400 >> +++ b/netx/net/sourceforge/jnlp/tools/JarSigner.java Thu Aug 11 12:16:08 2011 -0400 >> @@ -373,7 +373,13 @@ public class JarSigner implements CertVe >> alreadyTrustPublisher = CertificateUtils.inKeyStores(publisher, certKeyStores); >> X509Certificate root = (X509Certificate) getRoot(); >> KeyStore[] caKeyStores = KeyStores.getCAKeyStores(); >> - rootInCacerts = CertificateUtils.inKeyStores(root, caKeyStores); >> + // Check entire cert path for a trusted CA >> + for (Certificate c : certPath.getCertificates()) { >> + if ((rootInCacerts = CertificateUtils.inKeyStores( >> + (X509Certificate) c, caKeyStores))) { >> + break; >> + } >> + } >> } catch (Exception e) { >> // TODO: Warn user about not being able to >> // look through their cacerts/trusted.certs > From bugzilla-daemon at icedtea.classpath.org Fri Aug 12 10:20:49 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Aug 2011 17:20:49 +0000 Subject: [Bug 608] zero fails to build on icedtea7 trunk 20110529 on x86 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=608 Damien Raude-Morvan changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |drazzib at drazzib.com --- Comment #3 from Damien Raude-Morvan 2011-08-12 17:20:48 --- Hi, Zero/Shark now build fine under x86/x86_64 from icedtea-7 forest. "error: 'x86' is not a member of 'StubRoutines'" has been fixed here : http://icedtea.classpath.org/hg/icedtea7-forest/hotspot/rev/d438a5890756 Cheers, -- Damien Raude-Morvan -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From fw at deneb.enyo.de Fri Aug 12 12:20:58 2011 From: fw at deneb.enyo.de (Florian Weimer) Date: Fri, 12 Aug 2011 21:20:58 +0200 Subject: IcedTea6 1.8.9 and Zero/Shark In-Reply-To: <1313162483.1653.36.camel@xranby-ESPRIMO-P7935> ("Xerxes =?iso-8859-1?Q?R=E5nby=22's?= message of "Fri, 12 Aug 2011 17:21:23 +0200") References: <878vqzal5n.fsf@mid.deneb.enyo.de> <1313162483.1653.36.camel@xranby-ESPRIMO-P7935> Message-ID: <87obzuxwpx.fsf@mid.deneb.enyo.de> * Xerxes R?nby: > tor 2011-08-11 klockan 19:54 +0200 skrev Florian Weimer: >> I'm trying to prepare another security update for Debian. After >> applying the changes from 1.8.9, Debian's Zero/Shark does not build >> anymore. It hangs during testing; jtreg hangs after throwing an >> exception: > > Good news are that Shark and OpenJDK actually built. > > I agree its a pain that you see a stall during testing. The version > of Shark that you are packaging do contain known bugs, my best > suggestion to you are to upgrade the package. This is on the long-term stable branch. My options there are somewhat limited, particularly since I do not maintain the package on the development branch and cannot test changes there. It astonishes me that the failures are apparently CPU-specific. > The first shark release that passed the TCK was based on the icedtea > 1.9.x release in combination with hs17. We actually downgraded from hs16 to hs14, and we seem to have fewer bugs as a result. The failures I see could well be LLVM bugs, so changing Hotspot might not help much. Perhaps I should simply disable Zero builds on i386 and amd64. From bugzilla-daemon at icedtea.classpath.org Fri Aug 12 12:47:55 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Aug 2011 19:47:55 +0000 Subject: [Bug 774] New: How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Summary: How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack Product: IcedTea Version: 6-1.10.3 Platform: 32-bit OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: robert at linux-source.org Hello, I'm building my own distribution using a base Slackware. It's fully GNU or open source, and I'm having a serious issue with building icedtea 1.10.3 using gcj-java which comes from Slackware. I've try to mimic gcj to look more like "java" setup and nothing. It wont build. I'm using gcc/gcj version 4.5.3. Check the build scripts and gcj build env to see if something is wrong. This is the error which I'm getting: checking if /tmp/kng/gcj-jdk/bin/javah exhibits Classpath bug 39408... configure: error: The Java compiler failed -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Aug 12 12:48:34 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Aug 2011 19:48:34 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 --- Comment #1 from Robert Gabriel 2011-08-12 19:48:34 --- Created an attachment (id=561) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=561) gcj build env -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Aug 12 12:48:49 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 12 Aug 2011 19:48:49 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 --- Comment #2 from Robert Gabriel 2011-08-12 19:48:49 --- Created an attachment (id=562) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=562) build script -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From smohamma at redhat.com Fri Aug 12 13:18:40 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Fri, 12 Aug 2011 16:18:40 -0400 (EDT) Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <1694211708.1020149.1313180259121.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Message-ID: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> This is the updated patch that validates a signed JNLP file when an application is launched. If the signed JNLP file is invalid, it stop the launch of the application. ChangeLog: 2011-07-06 Saad Mohammad * netx/net/sourceforge/jnlp/resources/Messages.properties: Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Locates the jar file that contains the main class and verifies if a signed JNLP file is also located in that jar. This also checks 'lazy' jars if the the main class was not found in 'eager' jars. If the main jar was not found, a LaunchException is thrown which terminates the launch of the application. (checkForMain): A method that goes through each jar and checks to see if it has the main class. If the main class was found, it calls verifySignedJNLP() to verify if a valid signed JNLP file is also found in the jar. (verifySignedJNLP): A method that checks if the jar file contains a valid signed JNLP file. (closeInputStream): Closes an InputStream. (closeInputReader): Closes an InputStreamReader (showSignedJNLPWarning): Returns true if a signed JNLP warning should be shown in the security dialog. A signed JNLP warning should be displayed only if the main jar is signed but does not contain a signed JNLP file. (loadClassExt): Added a try/catch block when addNextResource() is called. (addNextResource): If the main jar has not been found, checkForMain() is called to check if the jar contains the main class, and verifies if a signed JNLP file is also located. * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: (addComponents): Displays the signed JNLP warning message if necessary. -------------- next part -------------- A non-text attachment was scrubbed... Name: 08-12-406 Type: text/x-patch Size: 16431 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110812/46b26f98/08-12-406.bin From xerxes at zafena.se Fri Aug 12 13:41:10 2011 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Fri, 12 Aug 2011 22:41:10 +0200 Subject: IcedTea6 1.8.9 and Zero/Shark In-Reply-To: <87obzuxwpx.fsf@mid.deneb.enyo.de> References: <878vqzal5n.fsf@mid.deneb.enyo.de> <1313162483.1653.36.camel@xranby-ESPRIMO-P7935> <87obzuxwpx.fsf@mid.deneb.enyo.de> Message-ID: <4E458FE6.3040501@zafena.se> On 2011-08-12 21:20, Florian Weimer wrote: > * Xerxes R?nby: > >> tor 2011-08-11 klockan 19:54 +0200 skrev Florian Weimer: >>> I'm trying to prepare another security update for Debian. After >>> applying the changes from 1.8.9, Debian's Zero/Shark does not build >>> anymore. It hangs during testing; jtreg hangs after throwing an >>> exception: >> >> Good news are that Shark and OpenJDK actually built. >> >> I agree its a pain that you see a stall during testing. The version >> of Shark that you are packaging do contain known bugs, my best >> suggestion to you are to upgrade the package. > > This is on the long-term stable branch. My options there are somewhat > limited, particularly since I do not maintain the package on the > development branch and cannot test changes there. Today I noticed that the JIT in Shark was practically disabled on the current developement branch after the bump to hs20. When i re-enabled the jit then i noticed that the buildbots hits the same bug as you describe when the buildbots test the latest Shark on x86_64 using Debian Squeeze. http://builder.classpath.org/icedtea/buildbot/builders/icedtea6-squeeze-x86_64-quick-shark/builds/128/steps/jtregcheck/logs/stdio The same version of icedtea6 and Shark pass on the ia32 builder that are running Ubuntu Lucid. http://builder.classpath.org/icedtea/buildbot/builders/icedtea6-lucid-ia32-quick-shark/builds/5/steps/jtregcheck_1/logs/stdio > > It astonishes me that the failures are apparently CPU-specific. LLVM have much cpu specific code, even some cpu feature code that kicks in on some core versions. Shark itself only have a hand-full places where it do generate different code when running on x86_64 compared to ia32. Places like: openjdk/hotspot/src/share/vm/shark$ grep LP64 * sharkBuilder.cpp: "llvm.atomic.cmp.swap.i" LP64_ONLY("64") NOT_LP64("32") ".p0i" LP64_ONLY("64") NOT_LP64("32"), sharkCacheDecache.hpp:#ifdef _LP64 sharkCacheDecache.hpp:#endif // _LP64 sharkContext.hpp: return LP64_ONLY(jlong_type()) NOT_LP64(jint_type()); > >> The first shark release that passed the TCK was based on the icedtea >> 1.9.x release in combination with hs17. > > We actually downgraded from hs16 to hs14, and we seem to have fewer > bugs as a result. The failures I see could well be LLVM bugs, so > changing Hotspot might not help much. > > Perhaps I should simply disable Zero builds on i386 and amd64. I will start examine the security patches and see if any of them broke Shark. It are possibly a x86_64 LLVM bug that now triggers after the slightly changed hotspot. Which version of LLVM are you using? I will look into this. Cheers Xerxes From fw at deneb.enyo.de Fri Aug 12 13:50:37 2011 From: fw at deneb.enyo.de (Florian Weimer) Date: Fri, 12 Aug 2011 22:50:37 +0200 Subject: IcedTea6 1.8.9 and Zero/Shark In-Reply-To: <4E458FE6.3040501@zafena.se> ("Xerxes =?iso-8859-1?Q?R=E5nby?= =?iso-8859-1?Q?=22's?= message of "Fri, 12 Aug 2011 22:41:10 +0200") References: <878vqzal5n.fsf@mid.deneb.enyo.de> <1313162483.1653.36.camel@xranby-ESPRIMO-P7935> <87obzuxwpx.fsf@mid.deneb.enyo.de> <4E458FE6.3040501@zafena.se> Message-ID: <87pqkatkv6.fsf@mid.deneb.enyo.de> * Xerxes R?nby: > Which version of LLVM are you using? LLVM 2.7, with minimal patching. > I will look into this. Thanks! From ptisnovs at icedtea.classpath.org Mon Aug 15 01:48:14 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 15 Aug 2011 08:48:14 +0000 Subject: /hg/icedtea6: 6806261: BigDecimal.longValueExact() method throws... Message-ID: changeset e93e0b640f06 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e93e0b640f06 author: ptisnovs date: Mon Aug 15 10:47:57 2011 +0200 6806261: BigDecimal.longValueExact() method throws NullPointerException diffstat: ChangeLog | 8 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch | 394 ++++++++++ 4 files changed, 405 insertions(+), 1 deletions(-) diffs (441 lines): diff -r f418ea6127b6 -r e93e0b640f06 ChangeLog --- a/ChangeLog Fri Aug 12 17:02:19 2011 +0200 +++ b/ChangeLog Mon Aug 15 10:47:57 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-15 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch: + Backport of 6806261: BigDecimal.longValueExact() method throws + NullPointerException + 2011-08-12 Xerxes R??nby Zero/Shark diff -r f418ea6127b6 -r e93e0b640f06 Makefile.am --- a/Makefile.am Fri Aug 12 17:02:19 2011 +0200 +++ b/Makefile.am Mon Aug 15 10:47:57 2011 +0200 @@ -374,7 +374,8 @@ patches/openjdk/6934356-Vector_writeObject_serialization_DL.patch \ patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch \ patches/pr690-shark-jit-hs20.patch \ - patches/pr696-zero-fast_aldc-hs20.patch + patches/pr696-zero-fast_aldc-hs20.patch \ + patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r f418ea6127b6 -r e93e0b640f06 NEWS --- a/NEWS Fri Aug 12 17:02:19 2011 +0200 +++ b/NEWS Mon Aug 15 10:47:57 2011 +0200 @@ -365,6 +365,7 @@ - S6669869: Beans.isDesignTime() and other queries should be per-AppContext - S6934356: Vector.writeObject() serialization may deadlock - S7036582: Improve test coverage of java.math.BigDecimal + - S6806261: BigDecimal.longValueExact() method throws NullPointerException * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - CA159: Exception handler blocks / register mixup. diff -r f418ea6127b6 -r e93e0b640f06 patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch Mon Aug 15 10:47:57 2011 +0200 @@ -0,0 +1,398 @@ +# HG changeset patch +# User xlu +# Date 1243208132 25200 +# Node ID 3994c5c669cbc5d8da999449bf702ce3588e7a3a +# Parent 8d2efec31d78546035943afd41f9bb07a89c7dca +6806261: BigDecimal.longValueExact() method throws NullPointerException +Summary: add various tests to test the change to 6622432 +Reviewed-by: darcy + +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigDecimal/EqualsTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigDecimal/EqualsTests.java Sun May 24 16:35:32 2009 -0700 +@@ -0,0 +1,91 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6806261 ++ * @summary Test BigDecimal.equals() method. ++ * @author xlu ++ */ ++ ++import java.math.*; ++import static java.math.BigDecimal.*; ++ ++public class EqualsTests { ++ ++ public static void main(String argv[]) { ++ int failures = 0; ++ ++ BigDecimal[][] testValues = { ++ // The even index is supposed to return true for equals call and ++ // the odd index is supposed to return false, i.e. not equal. ++ {ZERO, ZERO}, ++ {ONE, TEN}, ++ ++ {valueOf(Integer.MAX_VALUE), valueOf(Integer.MAX_VALUE)}, ++ {valueOf(Long.MAX_VALUE), valueOf(-Long.MAX_VALUE)}, ++ ++ {valueOf(12345678), valueOf(12345678)}, ++ {valueOf(123456789), valueOf(123456788)}, ++ ++ {new BigDecimal("123456789123456789123"), ++ new BigDecimal(new BigInteger("123456789123456789123"))}, ++ {new BigDecimal("123456789123456789123"), ++ new BigDecimal(new BigInteger("123456789123456789124"))}, ++ ++ {valueOf(Long.MIN_VALUE), new BigDecimal("-9223372036854775808")}, ++ {new BigDecimal("9223372036854775808"), valueOf(Long.MAX_VALUE)}, ++ ++ {valueOf(Math.round(Math.pow(2, 10))), new BigDecimal("1024")}, ++ {new BigDecimal("1020"), valueOf(Math.pow(2, 11))}, ++ ++ {new BigDecimal(BigInteger.valueOf(2).pow(65)), ++ new BigDecimal("36893488147419103232")}, ++ {new BigDecimal("36893488147419103231.81"), ++ new BigDecimal("36893488147419103231.811"), ++ } ++ }; ++ ++ boolean expected = Boolean.TRUE; ++ for (BigDecimal[] testValuePair : testValues) { ++ failures += equalsTest(testValuePair[0], testValuePair[1], expected); ++ expected = !expected; ++ } ++ ++ if (failures > 0) { ++ throw new RuntimeException("Inccured " + failures + ++ " failures while testing equals."); ++ } ++ } ++ ++ private static int equalsTest(BigDecimal l, BigDecimal r, boolean expected) { ++ boolean result = l.equals(r); ++ int failed = (result == expected) ? 0 : 1; ++ ++ if (failed == 1) { ++ System.err.println(l + " .equals(" + r + ") => " + result + ++ "\n\tExpected " + expected); ++ } ++ return failed; ++ } ++} +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigDecimal/LongValueExactTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigDecimal/LongValueExactTests.java Sun May 24 16:35:32 2009 -0700 +@@ -0,0 +1,87 @@ ++/* ++ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/** ++ * @test ++ * @bug 6806261 ++ * @summary Tests of BigDecimal.longValueExact ++ */ ++import java.math.*; ++ ++public class LongValueExactTests { ++ ++ private static int longValueExactTests() { ++ int failures = 0; ++ ++ String[] testStrings = { ++ "9223372036854775807", ++ "9223372036854775807.0", ++ "9223372036854775807.00", ++ "-9223372036854775808", ++ "-9223372036854775808.0", ++ "-9223372036854775808.00", ++ }; ++ ++ for (String longValue : testStrings) { ++ try { ++ BigDecimal bd = new BigDecimal(longValue); ++ long longValueExact = bd.longValueExact(); ++ } catch (Exception e) { ++ failures++; ++ } ++ } ++ ++ // The following Strings are supposed to make longValueExact throw ++ // ArithmeticException. ++ String[] testStrings2 = { ++ "9223372036854775808", ++ "9223372036854775808.0", ++ "9223372036854775808.00", ++ "-9223372036854775809", ++ "-9223372036854775808.1", ++ "-9223372036854775808.01", ++ }; ++ ++ for (String bigValue : testStrings2) { ++ try { ++ BigDecimal bd = new BigDecimal(bigValue); ++ long longValueExact = bd.longValueExact(); ++ failures++; ++ } catch (ArithmeticException e) { ++ // Success; ++ } ++ } ++ return failures; ++ } ++ ++ public static void main(String argv[]) { ++ int failures = 0; ++ ++ failures += longValueExactTests(); ++ ++ if (failures > 0) { ++ throw new RuntimeException("Incurred " + failures + ++ " failures while testing longValueExact."); ++ } ++ } ++} +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigDecimal/PrecisionTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigDecimal/PrecisionTests.java Sun May 24 16:35:32 2009 -0700 +@@ -0,0 +1,94 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6806261 ++ * @summary Test that precision() is computed properly. ++ * @author Joseph D. Darcy ++ */ ++ ++import java.math.*; ++import static java.math.BigDecimal.*; ++ ++public class PrecisionTests { ++ private static BigDecimal NINE = valueOf(9); ++ ++ public static void main(String argv[]) { ++ int failures = 0; ++ ++ // Smallest and largest values of a given length ++ BigDecimal[] testValues = { ++ valueOf(1), valueOf(9), ++ }; ++ ++ failures += testPrecision(new BigDecimal(0), 1); ++ ++ for(int i = 1; i < 100; i++) { ++ for(BigDecimal bd : testValues) { ++ failures += testPrecision(bd, i); ++ failures += testPrecision(bd.negate(), i); ++ } ++ ++ testValues[0] = testValues[0].multiply(TEN); ++ testValues[1] = testValues[1].multiply(TEN).add(NINE); ++ } ++ ++ // The following test tries to cover testings for precision of long values ++ BigDecimal[] randomTestValues = { ++ valueOf(2147483648L), // 2^31: 10 digits ++ valueOf(-2147483648L), // -2^31: 10 digits ++ valueOf(98893745455L), // random: 11 digits ++ valueOf(3455436789887L), // random: 13 digits ++ valueOf(140737488355328L), // 2^47: 15 digits ++ valueOf(-140737488355328L), // -2^47: 15 digits ++ valueOf(7564232235739573L), // random: 16 digits ++ valueOf(25335434990002322L), // random: 17 digits ++ valueOf(9223372036854775807L), // 2^63 - 1: 19 digits ++ valueOf(-9223372036854775807L) // -2^63 + 1: 19 digits ++ }; ++ // The array below contains the expected precision of the above numbers ++ int[] expectedPrecision = {10, 10, 11, 13, 15, 15, 16, 17, 19, 19}; ++ for (int i = 0; i < randomTestValues.length; i++) { ++ failures += testPrecision(randomTestValues[i], expectedPrecision[i]); ++ } ++ ++ if (failures > 0) { ++ throw new RuntimeException("Incurred " + failures + ++ " failures while testing precision."); ++ } ++ } ++ ++ private static int testPrecision(BigDecimal bd, int expected) { ++ int precision = bd.precision(); ++ ++ // System.out.printf("Testing %s, expected %d%n", bd, expected); ++ ++ if (precision != expected) { ++ System.err.printf("For (%s).precision expected %d, got %d%n", ++ bd, expected, precision); ++ return 1; ++ } ++ return 0; ++ } ++} +diff -r 8d2efec31d78 -r 3994c5c669cb test/java/math/BigInteger/CompareToTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigInteger/CompareToTests.java Sun May 24 16:35:32 2009 -0700 +@@ -0,0 +1,101 @@ ++/* ++ * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6473768 ++ * @summary Tests of BigDecimal.compareTo ++ * @author Joseph D. Darcy ++ */ ++import java.math.*; ++import static java.math.BigDecimal.*; ++ ++public class CompareToTests { ++ private static int compareToTests() { ++ int failures = 0; ++ ++ final BigDecimal MINUS_ONE = BigDecimal.ONE.negate(); ++ ++ // First operand, second operand, expected compareTo result ++ BigDecimal [][] testCases = { ++ // Basics ++ {valueOf(0), valueOf(0), ZERO}, ++ {valueOf(0), valueOf(1), MINUS_ONE}, ++ {valueOf(1), valueOf(2), MINUS_ONE}, ++ {valueOf(2), valueOf(1), ONE}, ++ {valueOf(10), valueOf(10), ZERO}, ++ ++ // Significands would compare differently than scaled value ++ {valueOf(2,1), valueOf(2), MINUS_ONE}, ++ {valueOf(2,-1), valueOf(2), ONE}, ++ {valueOf(1,1), valueOf(2), MINUS_ONE}, ++ {valueOf(1,-1), valueOf(2), ONE}, ++ {valueOf(5,-1), valueOf(2), ONE}, ++ ++ // Boundary and near boundary values ++ {valueOf(Long.MAX_VALUE), valueOf(Long.MAX_VALUE), ZERO}, ++ {valueOf(Long.MAX_VALUE-1), valueOf(Long.MAX_VALUE), MINUS_ONE}, ++ {valueOf(Long.MIN_VALUE), valueOf(Long.MAX_VALUE), MINUS_ONE}, ++ {valueOf(Long.MIN_VALUE+1), valueOf(Long.MAX_VALUE), MINUS_ONE}, ++ {valueOf(Long.MIN_VALUE), valueOf(Long.MIN_VALUE), ZERO}, ++ {valueOf(Long.MIN_VALUE+1), valueOf(Long.MAX_VALUE), ONE}, ++ }; ++ ++ for (BigDecimal[] testCase : testCases) { ++ BigDecimal a = testCase[0]; ++ BigDecimal a_negate = a.negate(); ++ BigDecimal b = testCase[1]; ++ BigDecimal b_negate = b.negate(); ++ int expected = testCase[2].intValue(); ++ ++ failures += compareToTest(a, b, expected); ++ failures += compareToTest(a_negate, b, -1); ++ failures += compareToTest(a, b_negate, 1); ++ failures += compareToTest(a_negate, b_negate, -expected); ++ } ++ ++ ++ return failures; ++ } ++ ++ private static int compareToTest(BigDecimal a, BigDecimal b, int expected) { ++ int result = a.compareTo(b); ++ int failed = (result==expected) ? 0 : 1; ++ if (result == 1) { ++ System.err.println("(" + a + ").compareTo(" + b + ") => " + result + ++ "\n\tExpected " + expected); ++ } ++ return result; ++ } ++ ++ public static void main(String argv[]) { ++ int failures = 0; ++ ++ failures += compareToTests(); ++ ++ if (failures > 0) { ++ throw new RuntimeException("Incurred " + failures + ++ " failures while testing exact compareTo."); ++ } ++ } ++} From ptisnovs at icedtea.classpath.org Mon Aug 15 02:10:22 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 15 Aug 2011 09:10:22 +0000 Subject: /hg/icedtea6: Added LDFLAGS for JamVM to fix the SELinux executa... Message-ID: changeset 773cee7545f2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=773cee7545f2 author: ptisnovs date: Mon Aug 15 11:10:04 2011 +0200 Added LDFLAGS for JamVM to fix the SELinux executable flag issue. diffstat: ChangeLog | 5 +++++ Makefile.am | 1 + NEWS | 1 + 3 files changed, 7 insertions(+), 0 deletions(-) diffs (34 lines): diff -r e93e0b640f06 -r 773cee7545f2 ChangeLog --- a/ChangeLog Mon Aug 15 10:47:57 2011 +0200 +++ b/ChangeLog Mon Aug 15 11:10:04 2011 +0200 @@ -1,3 +1,8 @@ +2011-08-15 Pavel Tisnovsky + + * Makefile.am: added LDFLAGS for JamVM to fix the SELinux + executable flag issue. + 2011-08-15 Pavel Tisnovsky * Makefile.am: added new patch diff -r e93e0b640f06 -r 773cee7545f2 Makefile.am --- a/Makefile.am Mon Aug 15 10:47:57 2011 +0200 +++ b/Makefile.am Mon Aug 15 11:10:04 2011 +0200 @@ -1814,6 +1814,7 @@ stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp if BUILD_JAMVM cd jamvm/jamvm && \ + LDFLAGS="-Xlinker -z -Xlinker noexecstack" \ ./autogen.sh --with-java-runtime-library=openjdk \ --prefix=$(abs_top_builddir)/jamvm/install ; \ $(MAKE) ; \ diff -r e93e0b640f06 -r 773cee7545f2 NEWS --- a/NEWS Mon Aug 15 10:47:57 2011 +0200 +++ b/NEWS Mon Aug 15 11:10:04 2011 +0200 @@ -402,6 +402,7 @@ - Add extra includes to get rid off compiler warning. - Rework OpenJDK storage of native thread structure. - Implement remaining OpenJDK Array reflection interface. + - Added LDFLAGS for JamVM to fix the SELinux executable flag issue. * Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. From xranby at icedtea.classpath.org Mon Aug 15 02:49:10 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 15 Aug 2011 09:49:10 +0000 Subject: /hg/icedtea6: JamVM: Updated to 2011-08-15 revision. Message-ID: changeset a690c9e7e3bc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a690c9e7e3bc author: Xerxes Ranby date: Mon Aug 15 11:49:11 2011 +0200 JamVM: Updated to 2011-08-15 revision. 2011-08-15 Xerxes Ranby JamVM - Fix typo in definition of ACC_MIRANDA. - Intern strings when creating a StackTraceElement. * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2011-08-15 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 4 ++-- NEWS | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diffs (43 lines): diff -r 773cee7545f2 -r a690c9e7e3bc ChangeLog --- a/ChangeLog Mon Aug 15 11:10:04 2011 +0200 +++ b/ChangeLog Mon Aug 15 11:49:11 2011 +0200 @@ -1,3 +1,13 @@ +2011-08-15 Xerxes R??nby + + JamVM + - Fix typo in definition of ACC_MIRANDA. + - Intern strings when creating a StackTraceElement. + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2011-08-15 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-15 Pavel Tisnovsky * Makefile.am: added LDFLAGS for JamVM to fix the SELinux diff -r 773cee7545f2 -r a690c9e7e3bc Makefile.am --- a/Makefile.am Mon Aug 15 11:10:04 2011 +0200 +++ b/Makefile.am Mon Aug 15 11:49:11 2011 +0200 @@ -11,8 +11,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = 0501bb8bea978c2d37e7b5caaa0969c92ae148b4 -JAMVM_SHA256SUM = 5a21290813affb5878d27995e487c60e7d0b85793987bb814baf162f179acedb +JAMVM_VERSION = b8e5dbad856be3b3bb0309467264053d1e2c58a9 +JAMVM_SHA256SUM = 9178f7d85851f6c908de1e1114ec158dc5fbc4aa4025478cac16a12459ac9a51 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 diff -r 773cee7545f2 -r a690c9e7e3bc NEWS --- a/NEWS Mon Aug 15 11:10:04 2011 +0200 +++ b/NEWS Mon Aug 15 11:49:11 2011 +0200 @@ -375,6 +375,8 @@ - Threadlist & threadobject improvements. * JamVM - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. + - Fix typo in definition of ACC_MIRANDA. + - Intern strings when creating a StackTraceElement. - Remove empty clobber. - Use dots instead of slashes in classname for exception. - Correct thrown exception by bootstrap loader. From xranby at icedtea.classpath.org Mon Aug 15 03:08:06 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 15 Aug 2011 10:08:06 +0000 Subject: /hg/icedtea6: JamVM: Ignore assertions and verify options. Message-ID: changeset 0e26a40dddf3 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0e26a40dddf3 author: Xerxes Ranby date: Mon Aug 15 12:08:18 2011 +0200 JamVM: Ignore assertions and verify options. 2011-08-15 Xerxes R?nby JamVM - Ignore assertions and verify options. * NEWS: Updated. * patches/jamvm/ignore-assertions-and-verify-options.patch: New patch. * Makefile.am: Apply JamVM patch. diffstat: ChangeLog | 8 ++++++ Makefile.am | 3 +- NEWS | 1 + patches/jamvm/ignore-assertions-and-verify-options.patch | 19 ++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletions(-) diffs (63 lines): diff -r a690c9e7e3bc -r 0e26a40dddf3 ChangeLog --- a/ChangeLog Mon Aug 15 11:49:11 2011 +0200 +++ b/ChangeLog Mon Aug 15 12:08:18 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-15 Xerxes R??nby + + JamVM + - Ignore assertions and verify options. + * NEWS: Updated. + * patches/jamvm/ignore-assertions-and-verify-options.patch: New patch. + * Makefile.am: Apply JamVM patch. + 2011-08-15 Xerxes R??nby JamVM diff -r a690c9e7e3bc -r 0e26a40dddf3 Makefile.am --- a/Makefile.am Mon Aug 15 11:49:11 2011 +0200 +++ b/Makefile.am Mon Aug 15 12:08:18 2011 +0200 @@ -397,7 +397,8 @@ if BUILD_JAMVM ICEDTEA_PATCHES += \ - patches/jamvm/jmm_GetLongAttribute_201.patch + patches/jamvm/jmm_GetLongAttribute_201.patch \ + patches/jamvm/ignore-assertions-and-verify-options.patch endif if ENABLE_PULSE_JAVA diff -r a690c9e7e3bc -r 0e26a40dddf3 NEWS --- a/NEWS Mon Aug 15 11:49:11 2011 +0200 +++ b/NEWS Mon Aug 15 12:08:18 2011 +0200 @@ -375,6 +375,7 @@ - Threadlist & threadobject improvements. * JamVM - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. + - Ignore assertions and verify options. - Fix typo in definition of ACC_MIRANDA. - Intern strings when creating a StackTraceElement. - Remove empty clobber. diff -r a690c9e7e3bc -r 0e26a40dddf3 patches/jamvm/ignore-assertions-and-verify-options.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jamvm/ignore-assertions-and-verify-options.patch Mon Aug 15 12:08:18 2011 +0200 @@ -0,0 +1,20 @@ +Index: jamvm/jamvm/src/init.c +=================================================================== +--- jamvm.orig/jamvm/src/init.c 2011-08-12 14:12:00.775411188 +0200 ++++ jamvm/jamvm/src/init.c 2011-08-12 16:22:24.110205028 +0200 +@@ -272,6 +272,15 @@ + /* Compatibility options */ + } else if(strcmp(string, "-Xcomp") == 0 || + strcmp(string, "-Xbatch") == 0 || ++ strcmp(string, "-ea") == 0 || ++ strcmp(string, "-da") == 0 || ++ strcmp(string, "-dsa") == 0 || ++ strcmp(string, "-esa") == 0 || ++ strncmp(string, "-ea:", 4) == 0 || ++ strncmp(string, "-da:", 4) == 0 || ++ strncmp(string, "-dsa:", 5) == 0 || ++ strncmp(string, "-esa:", 5) == 0 || ++ strncmp(string, "-Xverify:", 9) == 0 || + strncmp(string, "-XX:", 4) == 0) { + /* Ignore */ + } else From xranby at icedtea.classpath.org Mon Aug 15 05:29:20 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Mon, 15 Aug 2011 12:29:20 +0000 Subject: /hg/icedtea6: JamVM: Fix regression introduced by; Intern string... Message-ID: changeset 79671aecc0b0 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=79671aecc0b0 author: Xerxes Ranby date: Mon Aug 15 14:29:30 2011 +0200 JamVM: Fix regression introduced by; Intern strings when creating a StackTraceElement. 2011-08-15 Xerxes Ranby JamVM - Fix regression introduced by, Intern strings when creating a StackTraceElement, changeset 4dbc2ee340a600fc17451dfbcfc09e1f9844fc59. * NEWS: Updated. * patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.pa tch: New patch. * Makefile.am: Apply JamVM patch. diffstat: ChangeLog | 9 +++++++ Makefile.am | 3 +- patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch | 12 ++++++++++ 3 files changed, 23 insertions(+), 1 deletions(-) diffs (46 lines): diff -r 0e26a40dddf3 -r 79671aecc0b0 ChangeLog --- a/ChangeLog Mon Aug 15 12:08:18 2011 +0200 +++ b/ChangeLog Mon Aug 15 14:29:30 2011 +0200 @@ -1,3 +1,12 @@ +2011-08-15 Xerxes R??nby + + JamVM + - Fix regression introduced by, Intern strings when creating a StackTraceElement, + changeset 4dbc2ee340a600fc17451dfbcfc09e1f9844fc59. + * NEWS: Updated. + * patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch: New patch. + * Makefile.am: Apply JamVM patch. + 2011-08-15 Xerxes R??nby JamVM diff -r 0e26a40dddf3 -r 79671aecc0b0 Makefile.am --- a/Makefile.am Mon Aug 15 12:08:18 2011 +0200 +++ b/Makefile.am Mon Aug 15 14:29:30 2011 +0200 @@ -398,7 +398,8 @@ if BUILD_JAMVM ICEDTEA_PATCHES += \ patches/jamvm/jmm_GetLongAttribute_201.patch \ - patches/jamvm/ignore-assertions-and-verify-options.patch + patches/jamvm/ignore-assertions-and-verify-options.patch \ + patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch endif if ENABLE_PULSE_JAVA diff -r 0e26a40dddf3 -r 79671aecc0b0 patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch Mon Aug 15 14:29:30 2011 +0200 @@ -0,0 +1,13 @@ +Index: jamvm/jamvm/src/excep.c +=================================================================== +--- jamvm.orig/jamvm/src/excep.c 2011-08-15 14:19:32.757781965 +0200 ++++ jamvm/jamvm/src/excep.c 2011-08-15 14:19:43.601836044 +0200 +@@ -311,7 +311,7 @@ + executeMethod(ste, ste_init_mb, + findInternedString(classname), + findInternedString(methodname), +- findInternedString(filename), ++ filename, + is_native ? -2 : mapPC2LineNo(mb, pc)); + + if(exceptionOccurred()) From omajid at redhat.com Mon Aug 15 06:31:06 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 15 Aug 2011 09:31:06 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Message-ID: <4E491F9A.9000505@redhat.com> On 08/12/2011 04:18 PM, Saad Mohammad wrote: > This is the updated patch that validates a signed JNLP file when an > application is launched. If the signed JNLP file is invalid, it stop > the launch of the application. > > > ChangeLog: > > 2011-07-06 Saad Mohammad That date seems off by a bit ;) > * netx/net/sourceforge/jnlp/resources/Messages.properties: > Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > (initializeResources): Locates the jar file that contains the main class > and verifies if a signed JNLP file is also located in that jar. This also > checks 'lazy' jars if the the main class was not found in 'eager' jars. > If the main jar was not found, a LaunchException is thrown which terminates > the launch of the application. > (checkForMain): A method that goes through each jar and checks to see > if it has the main class. If the main class was found, it calls > verifySignedJNLP() to verify if a valid signed JNLP file is also found in > the jar. > (verifySignedJNLP): A method that checks if the jar file contains a valid > signed JNLP file. > (closeInputStream): Closes an InputStream. > (closeInputReader): Closes an InputStreamReader > (showSignedJNLPWarning): Returns true if a signed JNLP warning should be > shown in the security dialog. A signed JNLP warning should be displayed > only if the main jar is signed but does not contain a signed JNLP file. > (loadClassExt): Added a try/catch block when addNextResource() is called. > (addNextResource): If the main jar has not been found, checkForMain() is > called to check if the jar contains the main class, and verifies if a signed > JNLP file is also located. > * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: > (addComponents): Displays the signed JNLP warning message if necessary. > > > 08-12-406 > > > diff -r 68756a4f8cc0 netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Aug 11 14:11:41 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Aug 12 16:06:56 2011 -0400 > @@ -80,6 +80,7 @@ > LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. > LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. > LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. > +LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. > > JNotApplet=File is not an applet. > JNotApplication=File is not an application. > @@ -210,6 +211,7 @@ > SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. > SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? > SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" > +SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. > > # Security - used for the More Information dialog > SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. > diff -r 68756a4f8cc0 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Aug 11 14:11:41 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Fri Aug 12 16:06:56 2011 -0400 > @@ -19,8 +19,11 @@ > > import java.io.File; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > +import java.io.OutputStream; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > @@ -47,10 +50,13 @@ > import java.util.jar.JarFile; > import java.util.jar.Manifest; > > +import net.sourceforge.jnlp.ApplicationDesc; > import net.sourceforge.jnlp.DownloadOptions; > import net.sourceforge.jnlp.ExtensionDesc; > import net.sourceforge.jnlp.JARDesc; > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.JNLPMatcher; > +import net.sourceforge.jnlp.JNLPMatcherException; > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ParseException; > import net.sourceforge.jnlp.PluginBridge; > @@ -81,6 +87,16 @@ > // extension classes too so that main file classes can load > // resources in an extension. > > + /** Signed JNLP File and Template */ > + final public static String template = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; > + final public static String application = "JNLP-INF/APPLICATION.JNLP"; > + A stylistic nit: the variables should be named TEMPLATE and APPLICATION. > + /** True if the application has a signed JNLP File */ > + private boolean isSignedJNLP = false; > + > + /** True if the application is signed but is missing a signed JNLP File (warning should be shown); otherwise false */ > + private static boolean signedJNLPWarning= false; > + Why is it static? Also, is this behaviour (if the jar is signed but does not have a sigend jnlp file, then a warning is shown) documented somewhere? I ask because I find it rather strange. AFAIK, a lot of applications fit this pattern. I am not sure if showing warnings for all of these makes sense. > /** map from JNLPFile url to shared classloader */ > private static Map urlToLoader = > new HashMap(); // never garbage collected! > @@ -153,6 +169,9 @@ > > /** Loader for codebase (which is a path, rather than a file) */ > private CodeBaseClassLoader codeBaseLoader; > + > + /** True if a Jar file has been located that contains the main class; otherwise false */ > + boolean foundMainJar= false; > Private, please. > /** > * Create a new JNLPClassLoader from the specified file. > @@ -460,6 +479,29 @@ > !SecurityDialogs.showNotAllSignedWarningDialog(file)) > throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), R("LSignedAppJarUsingUnsignedJarInfo")); > > + > + //Check for main class in the downloaded jars, and check/verify signed JNLP file > + checkForMain(initialJars); > + > + //If jar with main class was not found, check available resources > + while (!foundMainJar&& available != null&& available.size() != 0) { > + addNextResource(); > + } > + > + //If jar with main class was not found and there are no more available jars, throw a LaunchException > + if(!foundMainJar&& (available == null || available.size() == 0)) > + { > + throw new LaunchException(file, null, > + R("LSFatal"), R("LCClient"), R("LCantDetermineMainClass"), > + R("LCantDetermineMainClassInfo")); > + } > + > + //If main jar was found, but a signed JNLP file was not located > + if(!isSignedJNLP&& foundMainJar) > + { > + signedJNLPWarning= true; > + } > + Some of the indentation/spacing/newlines here look a bit odd. Please see http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style. > //user does not trust this publisher > if (!js.getAlreadyTrustPublisher()) { > checkTrustWithUser(js); > @@ -518,8 +560,214 @@ > System.err.println(mfe.getMessage()); > } > } > + activateJars(initialJars); > + } > + > + /*** > + * Checks for the jar that contains the main class. If the main class was > + * found, it checks to see if the jar is signed and whether it contains a > + * signed JNLP file > + * > + * @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 > + */ Please see http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style > + private void checkForMain(List jars) throws LaunchException { > > - activateJars(initialJars); > + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); > + String mainClass = ad.getMainClass(); > + for (int i = 0; i< jars.size(); i++) { > + > + try { > + File localFile = tracker.getCacheFile(jars.get(i).getLocation()); > + > + if (localFile == null) > + throw new NullPointerException( > + "Could not locate jar file, returned null"); > + > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().replaceAll("/", "."); > + > + if (jeName.startsWith(mainClass)&& jeName.endsWith(".class")) { I think this might match extra classes too.. I am thinking of inner classes here. If the main class is named my.main.Class then this might match my.main.Class$Inner.class too. Now, it's not likely that my.main.Class will be in a separate jar from my.main.Class$Inner, but you might want to fix this anyway. > + foundMainJar = true; > + verifySignedJNLP(jars.get(i), jarFile); > + break; > + } > + } > + } > + catch(IOException e) > + { > + // After this exception is caught, it is > + // escaped. This will skip the jarFile that may > + // have thrown this exception and move on to the > + // next jarFile (if there are any) > + } Please see the code style. > + } > + } > + > + /** > + * Is called by checkForMain() to check if the jar file is signed and if it > + * contains a signed JNLP file. > + * > + * @param jarDesc > + * JARDesc of jar > + * @param jarFile > + * The jar file > + * @throws LaunchException > + * Thrown if the signed JNLP file, within the main jar, fails to > + * be verified or does not match > + */ > + private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) > + throws LaunchException { > + > + JarSigner signer = new JarSigner(); > + List desc = new ArrayList(); > + desc.add(jarDesc); > + > + // Initialize streams > + InputStream inStream = null; > + InputStreamReader inputReader = null; > + FileReader fr = null; > + InputStreamReader jnlpReader = null; > + > + try { > + signer.verifyJars(desc, tracker); > + > + if (signer.allJarsSigned()) { // If the jar is signed > + > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(template) || jeName.equals(application)) { > + > + if (JNLPRuntime.isDebug()) > + System.err.println("\tCreating Jar InputStream from JarEntry"); > + > + inStream = jarFile.getInputStream(je); > + inputReader = new InputStreamReader(inStream); > + I am not sure if performance here is a concern, but normally, you buffer Streams, but wrapping it in a BufferedReader/BufferedInputStream. > + if (JNLPRuntime.isDebug()) > + System.err.println("\tCreating File InputStream from lauching JNLP file"); > + > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + // If the file is on the local file system, use original path, otherwise find cached file > + if (url.getProtocol().toLowerCase().equals("file")) > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + fr = new FileReader(jn); > + jnlpReader = fr; > + > + //Initialize JNLPMatcher class > + JNLPMatcher matcher; > + > + if (jeName.equals(application)) { // If signed application was found > + if (JNLPRuntime.isDebug()) > + System.err.println("\tAPPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, false); > + } else { // Otherwise template was found > + if (JNLPRuntime.isDebug()) > + System.err.println("\tAPPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, true); > + } > + > + // If signed JNLP file does not matches launching JNLP file, throw JNLPMatcherException > + if (!matcher.isMatch()) > + throw new JNLPMatcherException("Signed Application did not match launching JNLP File"); > + > + this.isSignedJNLP = true; > + if (JNLPRuntime.isDebug()) > + System.err.println("\t** Signed Application Verification Successful **"); > + > + break; > + } We dont normally output debug info with tabs, or stars. I am not quite objecting to it, but is there a reason you have made the output that way? > + } > + } > + } catch (JNLPMatcherException e) { > + > + // Throw LaunchException if signed JNLP file fails to be verified or > + // fails to match launching JNLP file > + throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), > + R("LSignedJNLPFileDidNotMatch"), R(e.getMessage())); > + > + // Throwing this exception will fail to initialize the > + // application resulting in the termination of the > + // application > + > + } catch (Exception e) { > + > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(System.err); > + > + // After this exception is caught, it is escaped. > + // If an exception is thrown while handling the jar file, > + // (mainly for JarSigner.verifyJars) > + // it assumes the jar file is unsigned and skip > + // the check for a signed JNLP file > + } finally { > + > + //Close all streams > + closeInputStream(inStream); > + closeInputReader(inputReader); > + closeInputReader(fr); > + closeInputReader(jnlpReader); > + } > + > + if (JNLPRuntime.isDebug()) > + System.err.println("ENDING check for signed JNLP file..."); > + } > + > + /*** > + * Closes an input stream > + * > + * @param stream > + * The input stream that will be closed > + */ > + private void closeInputStream(InputStream stream) { > + if (stream != null) > + try { > + stream.close(); > + } catch (Exception e) { > + e.printStackTrace(System.err); > + } > + } > + > + /*** > + * Closes an input stream reader > + * > + * @param stream > + * The input stream reader that will be closed > + */ > + private void closeInputReader(InputStreamReader stream) { > + if (stream != null) > + try { > + stream.close(); > + } catch (Exception e) { > + e.printStackTrace(System.err); > + } > + } > + How about replacing both these methods with a close(Closeable closeable) method? Since both InputStream and Reader derive from this, you wont need separate methods. Also, close() only throws IOException, so you might want to just catch that. > + > + public static boolean showSignedJNLPWarning() > + { > + return signedJNLPWarning; > } Why is this static? Also, the name can be a bit misleading. Invoking a method named Foo will normally take the action implied. This method does not show the warning. > > private void checkTrustWithUser(JarSigner js) throws LaunchException { > @@ -1154,7 +1402,18 @@ > > // add resources until found > while (true) { > - JNLPClassLoader addedTo = addNextResource(); > + JNLPClassLoader addedTo = null; > + > + try { > + addedTo = addNextResource(); > + } catch (LaunchException e) { > + > + // This method will never handle any search for the main > + // class [It is handled in initializeResources()]. > + // Therefore, this exception will never be thrown here and > + // is escaped > + If this code should never get executed, then I would put extra checks in here instead of swallowing the exception. How about something like: throw new IllegalStateException(e); > + } > > if (addedTo == null) > throw new ClassNotFoundException(name); > @@ -1245,8 +1504,9 @@ > * no more resources to add, the method returns immediately. > * > * @return the classloader that resources were added to, or null > + * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match > */ > - protected JNLPClassLoader addNextResource() { > + protected JNLPClassLoader addNextResource() throws LaunchException { > if (available.size() == 0) { > for (int i = 1; i< loaders.length; i++) { > JNLPClassLoader result = loaders[i].addNextResource(); > @@ -1262,6 +1522,7 @@ > jars.add(available.get(0)); > > fillInPartJars(jars); > + checkForMain(jars); > activateJars(jars); > > return this; > diff -r 68756a4f8cc0 netx/net/sourceforge/jnlp/security/MoreInfoPane.java > --- a/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Thu Aug 11 14:11:41 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Fri Aug 12 16:06:56 2011 -0400 > @@ -53,6 +53,8 @@ > import javax.swing.JPanel; > import javax.swing.SwingConstants; > > +import net.sourceforge.jnlp.runtime.JNLPClassLoader; > + Is there a way you can avoid this dependency? This really should not be tied to the classloader. > /** > * Provides the panel for the More Info dialog. This dialog shows details about an > * application's signing status. > @@ -72,6 +74,10 @@ > private void addComponents() { > ArrayList details = certVerifier.getDetails(); > > + //Show signed JNLP warning if the signed main jar does not have a signed JNLP file > + if(JNLPClassLoader.showSignedJNLPWarning()) > + details.add(R("SJNLPFileIsNotSigned")); > + This doesn't look right at all. This dialog is only shown if there is a security problem in the first place. I am not sure if the user should be shown this warning, but this will make it so that the user _only_ sees it if there is a bigger security concern. > int numLabels = details.size(); > JPanel errorPanel = new JPanel(new GridLayout(numLabels, 1)); > errorPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); > @@ -88,6 +94,10 @@ > > errorPanel.add(new JLabel(htmlWrap(details.get(i)), icon, SwingConstants.LEFT)); > } > + > + //Remove signed JNLP warning > + if(JNLPClassLoader.showSignedJNLPWarning()) > + details.remove(details.size()-1); > Are you removing the warning unconditionally? > JPanel buttonsPanel = new JPanel(new BorderLayout()); > JButton certDetails = new JButton(R("SCertificateDetails")); > Cheers, Omair From smohammad at redhat.com Mon Aug 15 09:04:08 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 15 Aug 2011 12:04:08 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E491F9A.9000505@redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E491F9A.9000505@redhat.com> Message-ID: <4E494378.80308@redhat.com> Thanks for reviewing my patch. On 08/15/2011 09:31 AM, Omair Majid wrote: > On 08/12/2011 04:18 PM, Saad Mohammad wrote: >> This is the updated patch that validates a signed JNLP file when an >> application is launched. If the signed JNLP file is invalid, it stop >> the launch of the application. >> >> >> ChangeLog: >> >> 2011-07-06 Saad Mohammad > > That date seems off by a bit ;) Hehe, good catch! > >> * netx/net/sourceforge/jnlp/resources/Messages.properties: >> Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >> (initializeResources): Locates the jar file that contains the >> main class >> and verifies if a signed JNLP file is also located in that jar. >> This also >> checks 'lazy' jars if the the main class was not found in 'eager' >> jars. >> If the main jar was not found, a LaunchException is thrown which >> terminates >> the launch of the application. >> (checkForMain): A method that goes through each jar and checks to >> see >> if it has the main class. If the main class was found, it calls >> verifySignedJNLP() to verify if a valid signed JNLP file is also >> found in >> the jar. >> (verifySignedJNLP): A method that checks if the jar file contains >> a valid >> signed JNLP file. >> (closeInputStream): Closes an InputStream. >> (closeInputReader): Closes an InputStreamReader >> (showSignedJNLPWarning): Returns true if a signed JNLP warning >> should be >> shown in the security dialog. A signed JNLP warning should be >> displayed >> only if the main jar is signed but does not contain a signed JNLP >> file. >> (loadClassExt): Added a try/catch block when addNextResource() is >> called. >> (addNextResource): If the main jar has not been found, >> checkForMain() is >> called to check if the jar contains the main class, and verifies >> if a signed >> JNLP file is also located. >> * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: >> (addComponents): Displays the signed JNLP warning message if >> necessary. >> >> >> 08-12-406 >> >> >> diff -r 68756a4f8cc0 >> netx/net/sourceforge/jnlp/resources/Messages.properties >> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu >> Aug 11 14:11:41 2011 -0400 >> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri >> Aug 12 16:06:56 2011 -0400 >> @@ -80,6 +80,7 @@ >> LUnsignedJarWithSecurityInfo=Application requested security >> permissions, but jars are not signed. >> LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. >> LSignedAppJarUsingUnsignedJarInfo=The main application jar is >> signed, but some of the jars it is using aren't. >> +LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the >> launching JNLP file. >> >> JNotApplet=File is not an applet. >> JNotApplication=File is not an application. >> @@ -210,6 +211,7 @@ >> SNotAllSignedDetail=This application contains both signed and >> unsigned code. While signed code is safe if you trust the provider, >> unsigned code may imply code outside of the trusted provider's control. >> SNotAllSignedQuestion=Do you wish to proceed and run this >> application anyway? >> SAuthenticationPrompt=The {0} server at {1} is requesting >> authentication. It says "{2}" >> +SJNLPFileIsNotSigned=This application contains a digital signature >> in which the launching JNLP file is not signed. >> >> # Security - used for the More Information dialog >> SBadKeyUsage=Resources contain entries whose signer certificate's >> KeyUsage extension doesn't allow code signing. >> diff -r 68756a4f8cc0 >> netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu >> Aug 11 14:11:41 2011 -0400 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Fri >> Aug 12 16:06:56 2011 -0400 >> @@ -19,8 +19,11 @@ >> >> import java.io.File; >> import java.io.FileOutputStream; >> +import java.io.FileReader; >> import java.io.IOException; >> import java.io.InputStream; >> +import java.io.InputStreamReader; >> +import java.io.OutputStream; >> import java.net.MalformedURLException; >> import java.net.URL; >> import java.net.URLClassLoader; >> @@ -47,10 +50,13 @@ >> import java.util.jar.JarFile; >> import java.util.jar.Manifest; >> >> +import net.sourceforge.jnlp.ApplicationDesc; >> import net.sourceforge.jnlp.DownloadOptions; >> import net.sourceforge.jnlp.ExtensionDesc; >> import net.sourceforge.jnlp.JARDesc; >> import net.sourceforge.jnlp.JNLPFile; >> +import net.sourceforge.jnlp.JNLPMatcher; >> +import net.sourceforge.jnlp.JNLPMatcherException; >> import net.sourceforge.jnlp.LaunchException; >> import net.sourceforge.jnlp.ParseException; >> import net.sourceforge.jnlp.PluginBridge; >> @@ -81,6 +87,16 @@ >> // extension classes too so that main file classes can load >> // resources in an extension. >> >> + /** Signed JNLP File and Template */ >> + final public static String template = >> "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; >> + final public static String application = >> "JNLP-INF/APPLICATION.JNLP"; >> + > > A stylistic nit: the variables should be named TEMPLATE and APPLICATION. > >> + /** True if the application has a signed JNLP File */ >> + private boolean isSignedJNLP = false; >> + >> + /** True if the application is signed but is missing a signed >> JNLP File (warning should be shown); otherwise false */ >> + private static boolean signedJNLPWarning= false; >> + > > Why is it static? This is a static variable because showSignedJNLPWarning() is a static method that returns this variable. This is used to determine if a signed JNLP warning should be shown in the 'More Information' panel. > > Also, is this behaviour (if the jar is signed but does not have a > sigend jnlp file, then a warning is shown) documented somewhere? I ask > because I find it rather strange. AFAIK, a lot of applications fit > this pattern. I am not sure if showing warnings for all of these makes > sense. Unfortunately, I did not find any documentations that state anything about displaying a warning, but it's the way Oracle behave. I assume IcedTea-web should behave similar? I have also noticed that Oracle only display the warning if the jar file is not verified. If it's a verified jar, it does not show any warning regarding a signed JNLP. I have not made that change with IcedTea-Web, I was debating whether it should show this warning every time or not. I think I will implement that on my updated patch. > >> /** map from JNLPFile url to shared classloader */ >> private static Map urlToLoader = >> new HashMap(); // never >> garbage collected! >> @@ -153,6 +169,9 @@ >> >> /** Loader for codebase (which is a path, rather than a file) */ >> private CodeBaseClassLoader codeBaseLoader; >> + >> + /** True if a Jar file has been located that contains the main >> class; otherwise false */ >> + boolean foundMainJar= false; >> > > Private, please. Will do. > >> /** >> * Create a new JNLPClassLoader from the specified file. >> @@ -460,6 +479,29 @@ >> >> !SecurityDialogs.showNotAllSignedWarningDialog(file)) >> throw new LaunchException(file, null, >> R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), >> R("LSignedAppJarUsingUnsignedJarInfo")); >> >> + >> + //Check for main class in the downloaded jars, and >> check/verify signed JNLP file >> + checkForMain(initialJars); >> + >> + //If jar with main class was not found, check >> available resources >> + while (!foundMainJar&& available != null&& >> available.size() != 0) { >> + addNextResource(); >> + } >> + >> + //If jar with main class was not found and there are >> no more available jars, throw a LaunchException >> + if(!foundMainJar&& (available == null || >> available.size() == 0)) >> + { >> + throw new LaunchException(file, null, >> + R("LSFatal"), R("LCClient"), >> R("LCantDetermineMainClass"), >> + R("LCantDetermineMainClassInfo")); >> + } >> + >> + //If main jar was found, but a signed JNLP file was >> not located >> + if(!isSignedJNLP&& foundMainJar) >> + { >> + signedJNLPWarning= true; >> + } >> + > > Some of the indentation/spacing/newlines here look a bit odd. Please > see http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style. I am not sure why the indentations are off, but I will make the changes. > >> //user does not trust this publisher >> if (!js.getAlreadyTrustPublisher()) { >> checkTrustWithUser(js); >> @@ -518,8 +560,214 @@ >> System.err.println(mfe.getMessage()); >> } >> } >> + activateJars(initialJars); >> + } >> + >> + /*** >> + * Checks for the jar that contains the main class. If the main >> class was >> + * found, it checks to see if the jar is signed and whether it >> contains a >> + * signed JNLP file >> + * >> + * @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 >> + */ > > Please see http://icedtea.classpath.org/wiki/IcedTea-Web#Code_style > >> + private void checkForMain(List jars) throws >> LaunchException { >> >> - activateJars(initialJars); >> + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); >> + String mainClass = ad.getMainClass(); >> + for (int i = 0; i< jars.size(); i++) { >> + >> + try { >> + File localFile = >> tracker.getCacheFile(jars.get(i).getLocation()); >> + >> + if (localFile == null) >> + throw new NullPointerException( >> + "Could not locate jar file, returned >> null"); >> + >> + JarFile jarFile = new JarFile(localFile); >> + Enumeration entries = jarFile.entries(); >> + JarEntry je; >> + >> + while (entries.hasMoreElements()) { >> + je = entries.nextElement(); >> + String jeName = je.getName().replaceAll("/", "."); >> + >> + if (jeName.startsWith(mainClass)&& >> jeName.endsWith(".class")) { > > I think this might match extra classes too.. I am thinking of inner > classes here. If the main class is named my.main.Class then this might > match my.main.Class$Inner.class too. Now, it's not likely that > my.main.Class will be in a separate jar from my.main.Class$Inner, but > you might want to fix this anyway. Okay, I will implement this change. > >> + foundMainJar = true; >> + verifySignedJNLP(jars.get(i), jarFile); >> + break; >> + } >> + } >> + } >> + catch(IOException e) >> + { >> + // After this exception is caught, it is >> + // escaped. This will skip the jarFile that may >> + // have thrown this exception and move on to the >> + // next jarFile (if there are any) >> + } > > Please see the code style. > >> + } >> + } >> + >> + /** >> + * Is called by checkForMain() to check if the jar file is >> signed and if it >> + * contains a signed JNLP file. >> + * >> + * @param jarDesc >> + * JARDesc of jar >> + * @param jarFile >> + * The jar file >> + * @throws LaunchException >> + * Thrown if the signed JNLP file, within the main >> jar, fails to >> + * be verified or does not match >> + */ >> + private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) >> + throws LaunchException { >> + >> + JarSigner signer = new JarSigner(); >> + List desc = new ArrayList(); >> + desc.add(jarDesc); >> + >> + // Initialize streams >> + InputStream inStream = null; >> + InputStreamReader inputReader = null; >> + FileReader fr = null; >> + InputStreamReader jnlpReader = null; >> + >> + try { >> + signer.verifyJars(desc, tracker); >> + >> + if (signer.allJarsSigned()) { // If the jar is signed >> + >> + Enumeration entries = jarFile.entries(); >> + JarEntry je; >> + >> + while (entries.hasMoreElements()) { >> + je = entries.nextElement(); >> + String jeName = je.getName().toUpperCase(); >> + >> + if (jeName.equals(template) || >> jeName.equals(application)) { >> + >> + if (JNLPRuntime.isDebug()) >> + System.err.println("\tCreating Jar >> InputStream from JarEntry"); >> + >> + inStream = jarFile.getInputStream(je); >> + inputReader = new InputStreamReader(inStream); >> + > > I am not sure if performance here is a concern, but normally, you > buffer Streams, but wrapping it in a BufferedReader/BufferedInputStream. I will have to look into this one but I will wrap it in BufferedReader/BufferedInputStream like you suggest and see how it works out. > >> + if (JNLPRuntime.isDebug()) >> + System.err.println("\tCreating File >> InputStream from lauching JNLP file"); >> + >> + JNLPFile jnlp = this.getJNLPFile(); >> + URL url = jnlp.getFileLocation(); >> + File jn = null; >> + >> + // If the file is on the local file system, >> use original path, otherwise find cached file >> + if >> (url.getProtocol().toLowerCase().equals("file")) >> + jn = new File(url.getPath()); >> + else >> + jn = CacheUtil.getCacheFile(url, null); >> + >> + fr = new FileReader(jn); >> + jnlpReader = fr; >> + >> + //Initialize JNLPMatcher class >> + JNLPMatcher matcher; >> + >> + if (jeName.equals(application)) { // If >> signed application was found >> + if (JNLPRuntime.isDebug()) >> + >> System.err.println("\tAPPLICATION.JNLP has been located within signed >> JAR. Starting verfication..."); >> + >> + matcher = new JNLPMatcher(inputReader, >> jnlpReader, false); >> + } else { // Otherwise template was found >> + if (JNLPRuntime.isDebug()) >> + >> System.err.println("\tAPPLICATION_TEMPLATE.JNLP has been located >> within signed JAR. Starting verfication..."); >> + >> + matcher = new JNLPMatcher(inputReader, >> jnlpReader, true); >> + } >> + >> + // If signed JNLP file does not matches >> launching JNLP file, throw JNLPMatcherException >> + if (!matcher.isMatch()) >> + throw new JNLPMatcherException("Signed >> Application did not match launching JNLP File"); >> + >> + this.isSignedJNLP = true; >> + if (JNLPRuntime.isDebug()) >> + System.err.println("\t** Signed >> Application Verification Successful **"); >> + >> + break; >> + } > > We dont normally output debug info with tabs, or stars. I am not quite > objecting to it, but is there a reason you have made the output that way? The only reason why I was outputting it with tabs so it was much easier to read. I will remove the tabs to have a consistent output pattern. > >> + } >> + } >> + } catch (JNLPMatcherException e) { >> + >> + // Throw LaunchException if signed JNLP file fails to be >> verified or >> + // fails to match launching JNLP file >> + throw new LaunchException(file, null, R("LSFatal"), >> R("LCClient"), >> + R("LSignedJNLPFileDidNotMatch"), >> R(e.getMessage())); >> + >> + // Throwing this exception will fail to initialize the >> + // application resulting in the termination of the >> + // application >> + >> + } catch (Exception e) { >> + >> + if (JNLPRuntime.isDebug()) >> + e.printStackTrace(System.err); >> + >> + // After this exception is caught, it is escaped. >> + // If an exception is thrown while handling the jar file, >> + // (mainly for JarSigner.verifyJars) >> + // it assumes the jar file is unsigned and skip >> + // the check for a signed JNLP file >> + } finally { >> + >> + //Close all streams >> + closeInputStream(inStream); >> + closeInputReader(inputReader); >> + closeInputReader(fr); >> + closeInputReader(jnlpReader); >> + } >> + >> + if (JNLPRuntime.isDebug()) >> + System.err.println("ENDING check for signed JNLP file..."); >> + } >> + >> + /*** >> + * Closes an input stream >> + * >> + * @param stream >> + * The input stream that will be closed >> + */ >> + private void closeInputStream(InputStream stream) { >> + if (stream != null) >> + try { >> + stream.close(); >> + } catch (Exception e) { >> + e.printStackTrace(System.err); >> + } >> + } >> + >> + /*** >> + * Closes an input stream reader >> + * >> + * @param stream >> + * The input stream reader that will be closed >> + */ >> + private void closeInputReader(InputStreamReader stream) { >> + if (stream != null) >> + try { >> + stream.close(); >> + } catch (Exception e) { >> + e.printStackTrace(System.err); >> + } >> + } >> + > > How about replacing both these methods with a close(Closeable > closeable) method? Since both InputStream and Reader derive from this, > you wont need separate methods. Also, close() only throws IOException, > so you might want to just catch that. I was for a way to close both type of stream. Thanks, I will make this change too :) > >> + >> + public static boolean showSignedJNLPWarning() >> + { >> + return signedJNLPWarning; >> } > > Why is this static? Also, the name can be a bit misleading. Invoking a > method named Foo will normally take the action implied. This > method does not show the warning. This is a static method because MoreInfroPane calls this method without having a JNLPClassLoader object to determine if a signed jnlp warning should be displayed. > >> >> private void checkTrustWithUser(JarSigner js) throws >> LaunchException { >> @@ -1154,7 +1402,18 @@ >> >> // add resources until found >> while (true) { >> - JNLPClassLoader addedTo = addNextResource(); >> + JNLPClassLoader addedTo = null; >> + >> + try { >> + addedTo = addNextResource(); >> + } catch (LaunchException e) { >> + >> + // This method will never handle any search for the >> main >> + // class [It is handled in initializeResources()]. >> + // Therefore, this exception will never be thrown >> here and >> + // is escaped >> + > > If this code should never get executed, then I would put extra checks > in here instead of swallowing the exception. How about something like: > > throw new IllegalStateException(e); Yes, I will do that. > >> + } >> >> if (addedTo == null) >> throw new ClassNotFoundException(name); >> @@ -1245,8 +1504,9 @@ >> * no more resources to add, the method returns immediately. >> * >> * @return the classloader that resources were added to, or null >> + * @throws LaunchException Thrown if the signed JNLP file, >> within the main jar, fails to be verified or does not match >> */ >> - protected JNLPClassLoader addNextResource() { >> + protected JNLPClassLoader addNextResource() throws >> LaunchException { >> if (available.size() == 0) { >> for (int i = 1; i< loaders.length; i++) { >> JNLPClassLoader result = loaders[i].addNextResource(); >> @@ -1262,6 +1522,7 @@ >> jars.add(available.get(0)); >> >> fillInPartJars(jars); >> + checkForMain(jars); >> activateJars(jars); >> >> return this; >> diff -r 68756a4f8cc0 >> netx/net/sourceforge/jnlp/security/MoreInfoPane.java >> --- a/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Thu Aug >> 11 14:11:41 2011 -0400 >> +++ b/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Fri Aug >> 12 16:06:56 2011 -0400 >> @@ -53,6 +53,8 @@ >> import javax.swing.JPanel; >> import javax.swing.SwingConstants; >> >> +import net.sourceforge.jnlp.runtime.JNLPClassLoader; >> + > > Is there a way you can avoid this dependency? This really should not > be tied to the classloader. Perhaps, I can create another class that holds the static variable that can be used by MoreInfoPane? I will have to look into this one. I will get back to you. > >> /** >> * Provides the panel for the More Info dialog. This dialog shows >> details about an >> * application's signing status. >> @@ -72,6 +74,10 @@ >> private void addComponents() { >> ArrayList details = certVerifier.getDetails(); >> >> + //Show signed JNLP warning if the signed main jar does not >> have a signed JNLP file >> + if(JNLPClassLoader.showSignedJNLPWarning()) >> + details.add(R("SJNLPFileIsNotSigned")); >> + > > This doesn't look right at all. This dialog is only shown if there is > a security problem in the first place. I am not sure if the user > should be shown this warning, but this will make it so that the user > _only_ sees it if there is a bigger security concern. > The way Oracle is showing their warning message is only if the jar does not have a verified signature. If the jar is verified and is part of the trusted certificates, the warning is not shown (even if a signed JNLP file is not found). I have not implemented this part, but I will send it in the next patch. I don't think it should show this warning for any other dialog. I think it should only show it when it's with an unverified jar. What do you think? >> int numLabels = details.size(); >> JPanel errorPanel = new JPanel(new GridLayout(numLabels, 1)); >> errorPanel.setBorder(BorderFactory.createEmptyBorder(10, >> 10, 10, 10)); >> @@ -88,6 +94,10 @@ >> >> errorPanel.add(new JLabel(htmlWrap(details.get(i)), >> icon, SwingConstants.LEFT)); >> } >> + >> + //Remove signed JNLP warning >> + if(JNLPClassLoader.showSignedJNLPWarning()) >> + details.remove(details.size()-1); >> > > Are you removing the warning unconditionally? I am removing this warning after it has been added to the 'More Information' panel. When I add to details, it also adds it to certVerifier. That's why I am removing it because I don't want it to be part of certVerifier permanently. > >> JPanel buttonsPanel = new JPanel(new BorderLayout()); >> JButton certDetails = new JButton(R("SCertificateDetails")); >> > > Cheers, > Omair -- Cheers, Saad Mohammad From omajid at redhat.com Mon Aug 15 09:51:53 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 15 Aug 2011 12:51:53 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E494378.80308@redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E491F9A.9000505@redhat.com> <4E494378.80308@redhat.com> Message-ID: <4E494EA9.9040108@redhat.com> On 08/15/2011 12:04 PM, Saad Mohammad wrote: >>> + /** True if the application has a signed JNLP File */ >>> + private boolean isSignedJNLP = false; >>> + >>> + /** True if the application is signed but is missing a signed JNLP >>> File (warning should be shown); otherwise false */ >>> + private static boolean signedJNLPWarning= false; >>> + >> >> Why is it static? > > This is a static variable because showSignedJNLPWarning() is a static > method that returns this variable. This is used to determine if a signed > JNLP warning should be shown in the 'More Information' panel. > I dont think this is a good idea. Because the variable is static, we cant determine which classloader this corresponds to. If multiple classloaders are instantiated (which is the case for applets and extension jnlps) then this may give us the wrong answer. >> >> Also, is this behaviour (if the jar is signed but does not have a >> sigend jnlp file, then a warning is shown) documented somewhere? I ask >> because I find it rather strange. AFAIK, a lot of applications fit >> this pattern. I am not sure if showing warnings for all of these makes >> sense. > > Unfortunately, I did not find any documentations that state anything > about displaying a warning, but it's the way Oracle behave. I assume > IcedTea-web should behave similar? > > I have also noticed that Oracle only display the warning if the jar file > is not verified. If it's a verified jar, it does not show any warning > regarding a signed JNLP. I have not made that change with IcedTea-Web, I > was debating whether it should show this warning every time or not. I > think I will implement that on my updated patch. > Hm.. I tested Oracle's javaws with SweetHome3D and I got the warning dialog, but I dont see any signed JNLP warnings with JPathReport: http://www.jgoodies.com/download/jpathreport/jpathreport.jnlp There might be a more specific condition to showing the warning than just a missing signed jnlp file. >>> + private void checkForMain(List jars) throws LaunchException { >>> >>> - activateJars(initialJars); >>> + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); >>> + String mainClass = ad.getMainClass(); >> Hmm... I just realized that this may not work well at all. What if file.getLaunchInfo() returns an AppletDesc? >>> + >>> + public static boolean showSignedJNLPWarning() >>> + { >>> + return signedJNLPWarning; >>> } >> >> Why is this static? Also, the name can be a bit misleading. Invoking a >> method named Foo will normally take the action implied. This >> method does not show the warning. > > This is a static method because MoreInfroPane calls this method without > having a JNLPClassLoader object to determine if a signed jnlp warning > should be displayed. > Okay, but that wont work properly in the presence of multiple JNLPClassLoaders. Please make this non-static. Better yet, see how other security problems are handled (so they can be shown in security warnings properly) and make this mirror that. >> >> Is there a way you can avoid this dependency? This really should not >> be tied to the classloader. > > Perhaps, I can create another class that holds the static variable that > can be used by MoreInfoPane? > I will have to look into this one. I will get back to you. > Please avoid using static variables here - even if they wrapped in another class. They wont work with multiple instances of JNLPClassLoader active. >>> + //Show signed JNLP warning if the signed main jar does not have a >>> signed JNLP file >>> + if(JNLPClassLoader.showSignedJNLPWarning()) >>> + details.add(R("SJNLPFileIsNotSigned")); >>> + >> >> This doesn't look right at all. This dialog is only shown if there is >> a security problem in the first place. I am not sure if the user >> should be shown this warning, but this will make it so that the user >> _only_ sees it if there is a bigger security concern. >> > > The way Oracle is showing their warning message is only if the jar does > not have a verified signature. If the jar is verified and is part of the > trusted certificates, the warning is not shown (even if a signed JNLP > file is not found). I have not implemented this part, but I will send it > in the next patch. > > I don't think it should show this warning for any other dialog. I think > it should only show it when it's with an unverified jar. > What do you think? > As I said above, there is probably a more specific condition to showing the warning than a missing the signed jnlp file. Please try and see if you can figure it out. Once you have that, you will need to show the security warning. I would try and integrate this into the way the rest of the security information is passed from JNLPClassLoader to CertWarningPane and MoreInfoPane (and any other appropriate places). >>> int numLabels = details.size(); >>> JPanel errorPanel = new JPanel(new GridLayout(numLabels, 1)); >>> errorPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); >>> @@ -88,6 +94,10 @@ >>> >>> errorPanel.add(new JLabel(htmlWrap(details.get(i)), icon, >>> SwingConstants.LEFT)); >>> } >>> + >>> + //Remove signed JNLP warning >>> + if(JNLPClassLoader.showSignedJNLPWarning()) >>> + details.remove(details.size()-1); >>> >> >> Are you removing the warning unconditionally? > > I am removing this warning after it has been added to the 'More > Information' panel. When I add to details, it also adds it to certVerifier. > That's why I am removing it because I don't want it to be part of > certVerifier permanently. > Oh. I see. A comment explaining this would have been useful :) However, I think it might be a better idea to integrate this into JarSigner/CertVerifier. Cheers, Omair From bugzilla-daemon at icedtea.classpath.org Mon Aug 15 19:22:20 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Aug 2011 02:22:20 +0000 Subject: [Bug 690] Shark fails to JIT using hs20. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=690 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com --- Comment #3 from Andrew John Hughes 2011-08-16 02:22:20 --- Are you planning to backport this to 1.10? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Tue Aug 16 01:33:46 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 16 Aug 2011 10:33:46 +0200 Subject: Reviewer needed: backport of "6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError" into IcedTea6 HEAD Message-ID: <4E4A2B6A.6040704@redhat.com> Greetings, here's another fix from OpenJDK7 I'd like to backport to IcedTea6 HEAD: "6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError" This patch contains fix for BigInteger class and also regression test. The behaviour of BigInteger was tested on RHEL 5 x86_64. ChangeLog entry: 2011-08-16 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch: Backport of 6371401:java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError Can anybody please review this patch? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 6371401_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110816/9749bbbd/6371401_hg.diff From ptisnovs at icedtea.classpath.org Tue Aug 16 02:58:59 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 16 Aug 2011 09:58:59 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/BlankImage.java: Message-ID: changeset d09593767afc in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=d09593767afc author: Pavel Tisnovsky date: Tue Aug 16 12:00:43 2011 +0200 * src/org/gfxtest/testsuites/BlankImage.java: Added new test cases (rendering using transparency etc.), added JavaDoc. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BlankImage.java | 278 ++++++++++++++++++++++++++++- 2 files changed, 276 insertions(+), 7 deletions(-) diffs (334 lines): diff -r fd3ba8985b59 -r d09593767afc ChangeLog --- a/ChangeLog Fri Aug 12 16:05:39 2011 +0200 +++ b/ChangeLog Tue Aug 16 12:00:43 2011 +0200 @@ -1,3 +1,8 @@ +2011-08-16 Pavel Tisnovsky + * src/org/gfxtest/testsuites/BlankImage.java: + Added new test cases (rendering using transparency etc.), added + JavaDoc. + 2011-08-12 Pavel Tisnovsky * src/org/gfxtest/testsuites/NormalQuadraticCurves.java: * src/org/gfxtest/testsuites/NormalQuadraticCurvesAsPaths.java: diff -r fd3ba8985b59 -r d09593767afc src/org/gfxtest/testsuites/BlankImage.java --- a/src/org/gfxtest/testsuites/BlankImage.java Fri Aug 12 16:05:39 2011 +0200 +++ b/src/org/gfxtest/testsuites/BlankImage.java Tue Aug 16 12:00:43 2011 +0200 @@ -58,47 +58,311 @@ public class BlankImage extends GfxTest { - public TestResult test0(TestImage image, Graphics2D graphics) + /** + * Basic test of graphics test framework - it just passes and does not erase + * nor fill the image. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBasicTest(TestImage image, Graphics2D graphics) { return TestResult.PASSED; } - public TestResult test1(TestImage image, Graphics2D graphics) + /** + * This test fill image with pure black color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithBlackColor(TestImage image, Graphics2D graphics) { image.fillImage(Color.BLACK); return TestResult.PASSED; } - public TestResult test2(TestImage image, Graphics2D graphics) + /** + * This test fill image with pure white color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithWhiteColor(TestImage image, Graphics2D graphics) + { + image.fillImage(Color.WHITE); + return TestResult.PASSED; + } + + /** + * This test fill image with pure red color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithRedColor(TestImage image, Graphics2D graphics) { image.fillImage(Color.RED); return TestResult.PASSED; } - public TestResult test3(TestImage image, Graphics2D graphics) + /** + * This test fill image with pure green color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithGreenColor(TestImage image, Graphics2D graphics) { image.fillImage(Color.GREEN); return TestResult.PASSED; } - public TestResult test4(TestImage image, Graphics2D graphics) + /** + * This test fill image with pure blue color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithBlueColor(TestImage image, Graphics2D graphics) { image.fillImage(Color.BLUE); return TestResult.PASSED; } - public TestResult test5(TestImage image, Graphics2D graphics) + /** + * This test fill image with mixed color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithMixedColor1(TestImage image, Graphics2D graphics) { image.fillImage(new Color(0x7f, 0x7f, 0x00)); return TestResult.PASSED; } - public TestResult test6(TestImage image, Graphics2D graphics) + /** + * This test fill image with mixed color. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithMixedColor2(TestImage image, Graphics2D graphics) { image.fillImage(new Color(0.5f, 0.0f, 1.0f)); return TestResult.PASSED; } + /** + * This test fill image with semitransparent red color with 0% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentRedColor1(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.0f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent red color with 33% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentRedColor2(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.33f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent red color with 66% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentRedColor3(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.66f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent red color with 100% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentRedColor4(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 1.0f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent blue color with 0% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentBlueColor1(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(0.0f, 0.0f, 1.0f, 0.0f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent blue color with 33% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentBlueColor2(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(0.0f, 0.0f, 1.0f, 0.33f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent blue color with 66% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentBlueColor3(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(0.0f, 0.0f, 1.0f, 0.66f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent blue color with 100% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentBlueColor4(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(0.0f, 0.0f, 1.0f, 1.0f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent green color with 0% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentGreenColor1(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.0f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent green color with 33% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentGreenColor2(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.33f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent green color with 66% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentGreenColor3(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 0.66f)); + return TestResult.PASSED; + } + + /** + * This test fill image with semitransparent green color with 100% opacity. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testFillWithSemiTransparentGreenColor4(TestImage image, Graphics2D graphics) + { + image.fillImage(new Color(1.0f, 0.0f, 0.0f, 1.0f)); + return TestResult.PASSED; + } + + /** + * Entry point to the test suite. + * + * @param args not used in this case + */ public static void main(String[] args) { new BlankImage().runTestSuite(args); From bugzilla-daemon at icedtea.classpath.org Tue Aug 16 05:58:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Aug 2011 12:58:42 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Robert Gabriel changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Tue Aug 16 06:34:51 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 16 Aug 2011 14:34:51 +0100 Subject: Reviewer needed: backport of "6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError" into IcedTea6 HEAD In-Reply-To: <4E4A2B6A.6040704@redhat.com> References: <4E4A2B6A.6040704@redhat.com> Message-ID: <20110816133451.GG16879@rivendell.middle-earth.co.uk> On 10:33 Tue 16 Aug , Pavel Tisnovsky wrote: > Greetings, > > here's another fix from OpenJDK7 I'd like to backport to IcedTea6 HEAD: > "6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws > StackOverflowError" > > This patch contains fix for BigInteger class and also regression test. > The behaviour of BigInteger was tested on RHEL 5 x86_64. > > > ChangeLog entry: > > 2011-08-16 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * > patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch: > Backport of 6371401:java.math.BigInteger.shift(Integer.MIN_VALUE) > throws StackOverflowError > > > Can anybody please review this patch? > > Thank you in advance, > Pavel Fine. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 16 06:44:33 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 16 Aug 2011 14:44:33 +0100 Subject: Reviewer needed: fix for JamVM's SElinux execstack issue for IcedTea6 HEAD In-Reply-To: <1313163994.1653.45.camel@xranby-ESPRIMO-P7935> References: <4E4543D9.4030905@redhat.com> <1313163994.1653.45.camel@xranby-ESPRIMO-P7935> Message-ID: <20110816134433.GH16879@rivendell.middle-earth.co.uk> On 17:46 Fri 12 Aug , Xerxes R?nby wrote: > fre 2011-08-12 klockan 17:16 +0200 skrev Pavel Tisnovsky: > > Greetings, > > > > as Omair and Xerxes pointed out yesterday, the SELinux executable stack > > issue found in JamVM running under Fedora 14 x86_64 is caused by linker > > settings. I've tried to add LDFLAGS to disable the settings of > > executable bit for stack and it works perfectly in my case. > > > > Can anybody please review this simple fix I've made in Makefile.am? > > AFAIK the proposed linker settings is applicable to all platforms. > > > > Here's ChangeLog entry: > > > > 2011-08-12 Pavel Tisnovsky > > > > * Makefile.am: added LDFLAGS for JamVM to fix the SELinux > > executable flag issue. > > > > Cheers, > > Pavel > > vanligt textdokument-bilaga (jamvm_execstack_hg.diff) > > diff -r 4c641e5e379d Makefile.am > > --- a/Makefile.am Thu Aug 11 16:48:40 2011 +0200 > > +++ b/Makefile.am Fri Aug 12 11:06:23 2011 -0400 > > @@ -1811,6 +1811,7 @@ > > stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp > > if BUILD_JAMVM > > cd jamvm/jamvm && \ > > + LDFLAGS="-Xlinker -z -Xlinker noexecstack" \ > > ./autogen.sh --with-java-runtime-library=openjdk \ > > --prefix=$(abs_top_builddir)/jamvm/install ; \ > > $(MAKE) ; \ > > Nice fix, i would suggest to add a NEWS entry. > > Pushing this and having the buildbots build and test JamVM on all > various combinations of distributions and various default gcc settings > are the only sane way to know if these linker flags can introduce any > sideffects. > > In in favour for you to push this fix to icedtea6, icedtea7 and the > icedtea branch, thanks. > > Cheers, > Xerxes > It's probably worth also getting this fixed upstream in JamVM. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ptisnovs at icedtea.classpath.org Tue Aug 16 07:09:35 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 16 Aug 2011 14:09:35 +0000 Subject: /hg/icedtea6: S6371401: java.math.BigInteger.shift(Integer.MIN_V... Message-ID: changeset 1bec501e2dc7 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=1bec501e2dc7 author: ptisnovs date: Tue Aug 16 16:09:29 2011 +0200 S6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError diffstat: ChangeLog | 8 + Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch | 109 ++++++++++ 4 files changed, 120 insertions(+), 1 deletions(-) diffs (154 lines): diff -r 79671aecc0b0 -r 1bec501e2dc7 ChangeLog --- a/ChangeLog Mon Aug 15 14:29:30 2011 +0200 +++ b/ChangeLog Tue Aug 16 16:09:29 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-16 Pavel Tisnovsky + + * Makefile.am: added new patch + * NEWS: updated with backport + * patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch: + Backport of 6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) + throws StackOverflowError + 2011-08-15 Xerxes R??nby JamVM diff -r 79671aecc0b0 -r 1bec501e2dc7 Makefile.am --- a/Makefile.am Mon Aug 15 14:29:30 2011 +0200 +++ b/Makefile.am Tue Aug 16 16:09:29 2011 +0200 @@ -375,7 +375,8 @@ patches/openjdk/7036582-Improve_test_coverage_of_BigDecimal.patch \ patches/pr690-shark-jit-hs20.patch \ patches/pr696-zero-fast_aldc-hs20.patch \ - patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch + patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch \ + patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 79671aecc0b0 -r 1bec501e2dc7 NEWS --- a/NEWS Mon Aug 15 14:29:30 2011 +0200 +++ b/NEWS Tue Aug 16 16:09:29 2011 +0200 @@ -366,6 +366,7 @@ - S6934356: Vector.writeObject() serialization may deadlock - S7036582: Improve test coverage of java.math.BigDecimal - S6806261: BigDecimal.longValueExact() method throws NullPointerException + - S6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - CA159: Exception handler blocks / register mixup. diff -r 79671aecc0b0 -r 1bec501e2dc7 patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch Tue Aug 16 16:09:29 2011 +0200 @@ -0,0 +1,111 @@ +# HG changeset patch +# User darcy +# Date 1256057488 25200 +# Node ID 0dd3d16e81836f39485d436e6e088bc23d4483da +# Parent 052f056f7ba193b303f6c84a5523e40f58dd8c42 +6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError +Reviewed-by: alanb + +diff -r 052f056f7ba1 -r 0dd3d16e8183 src/share/classes/java/math/BigInteger.java +--- openjdk.orig/jdk/src/share/classes/java/math/BigInteger.java Tue Oct 20 15:35:55 2009 +0100 ++++ openjdk/jdk/src/share/classes/java/math/BigInteger.java Tue Oct 20 09:51:28 2009 -0700 +@@ -2051,6 +2051,8 @@ + * + * @param n shift distance, in bits. + * @return {@code this << n} ++ * @throws ArithmeticException if the shift distance is {@code ++ * Integer.MIN_VALUE}. + * @see #shiftRight + */ + public BigInteger shiftLeft(int n) { +@@ -2058,8 +2060,13 @@ + return ZERO; + if (n==0) + return this; +- if (n<0) +- return shiftRight(-n); ++ if (n<0) { ++ if (n == Integer.MIN_VALUE) { ++ throw new ArithmeticException("Shift distance of Integer.MIN_VALUE not supported."); ++ } else { ++ return shiftRight(-n); ++ } ++ } + + int nInts = n >>> 5; + int nBits = n & 0x1f; +@@ -2097,13 +2104,20 @@ + * + * @param n shift distance, in bits. + * @return {@code this >> n} ++ * @throws ArithmeticException if the shift distance is {@code ++ * Integer.MIN_VALUE}. + * @see #shiftLeft + */ + public BigInteger shiftRight(int n) { + if (n==0) + return this; +- if (n<0) +- return shiftLeft(-n); ++ if (n<0) { ++ if (n == Integer.MIN_VALUE) { ++ throw new ArithmeticException("Shift distance of Integer.MIN_VALUE not supported."); ++ } else { ++ return shiftLeft(-n); ++ } ++ } + + int nInts = n >>> 5; + int nBits = n & 0x1f; +diff -r 052f056f7ba1 -r 0dd3d16e8183 test/java/math/BigInteger/ExtremeShiftingTests.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/math/BigInteger/ExtremeShiftingTests.java Tue Oct 20 09:51:28 2009 -0700 +@@ -0,0 +1,48 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6371401 ++ * @summary Tests of shiftLeft and shiftRight on Integer.MIN_VALUE ++ * @author Joseph D. Darcy ++ */ ++import static java.math.BigInteger.*; ++ ++public class ExtremeShiftingTests { ++ public static void main(String... args) { ++ try { ++ ONE.shiftLeft(Integer.MIN_VALUE); ++ throw new RuntimeException("Should not reach here."); ++ } catch (ArithmeticException ae) { ++ ; // Expected ++ } ++ ++ try { ++ ONE.shiftRight(Integer.MIN_VALUE); ++ throw new RuntimeException("Should not reach here."); ++ } catch (ArithmeticException ae) { ++ ; // Expected ++ } ++ } ++} From bugzilla-daemon at icedtea.classpath.org Tue Aug 16 07:29:11 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 16 Aug 2011 14:29:11 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se Severity|major |normal --- Comment #3 from Xerxes R?nby 2011-08-16 14:29:11 --- Hi, The reason why configure fail for you are because your gjavah generates headers in a different way than the Oracle javah. This prevents you to use your current installed gjavah to bootstrap the build. Can you try update your gcj to at least libgcj-snapshot-20100921 or later? See the classpath bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39408 for more information. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at redhat.com Tue Aug 16 09:22:35 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 16 Aug 2011 18:22:35 +0200 Subject: Reviewer needed: backport of "7047325: Internal API to improve management of direct buffers" into IcedTea6 HEAD. Message-ID: <4E4A994B.3090603@redhat.com> Greetings, here's another backport which IMHO should be pushed into IcedTea6 HEAD. This backport is based on "7047325: Internal API to improve management of direct buffers" but I had to change it in some ways because the internal structure of OpenJDK8 and OpenJDK7 differs from IcedTea6. Here's ChangeLog entry: 2011-08-16 Pavel Tisnovsky * Makefile.am: added new patch * NEWS: updated with backport * patches/openjdk/7047325-Internal_API_to_improve_direct_buffers.patch: Backport of 7047325: Internal API to improve management of direct buffers Is it possible to push this backport please? Thank you in advance, Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: 7047325_hg.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110816/17b6ec6c/7047325_hg.diff From smohammad at redhat.com Tue Aug 16 12:43:07 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Tue, 16 Aug 2011 15:43:07 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E494EA9.9040108@redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E491F9A.9000505@redhat.com> <4E494378.80308@redhat.com> <4E494EA9.9040108@redhat.com> Message-ID: <4E4AC84B.8070404@redhat.com> On 08/15/2011 12:51 PM, Omair Majid wrote: > On 08/15/2011 12:04 PM, Saad Mohammad wrote: > [. . .] > >>> >>> Also, is this behaviour (if the jar is signed but does not have a >>> sigend jnlp file, then a warning is shown) documented somewhere? I ask >>> because I find it rather strange. AFAIK, a lot of applications fit >>> this pattern. I am not sure if showing warnings for all of these makes >>> sense. >> >> Unfortunately, I did not find any documentations that state anything >> about displaying a warning, but it's the way Oracle behave. I assume >> IcedTea-web should behave similar? >> >> I have also noticed that Oracle only display the warning if the jar file >> is not verified. If it's a verified jar, it does not show any warning >> regarding a signed JNLP. I have not made that change with IcedTea-Web, I >> was debating whether it should show this warning every time or not. I >> think I will implement that on my updated patch. >> > > Hm.. I tested Oracle's javaws with SweetHome3D and I got the warning > dialog, but I dont see any signed JNLP warnings with JPathReport: > > http://www.jgoodies.com/download/jpathreport/jpathreport.jnlp > > There might be a more specific condition to showing the warning than > just a missing signed jnlp file. Yes, you are right. I have done a bit of digging and I figured out the warning is only shown when the tag is used within resources. (FYI, warning is not displayed if jvm arguments are passed through the JNLP file). > >>>> + private void checkForMain(List jars) throws >>>> LaunchException { >>>> >>>> - activateJars(initialJars); >>>> + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); >>>> + String mainClass = ad.getMainClass(); >>> > > Hmm... I just realized that this may not work well at all. What if > file.getLaunchInfo() returns an AppletDesc? Good catch. I will have to put an if statement to find out if it's an AppletDesc or an ApplicationDesc. I will also look into removing static variables and removing JNLPClassLoader dependency like you have suggested. Thanks. [. . .] > Cheers, > Omair -- Cheers, Saad Mohammad From ddadacha at redhat.com Tue Aug 16 13:42:48 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 16 Aug 2011 16:42:48 -0400 Subject: [RFC][IcedTea-Web] UI Update for SecurityDialog In-Reply-To: <4E440762.7020909@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> <4E440762.7020909@redhat.com> Message-ID: <4E4AD648.7090205@redhat.com> Hi, The licensing of the icon from GNOME is under the GPL. Omair and I discussed the consequences of bringing this into IcedTea-Web. We decided it would be better/less work for me to make an icon, rather than finding one under the Creative Commons and attributing it correctly etc. Here is a new patch. The code itself hasn't changed, I've just removed the crediting of GNOME in the comments and the changelog. ChangeLog +2011-08-11 Danesh Dadachanji + + Update UI for SecurityDialog + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: + (addComponents): When certs are verified, question.png is used as the icon + and SAlwaysTrustPublisher is automatically selected. + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: + (initDialog): Changed the title of a CERT_WARNING dialog. Okay for head? Regards, Danesh On 11/08/11 12:46 PM, Danesh Dadachanji wrote: > Hi, > > I've pulled this code out of the patch for PR742 since it isn't directly > related. > > To recap the changes in this email, when a cert is Verified, a new icon > is shown and automatically selects the "Always Trust" checkbox when an > applet is verified. Along the way I found a miscalculation in the window > size of the dialog. It was too small to display the entire icon so I > increased the height. > > Snippet from PR742 email[1]: > > On 10/08/11 06:01 PM, Deepak Bhole wrote: >> When a cert has been verified and we show a prompt with the new question >> icon, the title still says "Warning - Security" ... we should probably >> update this to something that doesn't look as alarming ... maybe >> "Security approval needed" or something? > > Changed the title to "Security Approval Required", "Required" was more > consistent with what the other titles were. > > I also changed the message of when it is _not_ verified to "Security > Warning", again to be more consistent. It was orignially "Warning - > Security". > > ChangeLog > +2011-08-11 Danesh Dadachanji > + > + Update UI for SecurityDialog > + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. > Credit > + to The GNOME Project for the image. > + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: > + (addComponents): When certs are verified, question.png is used as the > icon > + and SAlwaysTrustPublisher is automatically selected. > + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: > + (initDialog): Changed the title of a CERT_WARNING dialog. > + > > [1] > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-August/015411.html > -------------- next part -------------- A non-text attachment was scrubbed... Name: question.png Type: image/png Size: 2501 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110816/377bf463/question.png -------------- next part -------------- A non-text attachment was scrubbed... Name: UI-Update-for-SecurityDialog.patch Type: text/x-patch Size: 3687 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110816/377bf463/UI-Update-for-SecurityDialog.patch From ddadacha at redhat.com Tue Aug 16 14:16:50 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Tue, 16 Aug 2011 17:16:50 -0400 Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS Message-ID: <4E4ADE42.5040708@redhat.com> Hi, Denis never added himself and I was told it would be better to send this as a seperate patch. ChangeLog +2011-08-17 Danesh Dadachanji + + AUTHORS: Adding myself and Denis Lila. Okay for HEAD? Regards, Danesh -------------- next part -------------- A non-text attachment was scrubbed... Name: IcedTea-Web-Authors.patch Type: text/x-patch Size: 692 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110816/46b737b8/IcedTea-Web-Authors.patch From ahughes at redhat.com Tue Aug 16 14:31:28 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 16 Aug 2011 22:31:28 +0100 Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS In-Reply-To: <4E4ADE42.5040708@redhat.com> References: <4E4ADE42.5040708@redhat.com> Message-ID: <20110816213128.GI16879@rivendell.middle-earth.co.uk> On 17:16 Tue 16 Aug , Danesh Dadachanji wrote: > Hi, > > Denis never added himself and I was told it would be better to send this > as a seperate patch. > > ChangeLog > +2011-08-17 Danesh Dadachanji > + > + AUTHORS: Adding myself and Denis Lila. > > Okay for HEAD? > > Regards, > Danesh Approved. Anyone know why I have two e-mail addresses in that file? > diff -r 68756a4f8cc0 AUTHORS > --- a/AUTHORS Thu Aug 11 14:11:41 2011 -0400 > +++ b/AUTHORS Tue Aug 16 17:11:52 2011 -0400 > @@ -4,11 +4,13 @@ Please keep this list in alphabetical or > Lillian Angel > Deepak Bhole > Ricardo Mart??n Camarero > +Danesh Dadachanji > Thomas Fitzsimmons > Mark Greenwood > Andrew John Hughes > Matthias Klose > Francis Kung > +Denis Lila > DJ Lucas > Omair Majid > Jon A. Maxwell -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanalte at redhat.com Tue Aug 16 14:50:50 2011 From: jvanalte at redhat.com (Jon VanAlten) Date: Tue, 16 Aug 2011 17:50:50 -0400 (EDT) Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS In-Reply-To: <20110816213128.GI16879@rivendell.middle-earth.co.uk> Message-ID: <1830132017.27229.1313531450804.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> ----- Original Message ----- > From: "Dr Andrew John Hughes" > > Anyone know why I have two e-mail addresses in that file? Seems to have originally happened in IcedTea6. Most relevant: Revision: 1381 Branch: default Author: Lillian Angel 2009-02-18 14:42:06 Committer: Lillian Angel 2009-02-18 14:42:06 Parent: 1380:a2763653f8cf (2009-02-18 Lillian Angel ) Child: 1382:1b323738dcc6 (* AUTHORS: Fix my email address.) 2009-02-18 Lillian Angel * AUTHORS: Updated. (yours was changed from fsf to redhat address) Revision: 1387 Branch: default Author: Andrew John Hughes 2009-02-20 07:43:47 Committer: Andrew John Hughes 2009-02-20 07:43:47 Parent: 1386:c5e17bb7fead (Merge.) Child: 1388:e811450b7381 (2009-02-20 Gary Benson ) Add back my main e-mail address. 2009-02-20 Andrew John Hughes * AUTHORS: Add back my main e-mail address. (now both addresses shown) From ahughes at redhat.com Tue Aug 16 15:45:28 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 16 Aug 2011 23:45:28 +0100 Subject: Reviewer needed: backport of "7047325: Internal API to improve management of direct buffers" into IcedTea6 HEAD. In-Reply-To: <4E4A994B.3090603@redhat.com> References: <4E4A994B.3090603@redhat.com> Message-ID: <20110816224528.GK16879@rivendell.middle-earth.co.uk> On 18:22 Tue 16 Aug , Pavel Tisnovsky wrote: > Greetings, > > here's another backport which IMHO should be pushed into IcedTea6 HEAD. And obviously mine too, given I pointed this out to you last week. > This > backport is based on "7047325: Internal API to improve management of direct > buffers" but I had to change it in some ways because the internal structure of > OpenJDK8 and OpenJDK7 differs from IcedTea6. > Can you elaborate on these changes? > Here's ChangeLog entry: > > 2011-08-16 Pavel Tisnovsky > > * Makefile.am: added new patch > * NEWS: updated with backport > * patches/openjdk/7047325-Internal_API_to_improve_direct_buffers.patch: > Backport of 7047325: Internal API to improve management > of direct buffers > > > Is it possible to push this backport please? > > Thank you in advance, > Pavel -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 16 19:00:39 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 17 Aug 2011 03:00:39 +0100 Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS In-Reply-To: <1830132017.27229.1313531450804.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> References: <20110816213128.GI16879@rivendell.middle-earth.co.uk> <1830132017.27229.1313531450804.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Message-ID: <20110817020039.GL16879@rivendell.middle-earth.co.uk> On 17:50 Tue 16 Aug , Jon VanAlten wrote: > > > ----- Original Message ----- > > From: "Dr Andrew John Hughes" > > > > > > > Anyone know why I have two e-mail addresses in that file? > > Seems to have originally happened in IcedTea6. Most relevant: > > Revision: 1381 > Branch: default > Author: Lillian Angel 2009-02-18 14:42:06 > Committer: Lillian Angel 2009-02-18 14:42:06 > Parent: 1380:a2763653f8cf (2009-02-18 Lillian Angel ) > Child: 1382:1b323738dcc6 (* AUTHORS: Fix my email address.) > > 2009-02-18 Lillian Angel > > * AUTHORS: Updated. > > (yours was changed from fsf to redhat address) > > Revision: 1387 > Branch: default > Author: Andrew John Hughes 2009-02-20 07:43:47 > Committer: Andrew John Hughes 2009-02-20 07:43:47 > Parent: 1386:c5e17bb7fead (Merge.) > Child: 1388:e811450b7381 (2009-02-20 Gary Benson ) > > Add back my main e-mail address. > > 2009-02-20 Andrew John Hughes > > * AUTHORS: > Add back my main e-mail address. > > (now both addresses shown) Ah, well it makes sense there, as there are old ChangeLog entries from before I joined Red Hat. It just doesn't make sense in IcedTea-Web, so should be removed. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Tue Aug 16 23:26:43 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 17 Aug 2011 06:26:43 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 --- Comment #4 from Robert Gabriel 2011-08-17 06:26:43 --- OK, will try, just it's gonna take a while. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at icedtea.classpath.org Wed Aug 17 03:59:26 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 17 Aug 2011 10:59:26 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/common/Configuration.java: Added... Message-ID: changeset db95c4ecbdfc in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=db95c4ecbdfc author: Pavel Tisnovsky date: Wed Aug 17 13:01:08 2011 +0200 * src/org/gfxtest/common/Configuration.java: Added JavaDoc. * src/org/gfxtest/framework/CommonRenderingStyles.java: Added new helper methods for rendering using transparent colors. * src/org/gfxtest/framework/CommonShapesRenrered.java: Fixed rendering of closed path * src/org/gfxtest/framework/ColorPaint.java: Added new test cases. diffstat: ChangeLog | 11 + src/org/gfxtest/common/Configuration.java | 44 +- src/org/gfxtest/framework/CommonRenderingStyles.java | 71 ++ src/org/gfxtest/framework/CommonShapesRenderer.java | 11 +- src/org/gfxtest/testsuites/ColorPaint.java | 575 ++++++++---------- 5 files changed, 401 insertions(+), 311 deletions(-) diffs (truncated from 926 to 500 lines): diff -r d09593767afc -r db95c4ecbdfc ChangeLog --- a/ChangeLog Tue Aug 16 12:00:43 2011 +0200 +++ b/ChangeLog Wed Aug 17 13:01:08 2011 +0200 @@ -1,3 +1,14 @@ +2011-08-17 Pavel Tisnovsky + * src/org/gfxtest/common/Configuration.java: + Added JavaDoc. + * src/org/gfxtest/framework/CommonRenderingStyles.java: + Added new helper methods for rendering using transparent colors. + * src/org/gfxtest/framework/CommonShapesRenrered.java: + Fixed rendering of closed path - the path now consists of line + segments, quadratic curves and cubic curves. + * src/org/gfxtest/framework/ColorPaint.java: + Added new test cases. + 2011-08-16 Pavel Tisnovsky * src/org/gfxtest/testsuites/BlankImage.java: Added new test cases (rendering using transparency etc.), added diff -r d09593767afc -r db95c4ecbdfc src/org/gfxtest/common/Configuration.java --- a/src/org/gfxtest/common/Configuration.java Tue Aug 16 12:00:43 2011 +0200 +++ b/src/org/gfxtest/common/Configuration.java Wed Aug 17 13:01:08 2011 +0200 @@ -46,10 +46,12 @@ import org.gfxtest.framework.Log; import org.gfxtest.framework.ParameterNotFoundException; + + /** * This class is used to store actual configuration of graphics test framework. * Configuration can be changed via command line switches. - * + * * @author Pavel Tisnovsky */ public abstract class Configuration @@ -59,6 +61,16 @@ */ protected Log log; + /** + * Constructor called with array containing command line arguments. + * + * @param args + * command line arguments + * @param log + * instance of logger class + * @throws ConfigurationException + * in case configuration is wrong + */ public Configuration(String[] args, Log log) throws ConfigurationException { this.log = log; @@ -71,6 +83,16 @@ protected abstract void readCommandLineParameters(String[] args) throws ConfigurationException; protected abstract void printParameters(); + /** + * Method for get value of parameter which has integer value. + * + * @param options + * map containing all parameters + * @param parameterName + * parameter name + * @return integer value of selected parameter + * @throws ConfigurationException + */ protected int getIntegerParameter(Map options, String parameterName) throws ConfigurationException { if (!options.containsKey(parameterName)) @@ -88,7 +110,18 @@ } } - protected String getStringParameter(Map options, String parameterName) throws ConfigurationException + /** + * Method for get value of parameter which has string value. + * + * @param options + * map containing all parameters + * @param parameterName + * parameter name + * @return string value of selected parameter + * @throws ConfigurationException + */ + protected String getStringParameter(Map options, String parameterName) + throws ConfigurationException { if (!options.containsKey(parameterName)) { @@ -97,6 +130,13 @@ return options.get(parameterName); } + /** + * Resolve all configuration options, ie. parse it and push it to a map. + * + * @param args + * command line parameters + * @return map containing all parameters + */ @SuppressWarnings("nls") protected Map resolveAllOptions(String[] args) { diff -r d09593767afc -r db95c4ecbdfc src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Tue Aug 16 12:00:43 2011 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Aug 17 13:01:08 2011 +0200 @@ -97,6 +97,77 @@ } /** + * Make sure the transparency is within given bounds 0.0-1.0 + * + * @param transparency + * color transparency + * @return transparency in bounds 0.0-1.0 + */ + private static float transparencyToBounds(float transparency) + { + return transparency < 0.f ? 0.f : transparency > 1.f ? 1.f : transparency; + } + + /** + * Set transparent color. + * + * @param graphics + * graphics context for image + * @param color + * color without transparency + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillColor(Graphics2D graphics, Color color, int transparency) + { + float[] rgb = color.getRGBColorComponents(null); + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(rgb[0], rgb[1], rgb[2], value)); + } + + /** + * Set transparent red color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillRedColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(1.0f, 0.0f, 0.0f, value)); + } + + /** + * Set transparent green color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillGreenColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(0.0f, 1.0f, 0.0f, value)); + } + + /** + * Set transparent blue color. + * + * @param graphics + * graphics context for image + * @param transparency + * color transparency represented in percents (0..100) + */ + public static void setTransparentFillBlueColor(Graphics2D graphics, int transparency) + { + float value = transparencyToBounds(transparency / 100.0f); + graphics.setPaint(new Color(0.0f, 0.0f, 1.0f, value)); + } + + /** * Set zero pixels wide stroke and default cap and join style. * * @param graphics diff -r d09593767afc -r db95c4ecbdfc src/org/gfxtest/framework/CommonShapesRenderer.java --- a/src/org/gfxtest/framework/CommonShapesRenderer.java Tue Aug 16 12:00:43 2011 +0200 +++ b/src/org/gfxtest/framework/CommonShapesRenderer.java Wed Aug 17 13:01:08 2011 +0200 @@ -294,20 +294,23 @@ // construct closed path Path2D path = new Path2D.Float(); - path.moveTo(GfxTest.OFFSET, GfxTest.OFFSET); + path.moveTo(GfxTest.OFFSET, h - GfxTest.OFFSET); + path.quadTo(GfxTest.OFFSET, GfxTest.OFFSET, w >> 1, GfxTest.OFFSET); path.quadTo(w - GfxTest.OFFSET, GfxTest.OFFSET, w - GfxTest.OFFSET, h - GfxTest.OFFSET); - path.quadTo(GfxTest.OFFSET, h - GfxTest.OFFSET, w >> 1, h >> 1); + path.curveTo(w >> 1, GfxTest.OFFSET, w >> 1, h - GfxTest.OFFSET, GfxTest.OFFSET, h - GfxTest.OFFSET); path.closePath(); // draw the closed path graphics.fill(path); // draw crosses at interesting points of image + drawCross(graphics, GfxTest.OFFSET, h - GfxTest.OFFSET); drawCross(graphics, GfxTest.OFFSET, GfxTest.OFFSET); + drawCross(graphics, w >> 1, GfxTest.OFFSET); drawCross(graphics, w - GfxTest.OFFSET, GfxTest.OFFSET); drawCross(graphics, w - GfxTest.OFFSET, h - GfxTest.OFFSET); - drawCross(graphics, GfxTest.OFFSET, h - GfxTest.OFFSET); - drawCross(graphics, w >> 1, h >> 1); + drawCross(graphics, w >> 1, GfxTest.OFFSET); + drawCross(graphics, w >> 1, h - GfxTest.OFFSET); } } diff -r d09593767afc -r db95c4ecbdfc src/org/gfxtest/testsuites/ColorPaint.java --- a/src/org/gfxtest/testsuites/ColorPaint.java Tue Aug 16 12:00:43 2011 +0200 +++ b/src/org/gfxtest/testsuites/ColorPaint.java Wed Aug 17 13:01:08 2011 +0200 @@ -40,10 +40,8 @@ package org.gfxtest.testsuites; -import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; -import java.awt.geom.Path2D; @@ -62,286 +60,28 @@ public class ColorPaint extends GfxTest { /** - * Stroke width used for drawing "thick" curves. - */ - private static final int STROKE_WIDTH_THICK = 10; - - /** - * Stroke width used for drawing extra "thick" curves. - */ - private static final int STROKE_WIDTH_EXTRA_THICK = 30; - - /** - * Default stroke color. - */ - private static final Color DEFAULT_STROKE_COLOR = Color.BLACK; - - /** - * Default fill color. - */ - private static final Color DEFAULT_FILL_COLOR = Color.GREEN.darker(); - - /** - * Radius of round rectangle. - */ - private static final int ROUND_RECT_RADIUS = 80; - - /** - * Draw circle onto the graphics canvas. + * This method renders transparent circle using given color and transparency * * @param image * image to which two dimensional shape is to be rendered * @param graphics * graphics context for image + * @param color + * circle fill color + * @param transparency + * circle fill color transparency + * @return test result status - PASSED, FAILED or ERROR */ - private void drawCircle(TestImage image, Graphics2D graphics) + private static TestResult renderTransparentCircle(TestImage image, Graphics2D graphics, Color color, int transparency) { - // calculate center of the image - int xc = image.getCenterX(); - int yc = image.getCenterY(); - - // calculate radius of circle - int radius = calculateRadius(image); - + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setTransparentFillColor(graphics, color, transparency); // draw the circle - graphics.drawOval(xc - radius, yc - radius, radius << 1, radius << 1); - - // draw crosses at interesting points of image - drawCrossesForBasicShapes(graphics, xc, yc, radius); - } - - /** - * Calculate radius of circle/arc/rectangle based on image size. - * - * @param image - * image to which two dimensional shape is to be rendered - * @return radius - */ - private int calculateRadius(TestImage image) - { - return Math.min(image.getWidth(), image.getHeight()) / 3; - } - - /** - * Draw crosses at interesting points of image. - * - * @param graphics - * graphics context for image - * @param xc center of image - * @param yc center of image - * @param radius radius of shape(s) - */ - private void drawCrossesForBasicShapes(Graphics2D graphics, int xc, int yc, int radius) - { - // move in vertical direction - for (int y = yc - radius; y <= yc + radius; y += radius) - { - // move in horizontal direction - for (int x = xc - radius; x <= xc + radius; x += radius) - { - drawCross(graphics, x, y); - } - } - } - - /** - * Draw filled circle onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledCircle(TestImage image, Graphics2D graphics) - { - // calculate center of the image - int xc = image.getCenterX(); - int yc = image.getCenterY(); - - // calculate radius of circle - int radius = calculateRadius(image); - - // draw the filled circle - graphics.fillOval(xc - radius, yc - radius, radius << 1, radius << 1); - - // draw crosses at interesting points of image - drawCrossesForBasicShapes(graphics, xc, yc, radius); - } - - /** - * Draw filled arc onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledArc(TestImage image, Graphics2D graphics) - { - // calculate center of the image - int xc = image.getCenterX(); - int yc = image.getCenterY(); - - // calculate radius of circle - int radius = calculateRadius(image); - - // draw the filled arc - graphics.fillArc(xc - radius, yc - radius, radius << 1, radius << 1, 0, 135 + 180); - - // draw crosses at interesting points of image - drawCrossesForBasicShapes(graphics, xc, yc, radius); - } - - /** - * Draw filled rectangle onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledRect(TestImage image, Graphics2D graphics) - { - // calculate center of the image - int xc = image.getCenterX(); - int yc = image.getCenterY(); - - // calculate radius of circle - int radius = calculateRadius(image); - - // draw the filled rectangle - graphics.fillRect(xc - radius, yc - radius, radius << 1, radius << 1); - - // draw crosses at interesting points of image - drawCrossesForBasicShapes(graphics, xc, yc, radius); - } - - /** - * Draw filled rounded rectangle onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledRoundRect(TestImage image, Graphics2D graphics) - { - // calculate center of the image - int xc = image.getCenterX(); - int yc = image.getCenterY(); - - // calculate radius of circle - int radius = calculateRadius(image); - - // draw the filled rectangle round rectangle - graphics.fillRoundRect(xc - radius, yc - radius, radius << 1, radius << 1, ROUND_RECT_RADIUS, ROUND_RECT_RADIUS); - - // draw crosses at interesting points of image - drawCrossesForBasicShapes(graphics, xc, yc, radius); - } - - /** - * Draw filled polygon onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledPolygon(TestImage image, Graphics2D graphics) - { - // calculate image size - int w = image.getWidth(); - int h = image.getHeight(); - - // polygon vertexes - int xPoints[] = new int[] { OFFSET, w >> 1, w >> 1, w - OFFSET }; - int yPoints[] = new int[] { h >> 1, OFFSET, h - OFFSET, h >> 1 }; - - // draw the polygon - graphics.fillPolygon(xPoints, yPoints, xPoints.length); - - // draw crosses at interesting points of image - drawCross(graphics, OFFSET, h >> 1, CROSS_SIZE); - drawCross(graphics, w >> 1, OFFSET, CROSS_SIZE); - drawCross(graphics, w >> 1, h - OFFSET, CROSS_SIZE); - drawCross(graphics, w - OFFSET, h >> 1, CROSS_SIZE); - } - - /** - * Draw filled closed path onto the graphics canvas. - * - * @param image - * image to which two dimensional shape is to be rendered - * @param graphics - * graphics context for image - */ - private void drawFilledClosedPath(TestImage image, Graphics2D graphics) - { - // calculate image size - int w = image.getWidth(); - int h = image.getHeight(); - - // construct closed path - Path2D path = new Path2D.Float(); - path.moveTo(OFFSET, OFFSET); - path.quadTo(w - OFFSET, OFFSET, w - OFFSET, h - OFFSET); - path.quadTo(OFFSET, h - OFFSET, w >> 1, h >> 1); - path.closePath(); - - // draw the closed path - graphics.fill(path); - - // draw crosses at interesting points of image - drawCross(graphics, OFFSET, OFFSET); - drawCross(graphics, w - OFFSET, OFFSET); - drawCross(graphics, w - OFFSET, h - OFFSET); - drawCross(graphics, OFFSET, h - OFFSET); - drawCross(graphics, w >> 1, h >> 1); - } - - /** - * Set default stroke color. - * - * @param graphics - * graphics context for image - */ - private void setStrokeColor(Graphics2D graphics) - { - graphics.setColor(DEFAULT_STROKE_COLOR); - } - - /** - * Set default fill color. - * - * @param graphics - * graphics context for image - */ - private void setFillColor(Graphics2D graphics) From ptisnovs at redhat.com Wed Aug 17 04:43:07 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 17 Aug 2011 13:43:07 +0200 Subject: Reviewer needed: fix for JamVM's SElinux execstack issue for IcedTea6 HEAD In-Reply-To: <20110816134433.GH16879@rivendell.middle-earth.co.uk> References: <4E4543D9.4030905@redhat.com> <1313163994.1653.45.camel@xranby-ESPRIMO-P7935> <20110816134433.GH16879@rivendell.middle-earth.co.uk> Message-ID: <4E4BA94B.9000906@redhat.com> Dr Andrew John Hughes wrote: > On 17:46 Fri 12 Aug , Xerxes R?nby wrote: >> fre 2011-08-12 klockan 17:16 +0200 skrev Pavel Tisnovsky: >>> Greetings, >>> >>> as Omair and Xerxes pointed out yesterday, the SELinux executable stack >>> issue found in JamVM running under Fedora 14 x86_64 is caused by linker >>> settings. I've tried to add LDFLAGS to disable the settings of >>> executable bit for stack and it works perfectly in my case. >>> >>> Can anybody please review this simple fix I've made in Makefile.am? >>> AFAIK the proposed linker settings is applicable to all platforms. >>> >>> Here's ChangeLog entry: >>> >>> 2011-08-12 Pavel Tisnovsky >>> >>> * Makefile.am: added LDFLAGS for JamVM to fix the SELinux >>> executable flag issue. >>> >>> Cheers, >>> Pavel >>> vanligt textdokument-bilaga (jamvm_execstack_hg.diff) >>> diff -r 4c641e5e379d Makefile.am >>> --- a/Makefile.am Thu Aug 11 16:48:40 2011 +0200 >>> +++ b/Makefile.am Fri Aug 12 11:06:23 2011 -0400 >>> @@ -1811,6 +1811,7 @@ >>> stamps/jamvm.stamp: $(OPENJDK_TREE) stamps/rt.stamp >>> if BUILD_JAMVM >>> cd jamvm/jamvm && \ >>> + LDFLAGS="-Xlinker -z -Xlinker noexecstack" \ >>> ./autogen.sh --with-java-runtime-library=openjdk \ >>> --prefix=$(abs_top_builddir)/jamvm/install ; \ >>> $(MAKE) ; \ >> Nice fix, i would suggest to add a NEWS entry. >> >> Pushing this and having the buildbots build and test JamVM on all >> various combinations of distributions and various default gcc settings >> are the only sane way to know if these linker flags can introduce any >> sideffects. >> >> In in favour for you to push this fix to icedtea6, icedtea7 and the >> icedtea branch, thanks. >> >> Cheers, >> Xerxes >> > > It's probably worth also getting this fixed upstream in JamVM. Yes, it seems that IcedTea6 HEAD is compiled without problems, so it's time to push this fix to IcedTea7 and 6-branches and probably to contact Robert. Pavel From omajid at redhat.com Wed Aug 17 05:16:05 2011 From: omajid at redhat.com (Omair Majid) Date: Wed, 17 Aug 2011 08:16:05 -0400 Subject: [RFC][IcedTea-Web] UI Update for SecurityDialog In-Reply-To: <4E4AD648.7090205@redhat.com> References: <4E025953.3020906@redhat.com> <4E42F5B9.3080800@redhat.com> <20110810220124.GF20852@redhat.com> <4E440762.7020909@redhat.com> <4E4AD648.7090205@redhat.com> Message-ID: <4E4BB105.9000608@redhat.com> On 08/16/2011 04:42 PM, Danesh Dadachanji wrote: > ChangeLog > +2011-08-11 Danesh Dadachanji > + > + Update UI for SecurityDialog > + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. > + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: > + (addComponents): When certs are verified, question.png is used as the > icon > + and SAlwaysTrustPublisher is automatically selected. > + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: > + (initDialog): Changed the title of a CERT_WARNING dialog. > > Okay for head? > Looks fine to me. Cheers, Omair From ddadacha at icedtea.classpath.org Wed Aug 17 07:08:14 2011 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Wed, 17 Aug 2011 14:08:14 +0000 Subject: /hg/icedtea-web: Added Denis Lila and myself to AUTHORS and remo... Message-ID: changeset dab2238acd6b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=dab2238acd6b author: Danesh Dadachanji date: Wed Aug 17 10:07:38 2011 -0400 Added Denis Lila and myself to AUTHORS and removed an extra email from Andrew Hughes diffstat: AUTHORS | 4 +++- ChangeLog | 5 +++++ 2 files changed, 8 insertions(+), 1 deletions(-) diffs (30 lines): diff -r 68756a4f8cc0 -r dab2238acd6b AUTHORS --- a/AUTHORS Thu Aug 11 14:11:41 2011 -0400 +++ b/AUTHORS Wed Aug 17 10:07:38 2011 -0400 @@ -4,11 +4,13 @@ Lillian Angel Deepak Bhole Ricardo Mart??n Camarero +Danesh Dadachanji Thomas Fitzsimmons Mark Greenwood -Andrew John Hughes +Andrew John Hughes Matthias Klose Francis Kung +Denis Lila DJ Lucas Omair Majid Jon A. Maxwell diff -r 68756a4f8cc0 -r dab2238acd6b ChangeLog --- a/ChangeLog Thu Aug 11 14:11:41 2011 -0400 +++ b/ChangeLog Wed Aug 17 10:07:38 2011 -0400 @@ -1,3 +1,8 @@ +2011-08-17 Danesh Dadachanji + + AUTHORS: Adding myself and Denis Lila. Removing the extra email from + Andrew Hughes. + 2011-08-11 Danesh Dadachanji PR742: IcedTea-Web checks certs only upto 1 level deep before declaring From ddadacha at redhat.com Wed Aug 17 07:10:15 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Wed, 17 Aug 2011 10:10:15 -0400 Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS In-Reply-To: <20110817020039.GL16879@rivendell.middle-earth.co.uk> References: <20110816213128.GI16879@rivendell.middle-earth.co.uk> <1830132017.27229.1313531450804.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> <20110817020039.GL16879@rivendell.middle-earth.co.uk> Message-ID: <4E4BCBC7.2080900@redhat.com> Hi, > Ah, well it makes sense there, as there are old ChangeLog entries from > before I joined Red Hat. It just doesn't make sense in IcedTea-Web, > so should be removed. Done - http://icedtea.classpath.org/hg/icedtea-web/rev/dab2238acd6b Thanks for the review. Regards, Danesh From ahughes at redhat.com Wed Aug 17 08:40:48 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 17 Aug 2011 16:40:48 +0100 Subject: [RFC][IcedTea-Web] Adding myself and Denis Lila to AUTHORS In-Reply-To: <4E4BCBC7.2080900@redhat.com> References: <20110816213128.GI16879@rivendell.middle-earth.co.uk> <1830132017.27229.1313531450804.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> <20110817020039.GL16879@rivendell.middle-earth.co.uk> <4E4BCBC7.2080900@redhat.com> Message-ID: <20110817154048.GA9583@rivendell.middle-earth.co.uk> On 10:10 Wed 17 Aug , Danesh Dadachanji wrote: > Hi, > > > > > Ah, well it makes sense there, as there are old ChangeLog entries from > > before I joined Red Hat. It just doesn't make sense in IcedTea-Web, > > so should be removed. > > Done - http://icedtea.classpath.org/hg/icedtea-web/rev/dab2238acd6b > Aah thanks! > Thanks for the review. > > Regards, > Danesh -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at redhat.com Wed Aug 17 09:07:58 2011 From: omajid at redhat.com (Omair Majid) Date: Wed, 17 Aug 2011 12:07:58 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E4AC84B.8070404@redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E491F9A.9000505@redhat.com> <4E494378.80308@redhat.com> <4E494EA9.9040108@redhat.com> <4E4AC84B.8070404@redhat.com> Message-ID: <4E4BE75E.8060706@redhat.com> On 08/16/2011 03:43 PM, Saad Mohammad wrote: > Yes, you are right. I have done a bit of digging and I figured out the > warning is only shown when the tag is used within resources. > (FYI, warning is not displayed if jvm arguments are passed through the > JNLP file). > Oracle has a list of properties: http://download.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/properties.html You might want to check if it makes a difference if the property is or is not in the list of allowed properties Cheers, Omair From ddadacha at icedtea.classpath.org Wed Aug 17 09:18:29 2011 From: ddadacha at icedtea.classpath.org (ddadacha at icedtea.classpath.org) Date: Wed, 17 Aug 2011 16:18:29 +0000 Subject: /hg/icedtea-web: Update UI for SecurityDialog. Message-ID: changeset 61e08e67b176 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=61e08e67b176 author: Danesh Dadachanji date: Wed Aug 17 12:01:19 2011 -0400 Update UI for SecurityDialog. diffstat: ChangeLog | 10 ++++++++++ netx/net/sourceforge/jnlp/resources/question.png | 0 netx/net/sourceforge/jnlp/security/CertWarningPane.java | 12 ++++++++++-- netx/net/sourceforge/jnlp/security/SecurityDialog.java | 9 ++++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diffs (91 lines): diff -r dab2238acd6b -r 61e08e67b176 ChangeLog --- a/ChangeLog Wed Aug 17 10:07:38 2011 -0400 +++ b/ChangeLog Wed Aug 17 12:01:19 2011 -0400 @@ -1,3 +1,13 @@ +2011-08-17 Danesh Dadachanji + + Update UI for SecurityDialog + * netx/net/sourceforge/jnlp/resources/question.png: New icon added. + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: + (addComponents): When certs are verified, question.png is used as the icon + and SAlwaysTrustPublisher is automatically selected. + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: + (initDialog): Changed the title of a CERT_WARNING dialog. + 2011-08-17 Danesh Dadachanji AUTHORS: Adding myself and Denis Lila. Removing the extra email from diff -r dab2238acd6b -r 61e08e67b176 netx/net/sourceforge/jnlp/resources/question.png Binary file netx/net/sourceforge/jnlp/resources/question.png has changed diff -r dab2238acd6b -r 61e08e67b176 netx/net/sourceforge/jnlp/security/CertWarningPane.java --- a/netx/net/sourceforge/jnlp/security/CertWarningPane.java Wed Aug 17 10:07:38 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/CertWarningPane.java Wed Aug 17 12:01:19 2011 -0400 @@ -135,6 +135,8 @@ //Top label String topLabelText = ""; String propertyName = ""; + String iconLocation = "net/sourceforge/jnlp/resources/"; + boolean alwaysTrustSelected = false; if (certVerifier instanceof HttpsCertVerifier) { topLabelText = R("SHttpsUnverified") + " " + R("Continue"); @@ -144,25 +146,30 @@ case VERIFIED: topLabelText = R("SSigVerified"); propertyName = "OptionPane.informationIcon"; + iconLocation += "question.png"; + alwaysTrustSelected = true; break; case UNVERIFIED: topLabelText = R("SSigUnverified"); propertyName = "OptionPane.warningIcon"; + iconLocation += "warning.png"; break; case SIGNING_ERROR: topLabelText = R("SSignatureError"); propertyName = "OptionPane.warningIcon"; + iconLocation += "warning.png"; break; } + ImageIcon icon = new ImageIcon((new sun.misc.Launcher()) - .getClassLoader().getResource("net/sourceforge/jnlp/resources/warning.png")); + .getClassLoader().getResource(iconLocation)); JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); topLabel.setFont(new Font(topLabel.getFont().toString(), Font.BOLD, 12)); JPanel topPanel = new JPanel(new BorderLayout()); topPanel.setBackground(Color.WHITE); topPanel.add(topLabel, BorderLayout.CENTER); - topPanel.setPreferredSize(new Dimension(400, 60)); + topPanel.setPreferredSize(new Dimension(400, 75)); topPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); //application info @@ -175,6 +182,7 @@ alwaysTrust = new JCheckBox(R("SAlwaysTrustPublisher")); alwaysTrust.setEnabled(true); + alwaysTrust.setSelected(alwaysTrustSelected); JPanel infoPanel = new JPanel(new GridLayout(4, 1)); infoPanel.add(nameLabel); diff -r dab2238acd6b -r 61e08e67b176 netx/net/sourceforge/jnlp/security/SecurityDialog.java --- a/netx/net/sourceforge/jnlp/security/SecurityDialog.java Wed Aug 17 10:07:38 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/SecurityDialog.java Wed Aug 17 12:01:19 2011 -0400 @@ -207,9 +207,12 @@ setSystemLookAndFeel(); String dialogTitle = ""; - if (dialogType == DialogType.CERT_WARNING) - dialogTitle = "Warning - Security"; - else if (dialogType == DialogType.MORE_INFO) + if (dialogType == DialogType.CERT_WARNING) { + if (accessType == AccessType.VERIFIED) + dialogTitle = "Security Approval Required"; + else + dialogTitle = "Security Warning"; + } else if (dialogType == DialogType.MORE_INFO) dialogTitle = "More Information"; else if (dialogType == DialogType.CERT_INFO) dialogTitle = "Details - Certificate"; From ptisnovs at icedtea.classpath.org Thu Aug 18 03:33:36 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 18 Aug 2011 10:33:36 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/testsuites/GradientPaint.java: Message-ID: changeset 086679317267 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=086679317267 author: Pavel Tisnovsky date: Thu Aug 18 12:35:19 2011 +0200 * src/org/gfxtest/testsuites/GradientPaint.java: Created new test suite containing 16 new gfx.tests. * src/org/gfxtest/common/CommonShapesRenderer.java: Make static method calculateRadius() public. * src/org/gfxtest/common/CommonRenderingStyles.java: Added methods supporting rendering shapes filled by gradient paint. diffstat: ChangeLog | 8 + src/org/gfxtest/framework/CommonRenderingStyles.java | 244 ++++++++++ src/org/gfxtest/framework/CommonShapesRenderer.java | 2 +- src/org/gfxtest/testsuites/GradientPaint.java | 422 +++++++++++++++++++ 4 files changed, 675 insertions(+), 1 deletions(-) diffs (truncated from 721 to 500 lines): diff -r db95c4ecbdfc -r 086679317267 ChangeLog --- a/ChangeLog Wed Aug 17 13:01:08 2011 +0200 +++ b/ChangeLog Thu Aug 18 12:35:19 2011 +0200 @@ -1,3 +1,11 @@ +2011-08-18 Pavel Tisnovsky + * src/org/gfxtest/testsuites/GradientPaint.java: + Created new test suite containing 16 new gfx.tests. + * src/org/gfxtest/common/CommonShapesRenderer.java: + Make static method calculateRadius() public. + * src/org/gfxtest/common/CommonRenderingStyles.java: + Added methods supporting rendering shapes filled by gradient paint. + 2011-08-17 Pavel Tisnovsky * src/org/gfxtest/common/Configuration.java: Added JavaDoc. diff -r db95c4ecbdfc -r 086679317267 src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Aug 17 13:01:08 2011 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Thu Aug 18 12:35:19 2011 +0200 @@ -42,6 +42,7 @@ import java.awt.BasicStroke; import java.awt.Color; +import java.awt.GradientPaint; import java.awt.Graphics2D; @@ -75,6 +76,16 @@ private static final Color DEFAULT_FILL_COLOR = Color.GREEN.darker(); /** + * Default gradient paint first color. + */ + private static final Color DEFAULT_GRADIENT_PAINT_FIRST_COLOR = Color.RED; + + /** + * Default gradient paint second color. + */ + private static final Color DEFAULT_GRADIENT_PAINT_SECOND_COLOR = Color.YELLOW; + + /** * Set default stroke color. * * @param graphics @@ -168,6 +179,239 @@ } /** + * Set horizontal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setHorizontalGradientFill(TestImage image, Graphics2D graphics) + { + setHorizontalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR); + } + + /** + * Set horizontal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param offset + * offset between shape border and edge of horizontal gradient, + * positive offset: gradient is narrower, negative offset: + * gradient is broader + */ + public static void setHorizontalGradientFill(TestImage image, Graphics2D graphics, int offset) + { + setHorizontalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR, offset); + } + + /** + * Set horizontal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + */ + public static void setHorizontalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2) + { + setHorizontalGradientFill(image, graphics, color1, color2, 0); + } + + /** + * Set horizontal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + * @param offset + * offset between shape border and edge of horizontal gradient + */ + public static void setHorizontalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2, int offset) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = CommonShapesRenderer.calculateRadius(image); + + GradientPaint gradientPaint = new GradientPaint(xc - radius + offset, yc, color1, xc + radius - offset, yc, color2); + graphics.setPaint(gradientPaint); + } + + /** + * Set vertical gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setVerticalGradientFill(TestImage image, Graphics2D graphics) + { + setVerticalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR); + } + + /** + * Set vertical gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param offset + * offset between shape border and edge of horizontal gradient, + * positive offset: gradient is narrower, negative offset: + * gradient is broader + */ + public static void setVerticalGradientFill(TestImage image, Graphics2D graphics, int offset) + { + setVerticalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR, offset); + } + + /** + * Set vertical gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + */ + public static void setVerticalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2) + { + setVerticalGradientFill(image, graphics, color1, color2, 0); + } + + /** + * Set vertical gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + * @param offset + * offset between shape border and edge of horizontal gradient + */ + public static void setVerticalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2, int offset) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = CommonShapesRenderer.calculateRadius(image); + + GradientPaint gradientPaint = new GradientPaint(xc, yc - radius + offset, color1, xc, yc + radius - offset, color2); + graphics.setPaint(gradientPaint); + } + + /** + * Set diagonal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setDiagonalGradientFill(TestImage image, Graphics2D graphics) + { + setDiagonalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR); + } + + /** + * Set diagonal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param offset + * offset between shape border and edge of horizontal gradient, + * positive offset: gradient is narrower, negative offset: + * gradient is broader + */ + public static void setDiagonalGradientFill(TestImage image, Graphics2D graphics, int offset) + { + setDiagonalGradientFill(image, graphics, DEFAULT_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_GRADIENT_PAINT_SECOND_COLOR, offset); + } + + /** + * Set diagonal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + */ + public static void setDiagonalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2) + { + setDiagonalGradientFill(image, graphics, color1, color2, 0); + } + + /** + * Set diagonal gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color set for the first edge of gradient fill + * @param color2 + * color set for the second edge of gradient fill + * @param offset + * offset between shape border and edge of horizontal gradient + */ + public static void setDiagonalGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2, int offset) + { + // sin 45 = cos 45 = 0.707f + final double SIN_COS_45 = Math.cos(Math.PI / 4); + + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = CommonShapesRenderer.calculateRadius(image); + int r2 = (int)(radius * SIN_COS_45 ); + int delta = (int) (offset * SIN_COS_45); + + // compute end points used for diagonal fill + int x1 = xc - r2 + delta; + int y1 = yc - r2 + delta; + int x2 = xc + r2 - delta; + int y2 = yc + r2 - delta; + + GradientPaint gradientPaint = new GradientPaint(x1, y1, color1, x2, y2, color2); + graphics.setPaint(gradientPaint); + } + + /** * Set zero pixels wide stroke and default cap and join style. * * @param graphics diff -r db95c4ecbdfc -r 086679317267 src/org/gfxtest/framework/CommonShapesRenderer.java --- a/src/org/gfxtest/framework/CommonShapesRenderer.java Wed Aug 17 13:01:08 2011 +0200 +++ b/src/org/gfxtest/framework/CommonShapesRenderer.java Thu Aug 18 12:35:19 2011 +0200 @@ -66,7 +66,7 @@ * image to which two dimensional shape is to be rendered * @return radius */ - private static int calculateRadius(TestImage image) + public static int calculateRadius(TestImage image) { return Math.min(image.getWidth(), image.getHeight()) / 3; } diff -r db95c4ecbdfc -r 086679317267 src/org/gfxtest/testsuites/GradientPaint.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/GradientPaint.java Thu Aug 18 12:35:19 2011 +0200 @@ -0,0 +1,422 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + + + +import java.awt.Color; +import java.awt.Graphics2D; + + + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + +/** + * This test renders filled shapes using simple ColorPaint. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at RenderStyle(RenderStyles.FILL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class GradientPaint extends GfxTest +{ + /** + * Test if circle drawn by graphics.drawOval() is rendered correctly. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleEmptyFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // draw the circle + CommonShapesRenderer.drawCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Horizontal gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleHorizontalGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setHorizontalGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Horizontal gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleHorizontalGradientFillPositiveOffset1(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setHorizontalGradientFill(image, graphics, image.getWidth() / 16); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Horizontal gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleHorizontalGradientFillPositiveOffset2(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setHorizontalGradientFill(image, graphics, image.getWidth() / 6); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Horizontal gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleHorizontalGradientFillNegativeOffset1(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setHorizontalGradientFill(image, graphics, - image.getWidth() / 16); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Horizontal gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleHorizontalGradientFillNegativeOffset2(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setHorizontalGradientFill(image, graphics, - image.getWidth() / 6); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Vertical gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR From smohammad at redhat.com Thu Aug 18 07:10:09 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Thu, 18 Aug 2011 10:10:09 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E4BE75E.8060706@redhat.com> References: <2086091202.1020171.1313180320630.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E491F9A.9000505@redhat.com> <4E494378.80308@redhat.com> <4E494EA9.9040108@redhat.com> <4E4AC84B.8070404@redhat.com> <4E4BE75E.8060706@redhat.com> Message-ID: <4E4D1D41.3080707@redhat.com> On 08/17/2011 12:07 PM, Omair Majid wrote: > On 08/16/2011 03:43 PM, Saad Mohammad wrote: >> Yes, you are right. I have done a bit of digging and I figured out the >> warning is only shown when the tag is used within resources. >> (FYI, warning is not displayed if jvm arguments are passed through the >> JNLP file). >> > > Oracle has a list of properties: > http://download.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/properties.html > > > You might want to check if it makes a difference if the property is or > is not in the list of allowed properties > > Cheers, > Omair Thanks Omair! This was a big help. The warning is not displayed when the properties are "Secure System Properties Accessible by RIAs Launched by Using JNLP". For everything else, the warning is displayed( including invalid properties). -- Cheers, Saad Mohammad From ptisnovs at redhat.com Thu Aug 18 08:23:02 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 18 Aug 2011 17:23:02 +0200 Subject: Reviewer needed - Removed dependency on JUnit framework from regression test InvokeGenericTest in IcedTea7 Message-ID: <4E4D2E56.5050801@redhat.com> Greetings, the patch saved in an attachment contains fix of regression test InvokeGenericTest.java. The original version of the test depends on JUnit framework which is not supported by our regression test tool (and backport of newer JTreg is quite hard). The fix of the test is quite easy, because JUnit framework was used only on a few number of places. Tested on RHEL 5 x86_64 against recent IcedTea7 HEAD build. ChangeLog entry for IcedTea7 HEAD: 2011-08-18 Pavel Tisnovsky Removed dependency on JUnit framework from regression test InvokeGenericTest * Makefile.am: (JDK_CHANGESET): Updated. (JDK_SHA256SUM): Likewise. Can anybody please review this patch? Thank you in advance, Pavel -------------- next part -------------- A non-text attachment was scrubbed... Name: InvokeGenericTest.patch Type: text/x-patch Size: 4810 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110818/2ba95a77/InvokeGenericTest.patch From ahughes at redhat.com Thu Aug 18 08:54:26 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 18 Aug 2011 16:54:26 +0100 Subject: Reviewer needed - Removed dependency on JUnit framework from regression test InvokeGenericTest in IcedTea7 In-Reply-To: <4E4D2E56.5050801@redhat.com> References: <4E4D2E56.5050801@redhat.com> Message-ID: <20110818155426.GH9583@rivendell.middle-earth.co.uk> On 17:23 Thu 18 Aug , Pavel Tisnovsky wrote: > Greetings, > > the patch saved in an attachment contains fix of regression test > InvokeGenericTest.java. The original version of the test depends on JUnit > framework which is not supported by our regression test tool (and backport of > newer JTreg is quite hard). The fix of the test is quite easy, because JUnit > framework was used only on a few number of places. > > Tested on RHEL 5 x86_64 against recent IcedTea7 HEAD build. > > ChangeLog entry for IcedTea7 HEAD: > > 2011-08-18 Pavel Tisnovsky > > Removed dependency on JUnit framework from regression test > InvokeGenericTest > * Makefile.am: > (JDK_CHANGESET): Updated. > (JDK_SHA256SUM): Likewise. > > > Can anybody please review this patch? > > Thank you in advance, > Pavel I think this should just be blacklisted for now until jtreg is updated. The test isn't at fault here. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at redhat.com Thu Aug 18 10:22:13 2011 From: omajid at redhat.com (Omair Majid) Date: Thu, 18 Aug 2011 13:22:13 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre Message-ID: <4E4D4A45.5000909@redhat.com> Hi, The attached patch allows icedtea-web to run in the presence of just a jre, rather than the entire jdk, after icedtea-web is built. The rationale for this change is that some distributions, like Fedora, only include the contents of openjdk's j2sdk-image/jre as part of the openjdk package. j2sdk-image/bin is provided with the openjdk development package in those distributions. It should not be necessary for users of icedtea-web to install the openjdk development packages. During the build process IcedTea-Web embeds the path to the jre directory and the java binary in the launcher scripts (javaws/itweb-settings) and the plugin so (IcedTeaPlugin.so). The patch adjusts things so that the java binary is looked up from inside the jre. The jre can now also be specified separately. With the patch applied something like this should work: ./configure --with-jdk-home=/path/to/icedtea6/openjdk.build/j2sdk-image --with-jre-home=/path/to/icedtea6/openjdk.build/j2re-image And even if the j2sdk-image is removed, IcedTea-Web should continue to work. If --with-jre-home is not specified, it should default to $SYSTEM_JDK_DIR/jre, the old value. I would like to add this to HEAD, and backport it to 1.1 as well. Any thoughts or comments? Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea-web-work-with-jre-only-01.patch Type: text/x-patch Size: 3439 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110818/a1ea6a80/icedtea-web-work-with-jre-only-01.patch From jvanek at redhat.com Thu Aug 18 22:28:14 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 19 Aug 2011 07:28:14 +0200 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <4E4D4A45.5000909@redhat.com> References: <4E4D4A45.5000909@redhat.com> Message-ID: <4E4DF46E.10609@redhat.com> Hi!! Just to keep in loop - This is related to https://bugzilla.redhat.com/show_bug.cgi?id=731358 and https://bugzilla.redhat.com/show_bug.cgi?id=731345 The patch itself looks ok. The only point I can see is that now there are three java paths set by configure - --with-jdk-home can specify SYSTEM_JDK_DIR --with-java can specify JAVA and now --with-jre is added. Is there really any reason why to keep all thee variables? Best Regards J. On 08/18/2011 07:22 PM, Omair Majid wrote: > Hi, > > The attached patch allows icedtea-web to run in the presence of just a jre, rather than the entire jdk, after icedtea-web is built. > > The rationale for this change is that some distributions, like Fedora, only include the contents of openjdk's j2sdk-image/jre as part of the openjdk package. j2sdk-image/bin is provided with the openjdk development package in those distributions. It should not be necessary for users of icedtea-web to install the openjdk development packages. > > During the build process IcedTea-Web embeds the path to the jre directory and the java binary in the launcher scripts (javaws/itweb-settings) and the plugin so (IcedTeaPlugin.so). > > The patch adjusts things so that the java binary is looked up from inside the jre. The jre can now also be specified separately. > > With the patch applied something like this should work: > > ./configure --with-jdk-home=/path/to/icedtea6/openjdk.build/j2sdk-image --with-jre-home=/path/to/icedtea6/openjdk.build/j2re-image > > And even if the j2sdk-image is removed, IcedTea-Web should continue to work. > > If --with-jre-home is not specified, it should default to $SYSTEM_JDK_DIR/jre, the old value. > > I would like to add this to HEAD, and backport it to 1.1 as well. > > Any thoughts or comments? > > Cheers, > Omair From ptisnovs at redhat.com Fri Aug 19 00:46:42 2011 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 19 Aug 2011 09:46:42 +0200 Subject: Reviewer needed - Removed dependency on JUnit framework from regression test InvokeGenericTest in IcedTea7 In-Reply-To: <20110818155426.GH9583@rivendell.middle-earth.co.uk> References: <4E4D2E56.5050801@redhat.com> <20110818155426.GH9583@rivendell.middle-earth.co.uk> Message-ID: <4E4E14E2.9030101@redhat.com> Dr Andrew John Hughes wrote: > On 17:23 Thu 18 Aug , Pavel Tisnovsky wrote: >> Greetings, >> >> the patch saved in an attachment contains fix of regression test >> InvokeGenericTest.java. The original version of the test depends on JUnit >> framework which is not supported by our regression test tool (and backport of >> newer JTreg is quite hard). The fix of the test is quite easy, because JUnit >> framework was used only on a few number of places. >> >> Tested on RHEL 5 x86_64 against recent IcedTea7 HEAD build. >> >> ChangeLog entry for IcedTea7 HEAD: >> >> 2011-08-18 Pavel Tisnovsky >> >> Removed dependency on JUnit framework from regression test >> InvokeGenericTest >> * Makefile.am: >> (JDK_CHANGESET): Updated. >> (JDK_SHA256SUM): Likewise. >> >> >> Can anybody please review this patch? >> >> Thank you in advance, >> Pavel > > I think this should just be blacklisted for now until jtreg is updated. > The test isn't at fault here. > Ok, can I add this test to excludelist.jdk.jtx? Pavel From xranby at icedtea.classpath.org Fri Aug 19 04:36:15 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Fri, 19 Aug 2011 11:36:15 +0000 Subject: /hg/icedtea6: JamVM: LP827463: Fix OpenJDK enclosingMethodInfo()... Message-ID: changeset 759b17771e6a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=759b17771e6a author: Xerxes Ranby date: Fri Aug 19 13:36:29 2011 +0200 JamVM: LP827463: Fix OpenJDK enclosingMethodInfo(), Updated JamVM to 2011-08-19 revision. 2011-08-19 Xerxes Ranby JamVM - LP827463: Fix OpenJDK enclosingMethodInfo(). - "Fix" handling of CLI bootclasspath options. - Fix for StackTraceElement checkin. * NEWS: Updated. * patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.pa tch: Replaced by upstream, Fix for StackTraceElement checkin, changeset 500a6c2f3b9769c73d872ea78de4237e427a443e. * Makefile.am (ICEDTEA_PATCHES): Remove upstreamed JamVM patch. (JAMVM_VERSION): Updated JamVM to 2011-08-19 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 15 ++++++++++ Makefile.am | 7 ++-- NEWS | 4 ++ patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch | 12 -------- 4 files changed, 22 insertions(+), 16 deletions(-) diffs (84 lines): diff -r 1bec501e2dc7 -r 759b17771e6a ChangeLog --- a/ChangeLog Tue Aug 16 16:09:29 2011 +0200 +++ b/ChangeLog Fri Aug 19 13:36:29 2011 +0200 @@ -1,3 +1,18 @@ +2011-08-19 Xerxes R??nby + + JamVM + - LP827463: Fix OpenJDK enclosingMethodInfo(). + - "Fix" handling of CLI bootclasspath options. + - Fix for StackTraceElement checkin. + * NEWS: Updated. + * patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch: + Replaced by upstream, Fix for StackTraceElement checkin, + changeset 500a6c2f3b9769c73d872ea78de4237e427a443e. + * Makefile.am + (ICEDTEA_PATCHES): Remove upstreamed JamVM patch. + (JAMVM_VERSION): Updated JamVM to 2011-08-19 revision. + (JAMVM_SHA256SUM): Updated. + 2011-08-16 Pavel Tisnovsky * Makefile.am: added new patch diff -r 1bec501e2dc7 -r 759b17771e6a Makefile.am --- a/Makefile.am Tue Aug 16 16:09:29 2011 +0200 +++ b/Makefile.am Fri Aug 19 13:36:29 2011 +0200 @@ -11,8 +11,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = b8e5dbad856be3b3bb0309467264053d1e2c58a9 -JAMVM_SHA256SUM = 9178f7d85851f6c908de1e1114ec158dc5fbc4aa4025478cac16a12459ac9a51 +JAMVM_VERSION = 15f0fcf749071c7fa1bf0431e044e55143e94844 +JAMVM_SHA256SUM = af0213333302193f9eda0bd852b2d0419484160e1853235acdb83ed73829a1f8 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 @@ -399,8 +399,7 @@ if BUILD_JAMVM ICEDTEA_PATCHES += \ patches/jamvm/jmm_GetLongAttribute_201.patch \ - patches/jamvm/ignore-assertions-and-verify-options.patch \ - patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch + patches/jamvm/ignore-assertions-and-verify-options.patch endif if ENABLE_PULSE_JAVA diff -r 1bec501e2dc7 -r 759b17771e6a NEWS --- a/NEWS Tue Aug 16 16:09:29 2011 +0200 +++ b/NEWS Fri Aug 19 13:36:29 2011 +0200 @@ -6,6 +6,7 @@ DX - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=X 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 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY @@ -376,6 +377,9 @@ - Threadlist & threadobject improvements. * JamVM - PR772: jtreg LocalOnlyTest sends SIGQUIT to all processes on exit. + - LP827463: Fix OpenJDK enclosingMethodInfo(). + - "Fix" handling of CLI bootclasspath options. + - Fix for StackTraceElement checkin. - Ignore assertions and verify options. - Fix typo in definition of ACC_MIRANDA. - Intern strings when creating a StackTraceElement. diff -r 1bec501e2dc7 -r 759b17771e6a patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch --- a/patches/jamvm/4dbc2ee340a600fc17451dfbcfc09e1f9844fc59-regression.patch Tue Aug 16 16:09:29 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -Index: jamvm/jamvm/src/excep.c -=================================================================== ---- jamvm.orig/jamvm/src/excep.c 2011-08-15 14:19:32.757781965 +0200 -+++ jamvm/jamvm/src/excep.c 2011-08-15 14:19:43.601836044 +0200 -@@ -311,7 +311,7 @@ - executeMethod(ste, ste_init_mb, - findInternedString(classname), - findInternedString(methodname), -- findInternedString(filename), -+ filename, - is_native ? -2 : mapPC2LineNo(mb, pc)); - - if(exceptionOccurred()) From bugzilla-daemon at icedtea.classpath.org Fri Aug 19 05:14:10 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 19 Aug 2011 12:14:10 +0000 Subject: [Bug 775] New: NullPointerException in restoreTransientFor Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=775 Summary: NullPointerException in restoreTransientFor Product: IcedTea Version: 6-1.10.3 Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: lingfengz at yahoo.com Ran into this error when clicking a button to close a dialogue box in MATLab (I overwrote the buildin vm with a symbolic link to the system vm). I believe this is a icedtea issue, probably upstream because it only started to behaving like this only recently and the issue goes away when I downgrading to icedtead-6.1.10.2. And it might to be related to this issue: http://bugs.sun.com/view_bug.do?bug_id=6826104 which is fixed to upstream for jdk7. -------------------------------------------------------------------------------- Exception occurred during event dispatching: java.lang.NullPointerException at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1681) at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1747) at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1469) at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1440) at java.awt.Window.setModalBlocked(Window.java:1359) at java.awt.Dialog.unblockWindow(Dialog.java:1597) at java.awt.Dialog.modalHide(Dialog.java:1483) at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215) at java.awt.Dialog.hide(Dialog.java:1255) at com.mathworks.mwswing.MJDialog.hide(MJDialog.java:426) at java.awt.Component.show(Component.java:1553) at java.awt.Component.setVisible(Component.java:1503) at java.awt.Window.setVisible(Window.java:881) at java.awt.Dialog.setVisible(Dialog.java:1011) at com.mathworks.mwswing.MJOptionPane$2.propertyChange(MJOptionPane.java:261) at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:298) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291) at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:229) at java.awt.Component.firePropertyChange(Component.java:8148) at javax.swing.JOptionPane.setValue(JOptionPane.java:1964) at javax.swing.plaf.basic.BasicOptionPaneUI$ButtonActionListener.actionPerformed(BasicOptionPaneUI.java:1201) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253) at java.awt.Component.processMouseEvent(Component.java:6268) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6033) at java.awt.Container.processEvent(Container.java:2045) at java.awt.Component.dispatchEventImpl(Component.java:4629) at java.awt.Container.dispatchEventImpl(Container.java:2103) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227) at java.awt.Container.dispatchEventImpl(Container.java:2089) at java.awt.Window.dispatchEventImpl(Window.java:2517) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) at java.awt.EventQueue.access$000(EventQueue.java:96) at java.awt.EventQueue$1.run(EventQueue.java:608) at java.awt.EventQueue$1.run(EventQueue.java:606) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$2.run(EventQueue.java:622) at java.awt.EventQueue$2.run(EventQueue.java:620) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1072) at java.awt.Dialog$3.run(Dialog.java:1126) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1124) at com.mathworks.mwswing.MJDialog.show(MJDialog.java:398) at java.awt.Component.show(Component.java:1551) at java.awt.Component.setVisible(Component.java:1503) at java.awt.Window.setVisible(Window.java:881) at java.awt.Dialog.setVisible(Dialog.java:1011) at com.mathworks.mwswing.MJOptionPane.showOptionDialog(MJOptionPane.java:531) at com.mathworks.mwswing.MJOptionPane.showConfirmDialog(MJOptionPane.java:475) at com.mathworks.mwswing.MJOptionPane.showConfirmDialog(MJOptionPane.java:465) at com.mathworks.widgets.Dialogs.showOptionalConfirmDialog(Dialogs.java:165) at com.mathworks.mde.editor.DialogFactory.showSaveWhileDebug(DialogFactory.java:70) at com.mathworks.mde.editor.EditorViewClient.promptToExitDebugMode(EditorViewClient.java:554) at com.mathworks.mde.editor.MatlabEditorApplication$12.saveAboutToHappen(MatlabEditorApplication.java:903) at com.mathworks.widgets.datamodel.TextFileBackingStore.doSave(TextFileBackingStore.java:269) at com.mathworks.widgets.datamodel.TextFileBackingStore.doSave(TextFileBackingStore.java:255) at com.mathworks.widgets.datamodel.TextFileBackingStore.doNegotiateSave(TextFileBackingStore.java:351) at com.mathworks.widgets.datamodel.TextFileBackingStore.doNegotiateSave(TextFileBackingStore.java:35) at com.mathworks.matlab.api.datamodel.AbstractBackingStore.negotiateSave(AbstractBackingStore.java:89) at com.mathworks.mde.editor.EditorView.negotiateSave(EditorView.java:226) at com.mathworks.mde.editor.EditorView$10.update(EditorView.java:797) at com.mathworks.mde.editor.EditorAction$ObservableAction.actionPerformed(EditorAction.java:52) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:374) at javax.swing.AbstractButton.doClick(AbstractButton.java:354) at com.mathworks.mwswing.plaf.MBasicMenuItemUI$ClickAction.actionPerformed(MBasicMenuItemUI.java:1134) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1660) at javax.swing.JComponent.processKeyBinding(JComponent.java:2851) at com.mathworks.mwswing.MJMenuItem.processKeyBinding(MJMenuItem.java:278) at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:687) at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:695) at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:695) at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:666) at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:285) at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:272) at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2928) at javax.swing.JComponent.processKeyBindings(JComponent.java:2920) at javax.swing.JComponent.processKeyEvent(JComponent.java:2814) at com.mathworks.widgets.SyntaxTextPaneBase.processKeyEvent(SyntaxTextPaneBase.java:1124) at java.awt.Component.processEvent(Component.java:6045) at java.awt.Container.processEvent(Container.java:2045) at java.awt.Component.dispatchEventImpl(Component.java:4629) at java.awt.Container.dispatchEventImpl(Container.java:2103) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1881) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:759) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1035) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:902) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:724) at java.awt.Component.dispatchEventImpl(Component.java:4499) at java.awt.Container.dispatchEventImpl(Container.java:2103) at java.awt.Window.dispatchEventImpl(Window.java:2517) at java.awt.Component.dispatchEvent(Component.java:4455) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649) at java.awt.EventQueue.access$000(EventQueue.java:96) at java.awt.EventQueue$1.run(EventQueue.java:608) at java.awt.EventQueue$1.run(EventQueue.java:606) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$2.run(EventQueue.java:622) at java.awt.EventQueue$2.run(EventQueue.java:620) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:619) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) Cheers. MZ -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ptisnovs at icedtea.classpath.org Fri Aug 19 07:05:23 2011 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 19 Aug 2011 14:05:23 +0000 Subject: /hg/gfx-test: * src/org/gfxtest/framework/CommonRenderingStyles.... Message-ID: changeset a70769863697 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a70769863697 author: Pavel Tisnovsky date: Fri Aug 19 16:06:59 2011 +0200 * src/org/gfxtest/framework/CommonRenderingStyles.java: Added methods supporting rendering shapes filled by radial gradient paint. * src/org/gfxtest/testsuites/GradientPaint.java: Removed unused import. * src/org/gfxtest/testsuites/RadialGradientPaint.java: Created new test suite containing 12 new gfx.tests. diffstat: ChangeLog | 9 + src/org/gfxtest/framework/CommonRenderingStyles.java | 115 ++++++- src/org/gfxtest/testsuites/GradientPaint.java | 3 +- src/org/gfxtest/testsuites/RadialGradientPaint.java | 336 +++++++++++++++++++ 4 files changed, 460 insertions(+), 3 deletions(-) diffs (truncated from 522 to 500 lines): diff -r 086679317267 -r a70769863697 ChangeLog --- a/ChangeLog Thu Aug 18 12:35:19 2011 +0200 +++ b/ChangeLog Fri Aug 19 16:06:59 2011 +0200 @@ -1,3 +1,12 @@ +2011-08-19 Pavel Tisnovsky + * src/org/gfxtest/framework/CommonRenderingStyles.java: + Added methods supporting rendering shapes filled by radial gradient + paint. + * src/org/gfxtest/testsuites/GradientPaint.java: + Removed unused import. + * src/org/gfxtest/testsuites/RadialGradientPaint.java: + Created new test suite containing 12 new gfx.tests. + 2011-08-18 Pavel Tisnovsky * src/org/gfxtest/testsuites/GradientPaint.java: Created new test suite containing 16 new gfx.tests. diff -r 086679317267 -r a70769863697 src/org/gfxtest/framework/CommonRenderingStyles.java --- a/src/org/gfxtest/framework/CommonRenderingStyles.java Thu Aug 18 12:35:19 2011 +0200 +++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Fri Aug 19 16:06:59 2011 +0200 @@ -44,6 +44,8 @@ import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics2D; +import java.awt.RadialGradientPaint; +import java.awt.MultipleGradientPaint.CycleMethod; @@ -78,7 +80,7 @@ /** * Default gradient paint first color. */ - private static final Color DEFAULT_GRADIENT_PAINT_FIRST_COLOR = Color.RED; + private static final Color DEFAULT_GRADIENT_PAINT_FIRST_COLOR = Color.BLUE; /** * Default gradient paint second color. @@ -86,6 +88,21 @@ private static final Color DEFAULT_GRADIENT_PAINT_SECOND_COLOR = Color.YELLOW; /** + * Default radial gradient paint first color. + */ + private static final Color DEFAULT_RADIAL_GRADIENT_PAINT_FIRST_COLOR = Color.RED; + + /** + * Default radial gradient paint second color. + */ + private static final Color DEFAULT_RADIAL_GRADIENT_PAINT_SECOND_COLOR = Color.WHITE; + + /** + * Default radial gradient paint third color. + */ + private static final Color DEFAULT_RADIAL_GRADIENT_PAINT_THIRD_COLOR = Color.BLUE; + + /** * Set default stroke color. * * @param graphics @@ -412,6 +429,102 @@ } /** + * Set radial gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param cycleMethod + * the method to use when painting outside gradient bounds + * @param radiusScale + * scale used while calculating radius + */ + public static void setRadialGradientFill(TestImage image, Graphics2D graphics, CycleMethod cycleMethod, float radiusScale) + { + setRadialGradientFill(image, graphics, DEFAULT_RADIAL_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_SECOND_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_THIRD_COLOR, cycleMethod, radiusScale); + } + + /** + * Set radial gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + */ + public static void setRadialGradientFill(TestImage image, Graphics2D graphics) + { + setRadialGradientFill(image, graphics, DEFAULT_RADIAL_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_SECOND_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_THIRD_COLOR); + } + + /** + * Set radial gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param cycleMethod + * the method to use when painting outside gradient bounds + */ + public static void setRadialGradientFill(TestImage image, Graphics2D graphics, CycleMethod cycleMethod) + { + setRadialGradientFill(image, graphics, DEFAULT_RADIAL_GRADIENT_PAINT_FIRST_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_SECOND_COLOR, DEFAULT_RADIAL_GRADIENT_PAINT_THIRD_COLOR, cycleMethod, 1.0f); + } + + /** + * Set radial gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color used in the gradient + * @param color2 + * color used in the gradient + * @param color3 + * color used in the gradient + */ + private static void setRadialGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2, Color color3) + { + setRadialGradientFill(image, graphics, color1, color2, color3, CycleMethod.NO_CYCLE, 1.0f); + } + + /** + * Set radial gradient fill for given graphics context. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @param color1 + * color used in the gradient + * @param color2 + * color used in the gradient + * @param color3 + * color used in the gradient + * @param cycleMethod + * the method to use when painting outside gradient bounds + * @param radiusScale + * scale used while calculating radius + */ + private static void setRadialGradientFill(TestImage image, Graphics2D graphics, Color color1, Color color2, Color color3, CycleMethod cycleMethod, float radiusScale) + { + // calculate center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + + // calculate radius of circle + int radius = (int) (CommonShapesRenderer.calculateRadius(image) * radiusScale); + float[] dist = { 0.0f, 0.2f, 1.0f }; + Color[] colors = { color1, color2, color3 }; + RadialGradientPaint gradientPaint = new RadialGradientPaint(xc, yc, radius, dist, colors, cycleMethod); + graphics.setPaint(gradientPaint); + } + + /** * Set zero pixels wide stroke and default cap and join style. * * @param graphics diff -r 086679317267 -r a70769863697 src/org/gfxtest/testsuites/GradientPaint.java --- a/src/org/gfxtest/testsuites/GradientPaint.java Thu Aug 18 12:35:19 2011 +0200 +++ b/src/org/gfxtest/testsuites/GradientPaint.java Fri Aug 19 16:06:59 2011 +0200 @@ -42,7 +42,6 @@ -import java.awt.Color; import java.awt.Graphics2D; @@ -51,7 +50,7 @@ import org.gfxtest.framework.annotations.*; /** - * This test renders filled shapes using simple ColorPaint. + * This test renders filled shapes using gradient paint. * * @author Pavel Tisnovsky */ diff -r 086679317267 -r a70769863697 src/org/gfxtest/testsuites/RadialGradientPaint.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/gfxtest/testsuites/RadialGradientPaint.java Fri Aug 19 16:06:59 2011 +0200 @@ -0,0 +1,336 @@ +/* + Java gfx-test framework + + Copyright (C) 2010, 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +package org.gfxtest.testsuites; + +import java.awt.Graphics2D; +import java.awt.MultipleGradientPaint.CycleMethod; + + + +import org.gfxtest.framework.*; +import org.gfxtest.framework.annotations.*; + +/** + * This test renders filled shapes using radial gradient paint. + * + * @author Pavel Tisnovsky + */ + at TestType(TestTypes.RENDER_TEST) + at RenderStyle(RenderStyles.FILL) + at Transformation(Transformations.NONE) + at Zoom(1) +public class RadialGradientPaint extends GfxTest +{ + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillSmallerRadiusNoCycle(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.NO_CYCLE, 0.5f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillSmallerRadiusRepeat(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.REPEAT, 0.5f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillSmallerRadiusReflect(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.REFLECT, 0.5f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillLargerRadiusNoCycle(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.NO_CYCLE, 2.0f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillLargerRadiusRepeat(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.REPEAT, 2.0f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled circle drawn by graphics.fillOval() is rendered correctly. + * Radial Gradient paint is used for filling this circle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCircleRadialGradientFillLargerRadiusReflect(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics, CycleMethod.REFLECT, 2.0f); + // draw the circle + CommonShapesRenderer.drawFilledCircle(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled rectangle is rendered correctly. + * Radial gradient paint is used for filling this rectangle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testRectangleRadialGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledRect(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled round rectangle is rendered correctly. + * Radial gradient paint is used for filling this round rectangle. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testRoundRectangleRadialGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledRoundRect(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled arc is rendered correctly. + * Radial gradient paint is used for filling this arc. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testArcRadialGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledArc(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled polygon is rendered correctly. + * Radial gradient paint is used for filling this polygon. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testPolygonRadialGradientFill(TestImage image, Graphics2D graphics) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics); + // set fill color + CommonRenderingStyles.setRadialGradientFill(image, graphics); + // draw the circle + CommonShapesRenderer.drawFilledPolygon(image, graphics); + // test return value + return TestResult.PASSED; + } + + /** + * Test if filled closed path is rendered correctly. + * Radial gradient paint is used for filling this path. + * + * @param image + * image to which two dimensional shape is to be rendered + * @param graphics + * graphics context for image + * @return test result status - PASSED, FAILED or ERROR + */ From omajid at redhat.com Fri Aug 19 10:23:55 2011 From: omajid at redhat.com (Omair Majid) Date: Fri, 19 Aug 2011 13:23:55 -0400 Subject: /hg/icedtea-web: 2 new changesets In-Reply-To: References: Message-ID: <4E4E9C2B.5020703@redhat.com> On 07/20/2011 10:39 AM, dbhole at icedtea.classpath.org wrote: > changeset a9061a71cfc7 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a9061a71cfc7 > author: Deepak Bhole > date: Fri Jul 15 15:44:56 2011 -0400 > > RH718164, CVE-2011-2513: Home directory path disclosure to untrusted > applications > I forgot to add configure check for the new sun.* classes this patch makes us depend on: > + > +import sun.net.www.protocol.jar.URLJarFile; > +import sun.net.www.protocol.jar.URLJarFileCallBack; > + A new patch attached. Okay to commit? Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea-web-add-new-class-checks.patch Type: text/x-patch Size: 820 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110819/28c5d39f/icedtea-web-add-new-class-checks.patch From omajid at redhat.com Fri Aug 19 12:19:04 2011 From: omajid at redhat.com (Omair Majid) Date: Fri, 19 Aug 2011 15:19:04 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <4E4D4A45.5000909@redhat.com> References: <4E4D4A45.5000909@redhat.com> Message-ID: <4E4EB728.7020507@redhat.com> On 08/18/2011 01:22 PM, Omair Majid wrote: > Any thoughts or comments? > Danesh pointed out a quoting issue in the patch. Updated patch attached. Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea-web-work-with-jre-only-02.patch Type: text/x-patch Size: 3403 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110819/962be85e/icedtea-web-work-with-jre-only-02.patch From ddadacha at redhat.com Fri Aug 19 12:31:36 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 19 Aug 2011 15:31:36 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <4E4EB728.7020507@redhat.com> References: <4E4D4A45.5000909@redhat.com> <4E4EB728.7020507@redhat.com> Message-ID: <4E4EBA18.70609@redhat.com> Looks good to me! Okay for HEAD and 1.1. Regards, Danesh On 19/08/11 03:19 PM, Omair Majid wrote: > On 08/18/2011 01:22 PM, Omair Majid wrote: >> Any thoughts or comments? >> > > Danesh pointed out a quoting issue in the patch. Updated patch attached. > > Cheers, > Omair From ddadacha at redhat.com Fri Aug 19 14:02:51 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Fri, 19 Aug 2011 17:02:51 -0400 Subject: /hg/icedtea-web: 2 new changesets In-Reply-To: <4E4E9C2B.5020703@redhat.com> References: <4E4E9C2B.5020703@redhat.com> Message-ID: <4E4ECF7B.8080705@redhat.com> On 19/08/11 01:23 PM, Omair Majid wrote: > On 07/20/2011 10:39 AM, dbhole at icedtea.classpath.org wrote: >> changeset a9061a71cfc7 in /hg/icedtea-web >> details: >> http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a9061a71cfc7 >> >> author: Deepak Bhole >> date: Fri Jul 15 15:44:56 2011 -0400 >> >> RH718164, CVE-2011-2513: Home directory path disclosure to untrusted >> applications >> > > I forgot to add configure check for the new sun.* classes this patch > makes us depend on: > >> + >> +import sun.net.www.protocol.jar.URLJarFile; >> +import sun.net.www.protocol.jar.URLJarFileCallBack; >> + > > A new patch attached. Okay to commit? Builds fine for me. Nice catch! Okay for HEAD. Regards, Danesh > > Cheers, > Omair From smohamma at redhat.com Fri Aug 19 14:07:24 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Fri, 19 Aug 2011 17:07:24 -0400 (EDT) Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E4BE75E.8060706@redhat.com> Message-ID: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> I have attached the updated patch. 2011-08-19 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPFile.java: (parse): After the file has been parsed, it calls checkForSpecialProperties() to check if the resources contain any special properties. (checkForSpecialProperties): Scans through resources and checks if it contains any special properties. (requiresSignedJNLPWarning): Returns a boolean after determining if a signed JNLP warning should be displayed. (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is missing in the main jar. * netx/net/sourceforge/jnlp/resources/Messages.properties: Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Locates the jar file that contains the main class and verifies if a signed JNLP file is also located in that jar. This also checks 'lazy' jars if the the main class was not found in 'eager' jars. If the main jar was not found, a LaunchException is thrown which terminates the launch of the application. (checkForMain): A method that goes through each jar and checks to see if it has the main class. If the main class is found, it calls verifySignedJNLP() to verify if a valid signed JNLP file is also found in the jar. (verifySignedJNLP): A method that checks if the jar file contains a valid signed JNLP file. (closeStream): Closes a stream. (loadClassExt): Added a try/catch block when addNextResource() is called. (addNextResource): If the main jar has not been found, checkForMain() is called to check if the jar contains the main class, and verifies if a signed JNLP file is also located. * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: (addComponents): Displays the signed JNLP warning message if necessary. * netx/net/sourceforge/jnlp/security/SecurityDialog.java: (SecurityDialog): Stores the value of whether a signed JNLP warning should be displayed. (showMoreInfoDialog): Passes in the associated JNLP file when creating a SecurityDialog object. (requiresSignedJNLPWarning): Returns a boolean after determining if a signed JNLP warning should be displayed. -------------- next part -------------- A non-text attachment was scrubbed... Name: 08-19-429.patch Type: text/x-patch Size: 22046 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110819/48139485/08-19-429.patch From jvanek at redhat.com Sun Aug 21 23:41:47 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 22 Aug 2011 08:41:47 +0200 Subject: Fwd: Re: [icedtea-web] RFC: allow icedtea-web to run with just a jre Message-ID: <4E51FA2B.5070804@redhat.com> This seems to be lost on wire :( J -------- Original Message -------- Subject: Re: [icedtea-web] RFC: allow icedtea-web to run with just a jre Date: Fri, 19 Aug 2011 07:28:14 +0200 From: Jiri Vanek To: Omair Majid CC: IcedTea Hi!! Just to keep in loop - This is related to https://bugzilla.redhat.com/show_bug.cgi?id=731358 and https://bugzilla.redhat.com/show_bug.cgi?id=731345 The patch itself looks ok. The only point I can see is that now there are three java paths set by configure - --with-jdk-home can specify SYSTEM_JDK_DIR --with-java can specify JAVA and now --with-jre is added. Is there really any reason why to keep all thee variables? Best Regards J. On 08/18/2011 07:22 PM, Omair Majid wrote: > Hi, > > The attached patch allows icedtea-web to run in the presence of just a jre, rather than the entire jdk, after icedtea-web is built. > > The rationale for this change is that some distributions, like Fedora, only include the contents of openjdk's j2sdk-image/jre as part of the openjdk package. j2sdk-image/bin is provided with the openjdk development package in those distributions. It should not be necessary for users of icedtea-web to install the openjdk development packages. > > During the build process IcedTea-Web embeds the path to the jre directory and the java binary in the launcher scripts (javaws/itweb-settings) and the plugin so (IcedTeaPlugin.so). > > The patch adjusts things so that the java binary is looked up from inside the jre. The jre can now also be specified separately. > > With the patch applied something like this should work: > > ./configure --with-jdk-home=/path/to/icedtea6/openjdk.build/j2sdk-image --with-jre-home=/path/to/icedtea6/openjdk.build/j2re-image > > And even if the j2sdk-image is removed, IcedTea-Web should continue to work. > > If --with-jre-home is not specified, it should default to $SYSTEM_JDK_DIR/jre, the old value. > > I would like to add this to HEAD, and backport it to 1.1 as well. > > Any thoughts or comments? > > Cheers, > Omair From omajid at redhat.com Mon Aug 22 05:43:03 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 22 Aug 2011 08:43:03 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> References: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Message-ID: <4E524ED7.7060406@redhat.com> On 08/19/2011 05:07 PM, Saad Mohammad wrote: > I have attached the updated patch. Concerns noted below. The patch is starting to look quite good. > diff -r 61e08e67b176 netx/net/sourceforge/jnlp/JNLPFile.java > --- a/netx/net/sourceforge/jnlp/JNLPFile.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Fri Aug 19 17:06:31 2011 -0400 > @@ -107,6 +107,37 @@ > > /** the default jvm */ > protected String defaultArch = null; > + > + /** A signed JNLP file is missing from the main jar */ > + private boolean missingSignedJNLP = false; > + > + /** JNLP file contains special properties */ > + private boolean containsSpecialProperties = false; > + > + /** List of acceptable properties (not-special) > + * Usinghttp://download.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/properties.html > + */ > + > + private String[] generalProperties = { > + "awt.useSystemAAFontSettings", > + "http.agent", > + "http.keepAlive", > + "java.awt.syncLWRequests", > + "java.awt.Window.locationByPlatform", > + "javaws.cfg.jauthenticator", > + "javax.swing.defaultlf", > + "sun.awt.noerasebackground", > + "sun.awt.erasebackgroundonresize", > + "sun.java2d.d3d", > + "sun.java2d.dpiaware", > + "sun.java2d.noddraw", > + "sun.java2d.opengl", > + "swing.boldMetal", > + "swing.metalTheme", > + "swing.noxp", > + "swing.useSystemFontSettings", > + }; > + > Take a look at SecurityDesc. It contains most of these properties. You might be able to make use of that instead of duplicating it here. On that note, it seems to me like signed JNLP files is addressing the same problem that we try to address in ApplicationInstance.installEnvironment(). Once this change is merged in, we might want to remove that. > + } finally { > + > + //Close all streams > + closeStream((Closeable) inStream); > + closeStream((Closeable) inputReader); > + closeStream((Closeable) fr); > + closeStream((Closeable) jnlpReader); > + } Are these casts needed? If not, please remove them. > diff -r 61e08e67b176 netx/net/sourceforge/jnlp/security/MoreInfoPane.java > --- a/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/security/MoreInfoPane.java Fri Aug 19 17:06:31 2011 -0400 > @@ -60,9 +60,12 @@ > * @authorJoshua Sumali > */ > public class MoreInfoPane extends SecurityDialogPanel { > + > + boolean showSignedJNLPWarning; > Private please. > diff -r 61e08e67b176 netx/net/sourceforge/jnlp/security/SecurityDialog.java > --- a/netx/net/sourceforge/jnlp/security/SecurityDialog.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/security/SecurityDialog.java Fri Aug 19 17:06:31 2011 -0400 > @@ -91,6 +91,9 @@ > * null = Window closed. > */ > private Object value; > + > + /** Should show signed JNLP file warning */ > + boolean requiresSignedJNLPWarning; > Private please. Everything else looks fine to me. Cheers, Omair From jvanek at redhat.com Mon Aug 22 06:16:47 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 22 Aug 2011 15:16:47 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <20110721132112.GR32327@rivendell.middle-earth.co.uk> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> Message-ID: <4E5256BF.20000@redhat.com> On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: > On 12:08 Thu 21 Jul , Jiri Vanek wrote: >> >> Hi! >> >> This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. >> During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) >> >> Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. >> > > I suggest taking a look at the autoconf manual and function detection: > > http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions > > Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. > 2011-08-22 Jiri Vanek Added functionality to allow icedtea web to be buildable with rhel5 libraries * testGlibs.cc: testing file. If not compiled, then Rhel5Compatible macro is defined for compiling IcedTeaNPPlugin.cc. * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible functions, added #define sections for use this function instead of glib ones *Makefile.am: (stamps/patch-for-glib): new target, compiling testGlibs.cc ($(PLUGIN_DIR)/%.o): now depends on stamps/patch-for-glib and define Rhel5Compatible if testGlibs.cc was compiled successfully ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ (clean-IcedTeaPlugin): removes compiled testGlibs if exists Regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5comp.patch Type: text/x-patch Size: 7161 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110822/aa9a9ad1/rhel5comp.patch From smohammad at redhat.com Mon Aug 22 09:25:28 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 22 Aug 2011 12:25:28 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E524ED7.7060406@redhat.com> References: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E524ED7.7060406@redhat.com> Message-ID: <4E5282F8.3030202@redhat.com> Updated patch is attached. -- Cheers, Saad Mohammad -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: final.patch Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110822/b524f99d/final.patch From smohamma at redhat.com Mon Aug 22 10:55:32 2011 From: smohamma at redhat.com (Saad Mohammad) Date: Mon, 22 Aug 2011 13:55:32 -0400 (EDT) Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E5282F8.3030202@redhat.com> Message-ID: <873696104.1205917.1314035732777.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> Updated ChangeLog: 2011-08-22 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPFile.java: (parse): After the file has been parsed, it calls checkForSpecialProperties() to check if the resources contain any special properties. (checkForSpecialProperties): Scans through resources and checks if it contains any special properties. (requiresSignedJNLPWarning): Returns a boolean after determining if a signed JNLP warning should be displayed. (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is missing in the main jar. * netx/net/sourceforge/jnlp/SecurityDesc.java: (getJnlpRIAPermissions): Returns all the names of the basic JNLP system properties accessible by RIAs. * netx/net/sourceforge/jnlp/resources/Messages.properties: Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources): Locates the jar file that contains the main class and verifies if a signed JNLP file is also located in that jar. This also checks 'lazy' jars if the the main class was not found in 'eager' jars. If the main jar was not found, a LaunchException is thrown which terminates the launch of the application. (checkForMain): A method that goes through each jar and checks to see if it has the main class. If the main class is found, it calls verifySignedJNLP() to verify if a valid signed JNLP file is also found in the jar. (verifySignedJNLP): A method that checks if the jar file contains a valid signed JNLP file. (closeStream): Closes a stream. (loadClassExt): Added a try/catch block when addNextResource() is called. (addNextResource): If the main jar has not been found, checkForMain() is called to check if the jar contains the main class, and verifies if a signed JNLP file is also located. * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: (addComponents): Displays the signed JNLP warning message if necessary. * netx/net/sourceforge/jnlp/security/SecurityDialog.java: (SecurityDialog): Stores the value of whether a signed JNLP warning should be displayed. (showMoreInfoDialog): Passes in the associated JNLP file when creating a SecurityDialog object. (requiresSignedJNLPWarning): Returns a boolean after determining if a signed JNLP warning should be displayed. -- Cheers, Saad Mohammad From omajid at redhat.com Mon Aug 22 11:37:23 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 22 Aug 2011 14:37:23 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E5282F8.3030202@redhat.com> References: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E524ED7.7060406@redhat.com> <4E5282F8.3030202@redhat.com> Message-ID: <4E52A1E3.3080205@redhat.com> On 08/22/2011 12:25 PM, Saad Mohammad wrote: > Updated patch is attached. > Looks fine to me. Feel free to commit. Something we are still missing is showing the security dialog in the first place. With the patch, if a security dialog is shown, it will show a warning for unsigned jnlp files (if appropriate). But the security dialog wont be shown unless there is another problem. We need to make the security dialog come up even if the only problem is missing signed jnlp files. Cheers, Omair From smohammad at redhat.com Mon Aug 22 11:58:41 2011 From: smohammad at redhat.com (Saad Mohammad) Date: Mon, 22 Aug 2011 14:58:41 -0400 Subject: [RFC[PATCH]: Updated Patch for validating signedJNLP file at launch In-Reply-To: <4E52A1E3.3080205@redhat.com> References: <1630387561.1164726.1313788044960.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com> <4E524ED7.7060406@redhat.com> <4E5282F8.3030202@redhat.com> <4E52A1E3.3080205@redhat.com> Message-ID: <4E52A6E1.6000606@redhat.com> On 08/22/2011 02:37 PM, Omair Majid wrote: > On 08/22/2011 12:25 PM, Saad Mohammad wrote: >> Updated patch is attached. >> > > Looks fine to me. Feel free to commit. > > Something we are still missing is showing the security dialog in the > first place. With the patch, if a security dialog is shown, it will > show a warning for unsigned jnlp files (if appropriate). But the > security dialog wont be shown unless there is another problem. We need > to make the security dialog come up even if the only problem is > missing signed jnlp files. > > Cheers, > Omair Thanks for the review, Omair. I will look into prompting a security dialog if a signed JNLP warning is to be displayed (but nothing has triggered a security dialog prompt). -- Cheers, Saad Mohammad From smohammad at icedtea.classpath.org Mon Aug 22 12:09:49 2011 From: smohammad at icedtea.classpath.org (smohammad at icedtea.classpath.org) Date: Mon, 22 Aug 2011 19:09:49 +0000 Subject: /hg/icedtea-web: Checks and verifies a signed JNLP file at the l... Message-ID: changeset bd59947fa857 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bd59947fa857 author: Saad Mohammad date: Mon Aug 22 15:09:47 2011 -0400 Checks and verifies a signed JNLP file at the launch of the application. A signed JNLP warning is displayed if appropriate. diffstat: ChangeLog | 43 ++ netx/net/sourceforge/jnlp/JNLPFile.java | 55 +++ netx/net/sourceforge/jnlp/SecurityDesc.java | 12 + netx/net/sourceforge/jnlp/resources/Messages.properties | 2 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 255 +++++++++++++++- netx/net/sourceforge/jnlp/security/MoreInfoPane.java | 13 + netx/net/sourceforge/jnlp/security/SecurityDialog.java | 14 +- 7 files changed, 389 insertions(+), 5 deletions(-) diffs (truncated from 592 to 500 lines): diff -r 61e08e67b176 -r bd59947fa857 ChangeLog --- a/ChangeLog Wed Aug 17 12:01:19 2011 -0400 +++ b/ChangeLog Mon Aug 22 15:09:47 2011 -0400 @@ -1,3 +1,46 @@ +2011-08-22 Saad Mohammad + * netx/net/sourceforge/jnlp/JNLPFile.java: + (parse): After the file has been parsed, it calls + checkForSpecialProperties() to check if the resources contain any special + properties. + (checkForSpecialProperties): Scans through resources and checks if it + contains any special properties. + (requiresSignedJNLPWarning): Returns a boolean after determining if a signed + JNLP warning should be displayed. + (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is + missing in the main jar. + * netx/net/sourceforge/jnlp/SecurityDesc.java: + (getJnlpRIAPermissions): Returns all the names of the basic JNLP system + properties accessible by RIAs. + * netx/net/sourceforge/jnlp/resources/Messages.properties: + Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + (initializeResources): Locates the jar file that contains the main class + and verifies if a signed JNLP file is also located in that jar. This also + checks 'lazy' jars if the the main class was not found in 'eager' jars. + If the main jar was not found, a LaunchException is thrown which terminates + the launch of the application. + (checkForMain): A method that goes through each jar and checks to see + if it has the main class. If the main class is found, it calls + verifySignedJNLP() to verify if a valid signed JNLP file is also found in + the jar. + (verifySignedJNLP): A method that checks if the jar file contains a valid + signed JNLP file. + (closeStream): Closes a stream. + (loadClassExt): Added a try/catch block when addNextResource() is called. + (addNextResource): If the main jar has not been found, checkForMain() is + called to check if the jar contains the main class, and verifies if a signed + JNLP file is also located. + * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: + (addComponents): Displays the signed JNLP warning message if necessary. + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: + (SecurityDialog): Stores the value of whether a signed JNLP warning should + be displayed. + (showMoreInfoDialog): Passes in the associated JNLP file when creating a + SecurityDialog object. + (requiresSignedJNLPWarning): Returns a boolean after determining if a signed + JNLP warning should be displayed. + 2011-08-17 Danesh Dadachanji Update UI for SecurityDialog diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/JNLPFile.java --- a/netx/net/sourceforge/jnlp/JNLPFile.java Wed Aug 17 12:01:19 2011 -0400 +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Mon Aug 22 15:09:47 2011 -0400 @@ -107,7 +107,18 @@ /** the default jvm */ protected String defaultArch = null; + + /** A signed JNLP file is missing from the main jar */ + private boolean missingSignedJNLP = false; + + /** JNLP file contains special properties */ + private boolean containsSpecialProperties = false; + /** + * List of acceptable properties (not-special) + */ + private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); + { // initialize defaults if security allows try { defaultLocale = Locale.getDefault(); @@ -608,6 +619,9 @@ launchType = parser.getLauncher(root); component = parser.getComponent(root); security = parser.getSecurity(root); + + checkForSpecialProperties(); + } catch (ParseException ex) { throw ex; } catch (Exception ex) { @@ -619,6 +633,30 @@ } /** + * Inspects the JNLP file to check if it contains any special properties + */ + private void checkForSpecialProperties() { + + for (ResourcesDesc res : resources) { + for (PropertyDesc propertyDesc : res.getProperties()) { + + for (int i = 0; i < generalProperties.length; i++) { + String property = propertyDesc.getKey(); + + if (property.equals(generalProperties[i])) { + break; + } else if (!property.equals(generalProperties[i]) + && i == generalProperties.length - 1) { + containsSpecialProperties = true; + return; + } + } + + } + } + } + + /** * * @return true if the JNLP file specifies things that can only be * applied on a new vm (eg: different max heap memory) @@ -690,4 +728,21 @@ return new DownloadOptions(usePack, useVersion); } + /** + * Returns a boolean after determining if a signed JNLP warning should be + * displayed in the 'More Information' panel. + * + * @return true if a warning should be displayed; otherwise false + */ + public boolean requiresSignedJNLPWarning() { + return (missingSignedJNLP && containsSpecialProperties); + } + + /** + * Informs that a signed JNLP file is missing in the main jar + */ + public void setSignedJNLPAsMissing() { + missingSignedJNLP = true; + } + } diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/SecurityDesc.java --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Wed Aug 17 12:01:19 2011 -0400 +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Mon Aug 22 15:09:47 2011 -0400 @@ -244,5 +244,17 @@ return permissions; } + + /** + * Returns all the names of the basic JNLP system properties accessible by RIAs + */ + public static String[] getJnlpRIAPermissions() { + String[] jnlpPermissions = new String[jnlpRIAPermissions.length]; + + for (int i = 0; i < jnlpRIAPermissions.length; i++) + jnlpPermissions[i] = jnlpRIAPermissions[i].getName(); + + return jnlpPermissions; + } } diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Aug 17 12:01:19 2011 -0400 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Aug 22 15:09:47 2011 -0400 @@ -80,6 +80,7 @@ LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. +LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. JNotApplet=File is not an applet. JNotApplication=File is not an application. @@ -210,6 +211,7 @@ SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" +SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. # Security - used for the More Information dialog SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 17 12:01:19 2011 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Aug 22 15:09:47 2011 -0400 @@ -17,10 +17,13 @@ import static net.sourceforge.jnlp.runtime.Translator.R; +import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; @@ -46,11 +49,14 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; - +import net.sourceforge.jnlp.AppletDesc; +import net.sourceforge.jnlp.ApplicationDesc; import net.sourceforge.jnlp.DownloadOptions; import net.sourceforge.jnlp.ExtensionDesc; import net.sourceforge.jnlp.JARDesc; import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.JNLPMatcher; +import net.sourceforge.jnlp.JNLPMatcherException; import net.sourceforge.jnlp.LaunchException; import net.sourceforge.jnlp.ParseException; import net.sourceforge.jnlp.PluginBridge; @@ -81,6 +87,13 @@ // extension classes too so that main file classes can load // resources in an extension. + /** Signed JNLP File and Template */ + final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; + final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; + + /** 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! @@ -153,6 +166,10 @@ /** Loader for codebase (which is a path, rather than a file) */ private CodeBaseClassLoader codeBaseLoader; + + /** True if the jar with the main class has been found + * */ + private boolean foundMainJar= false; /** * Create a new JNLPClassLoader from the specified file. @@ -460,6 +477,26 @@ !SecurityDialogs.showNotAllSignedWarningDialog(file)) throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), R("LSignedAppJarUsingUnsignedJarInfo")); + + // Check for main class in the downloaded jars, and check/verify signed JNLP fill + checkForMain(initialJars); + + // If jar with main class was not found, check available resources + while (!foundMainJar && available != null && available.size() != 0) + addNextResource(); + + // If jar with main class was not found and there are no more + // available jars, throw a LaunchException + if (!foundMainJar + && (available == null || available.size() == 0)) + throw new LaunchException(file, null, R("LSFatal"), + R("LCClient"), R("LCantDetermineMainClass"), + R("LCantDetermineMainClassInfo")); + + // If main jar was found, but a signed JNLP file was not located + if (!isSignedJNLP && foundMainJar) + file.setSignedJNLPAsMissing(); + //user does not trust this publisher if (!js.getAlreadyTrustPublisher()) { checkTrustWithUser(js); @@ -518,10 +555,205 @@ System.err.println(mfe.getMessage()); } } - activateJars(initialJars); } + + /*** + * Checks for the jar that contains the main class. If the main class was + * found, it checks to see if the jar is signed and whether it contains a + * signed JNLP file + * + * @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 { + Object obj = file.getLaunchInfo(); + String mainClass; + + if (obj instanceof ApplicationDesc) { + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); + mainClass = ad.getMainClass(); + } else if (obj instanceof AppletDesc) { + AppletDesc ad = (AppletDesc) file.getLaunchInfo(); + mainClass = ad.getMainClass(); + } else + return; + + for (int i = 0; i < jars.size(); i++) { + + try { + File localFile = tracker + .getCacheFile(jars.get(i).getLocation()); + + if (localFile == null) + throw new NullPointerException( + "Could not locate jar file, returned null"); + + JarFile jarFile = new JarFile(localFile); + Enumeration entries = jarFile.entries(); + JarEntry je; + + while (entries.hasMoreElements()) { + je = entries.nextElement(); + String jeName = je.getName().replaceAll("/", "."); + + if (!jeName.startsWith(mainClass + "$Inner") + && (jeName.startsWith(mainClass) && jeName.endsWith(".class"))) { + foundMainJar = true; + verifySignedJNLP(jars.get(i), jarFile); + break; + } + } + } catch (IOException e) { + /* + * After this exception is caught, it is escaped. This will skip + * the jarFile that may have thrown this exception and move on + * to the next jarFile (if there are any) + */ + } + } + } + + /** + * Is called by checkForMain() to check if the jar file is signed and if it + * contains a signed JNLP file. + * + * @param jarDesc JARDesc of jar + * @param jarFile the jar file + * @throws LaunchException thrown if the signed JNLP file, within the main jar, fails to be verified or does not match + */ + private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) + throws LaunchException { + + JarSigner signer = new JarSigner(); + List desc = new ArrayList(); + desc.add(jarDesc); + + // Initialize streams + InputStream inStream = null; + InputStreamReader inputReader = null; + FileReader fr = null; + InputStreamReader jnlpReader = null; + + try { + signer.verifyJars(desc, tracker); + + if (signer.allJarsSigned()) { // If the jar is signed + + Enumeration entries = jarFile.entries(); + JarEntry je; + + while (entries.hasMoreElements()) { + je = entries.nextElement(); + String jeName = je.getName().toUpperCase(); + + if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { + + if (JNLPRuntime.isDebug()) + System.err.println("Creating Jar InputStream from JarEntry"); + + inStream = jarFile.getInputStream(je); + inputReader = new InputStreamReader(inStream); + + if (JNLPRuntime.isDebug()) + System.err.println("Creating File InputStream from lauching JNLP file"); + + JNLPFile jnlp = this.getJNLPFile(); + URL url = jnlp.getFileLocation(); + File jn = null; + + // If the file is on the local file system, use original path, otherwise find cached file + if (url.getProtocol().toLowerCase().equals("file")) + jn = new File(url.getPath()); + else + jn = CacheUtil.getCacheFile(url, null); + + fr = new FileReader(jn); + jnlpReader = fr; + + // Initialize JNLPMatcher class + JNLPMatcher matcher; + + if (jeName.equals(APPLICATION)) { // If signed application was found + if (JNLPRuntime.isDebug()) + System.err.println("APPLICATION.JNLP has been located within signed JAR. Starting verfication..."); + + matcher = new JNLPMatcher(inputReader, jnlpReader, false); + } else { // Otherwise template was found + if (JNLPRuntime.isDebug()) + System.err.println("APPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); + + matcher = new JNLPMatcher(inputReader, jnlpReader, + true); + } + + // If signed JNLP file does not matches launching JNLP file, throw JNLPMatcherException + if (!matcher.isMatch()) + throw new JNLPMatcherException("Signed Application did not match launching JNLP File"); + + this.isSignedJNLP = true; + if (JNLPRuntime.isDebug()) + System.err.println("Signed Application Verification Successful"); + + break; + } + } + } + } catch (JNLPMatcherException e) { + + /* + * Throws LaunchException if signed JNLP file fails to be verified + * or fails to match the launching JNLP file + */ + + throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), + R("LSignedJNLPFileDidNotMatch"), R(e.getMessage())); + + /* + * Throwing this exception will fail to initialize the application + * resulting in the termination of the application + */ + + } catch (Exception e) { + + if (JNLPRuntime.isDebug()) + e.printStackTrace(System.err); + + /* + * After this exception is caught, it is escaped. If an exception is + * thrown while handling the jar file, (mainly for + * JarSigner.verifyJars) it assumes the jar file is unsigned and + * skip the check for a signed JNLP file + */ + + } finally { + + //Close all streams + closeStream(inStream); + closeStream(inputReader); + closeStream(fr); + closeStream(jnlpReader); + } + + if (JNLPRuntime.isDebug()) + System.err.println("Ending check for signed JNLP file..."); + } + + /*** + * Closes a stream + * + * @param stream the stream that will be closed + */ + private void closeStream (Closeable stream) { + if (stream != null) + try { + stream.close(); + } catch (Exception e) { + e.printStackTrace(System.err); + } + } + private void checkTrustWithUser(JarSigner js) throws LaunchException { if (!js.getRootInCacerts()) { //root cert is not in cacerts boolean b = SecurityDialogs.showCertWarningDialog( @@ -1154,7 +1386,20 @@ // add resources until found while (true) { - JNLPClassLoader addedTo = addNextResource(); + JNLPClassLoader addedTo = null; + + try { + addedTo = addNextResource(); + } catch (LaunchException e) { + + /* + * This method will never handle any search for the main class + * [It is handled in initializeResources()]. Therefore, this + * exception will never be thrown here and is escaped + */ + + throw new IllegalStateException(e); + } if (addedTo == null) throw new ClassNotFoundException(name); @@ -1245,8 +1490,9 @@ * no more resources to add, the method returns immediately. * * @return the classloader that resources were added to, or null + * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match */ - protected JNLPClassLoader addNextResource() { + protected JNLPClassLoader addNextResource() throws LaunchException { if (available.size() == 0) { for (int i = 1; i < loaders.length; i++) { JNLPClassLoader result = loaders[i].addNextResource(); From ahughes at redhat.com Mon Aug 22 12:46:01 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Mon, 22 Aug 2011 20:46:01 +0100 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <4E4DF46E.10609@redhat.com> References: <4E4D4A45.5000909@redhat.com> <4E4DF46E.10609@redhat.com> Message-ID: <20110822194600.GL9583@rivendell.middle-earth.co.uk> On 07:28 Fri 19 Aug , Jiri Vanek wrote: > Hi!! > Please don't top-post. > Just to keep in loop - This is related to https://bugzilla.redhat.com/show_bug.cgi?id=731358 and https://bugzilla.redhat.com/show_bug.cgi?id=731345 > > The patch itself looks ok. The only point I can see is that now there are three java paths set by configure - > --with-jdk-home can specify SYSTEM_JDK_DIR > --with-java can specify JAVA > and now --with-jre is added. > > Is there really any reason why to keep all thee variables? > Yes, a jdk directory is required for building and it still should be possible to allow an alternative binary to be set using --with-java. All three have sensible defaults, so in most cases, none will have to actually be specified and, when it is required, --with-jdk-home will work fine in most cases. The jre directory was being hardcoded before so allowing it to be set by --with-jre-home is sensible IMHO. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Mon Aug 22 13:20:52 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 22 Aug 2011 16:20:52 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <20110822194600.GL9583@rivendell.middle-earth.co.uk> References: <4E4D4A45.5000909@redhat.com> <4E4DF46E.10609@redhat.com> <20110822194600.GL9583@rivendell.middle-earth.co.uk> Message-ID: <20110822202052.GC3298@redhat.com> * Dr Andrew John Hughes [2011-08-22 15:54]: > On 07:28 Fri 19 Aug , Jiri Vanek wrote: > > Hi!! > > > > Please don't top-post. > > > Just to keep in loop - This is related to https://bugzilla.redhat.com/show_bug.cgi?id=731358 and https://bugzilla.redhat.com/show_bug.cgi?id=731345 > > > > The patch itself looks ok. The only point I can see is that now there are three java paths set by configure - > > --with-jdk-home can specify SYSTEM_JDK_DIR > > --with-java can specify JAVA > > and now --with-jre is added. > > > > Is there really any reason why to keep all thee variables? > > > > Yes, a jdk directory is required for building and it still should be possible to allow an alternative > binary to be set using --with-java. All three have sensible defaults, so in most cases, none will have Out of curiosity, why would one want to use a different binary via --with-java than the one in jdk-home? Just trying to understand what the use case there is.. Cheers, Deepak > to actually be specified and, when it is required, --with-jdk-home will work fine in most cases. > > The jre directory was being hardcoded before so allowing it to be set by --with-jre-home is sensible IMHO. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Mon Aug 22 13:23:30 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 22 Aug 2011 16:23:30 -0400 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work In-Reply-To: <20110809160839.GJ2420@redhat.com> References: <20110804205816.GE31824@redhat.com> <20110805020821.GD31431@rivendell.middle-earth.co.uk> <20110805162234.GH31824@redhat.com> <20110809160839.GJ2420@redhat.com> Message-ID: <20110822202330.GD3298@redhat.com> * Deepak Bhole [2011-08-09 12:09]: > * Deepak Bhole [2011-08-05 12:23]: > > * Dr Andrew John Hughes [2011-08-04 22:08]: > > > On 16:58 Thu 04 Aug , Deepak Bhole wrote: > > > > Hi, > > > > > > > > Attached path fixes rhbz 718693: > > > > https://bugzilla.redhat.com/show_bug.cgi?id=718693 > > > > > > > > The patch adds a class that certain apps may call because Netscape used > > > > to need it. IcedTea-Web does not need this, and therefore the methods > > > > are empty. > > > > > > > > Okay for HEAD and 1.1? > > > > > > > > ChangeLog: > > > > 2011-08-04 Deepak Bhole > > > > > > > > RH718693: MindTerm SSH Applet doesn't work > > > > * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. > > > > Stub class, not needed with IcedTea-Web. > > > > > > > > Cheers, > > > > Deepak > > > > > > Needs a license header. It would also probably benefit from some class-level > > > Javadoc saying what you said above. > > > > > > > Doh! Good catch re: license. New patch attached. > > > > Okay for commit to HEAD and 1.1? > > > > ping? > ping Deepak From dbhole at redhat.com Mon Aug 22 13:23:47 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 22 Aug 2011 16:23:47 -0400 Subject: [icedtea-web] RFC: PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 In-Reply-To: <20110809181620.GL2420@redhat.com> References: <20110803210718.GJ9903@redhat.com> <20110809181620.GL2420@redhat.com> Message-ID: <20110822202347.GE3298@redhat.com> * Deepak Bhole [2011-08-09 14:25]: > * Deepak Bhole [2011-08-03 17:08]: > > Hi, > > > > Attached fix is for PR769: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 > > > > The fix is not Java 7 specific ... Java 7 just exposed the bug. > > > > ping? > ping Deepak From omajid at redhat.com Mon Aug 22 13:26:40 2011 From: omajid at redhat.com (Omair Majid) Date: Mon, 22 Aug 2011 16:26:40 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <20110822202052.GC3298@redhat.com> References: <4E4D4A45.5000909@redhat.com> <4E4DF46E.10609@redhat.com> <20110822194600.GL9583@rivendell.middle-earth.co.uk> <20110822202052.GC3298@redhat.com> Message-ID: <4E52BB80.7020808@redhat.com> On 08/22/2011 04:20 PM, Deepak Bhole wrote: > * Dr Andrew John Hughes [2011-08-22 15:54]: >> Yes, a jdk directory is required for building and it still should be possible to allow an alternative >> binary to be set using --with-java. All three have sensible defaults, so in most cases, none will have > > Out of curiosity, why would one want to use a different binary via > --with-java than the one in jdk-home? Just trying to understand what the > use case there is.. > We have a 'javac' script in icedtea6 that (among other things) removes unrecognized arguments before invoking the real javac. This allows ecj to substitute for javac. I suppose a similar wrapper 'java' script might be desirable for some non-hotspot VM (like jamvm) that removes any unrecognized -XX hotspot options. Cheers, Omair From dbhole at redhat.com Mon Aug 22 13:28:33 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 22 Aug 2011 16:28:33 -0400 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <4E52BB80.7020808@redhat.com> References: <4E4D4A45.5000909@redhat.com> <4E4DF46E.10609@redhat.com> <20110822194600.GL9583@rivendell.middle-earth.co.uk> <20110822202052.GC3298@redhat.com> <4E52BB80.7020808@redhat.com> Message-ID: <20110822202833.GH3298@redhat.com> * Omair Majid [2011-08-22 16:26]: > On 08/22/2011 04:20 PM, Deepak Bhole wrote: > >* Dr Andrew John Hughes [2011-08-22 15:54]: > >>Yes, a jdk directory is required for building and it still should be possible to allow an alternative > >>binary to be set using --with-java. All three have sensible defaults, so in most cases, none will have > > > >Out of curiosity, why would one want to use a different binary via > >--with-java than the one in jdk-home? Just trying to understand what the > >use case there is.. > > > > We have a 'javac' script in icedtea6 that (among other things) > removes unrecognized arguments before invoking the real javac. This > allows ecj to substitute for javac. I suppose a similar wrapper > 'java' script might be desirable for some non-hotspot VM (like > jamvm) that removes any unrecognized -XX hotspot options. > Ah. Thanks for the clarification! Cheers, Deepak From dbhole at redhat.com Mon Aug 22 13:55:04 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 22 Aug 2011 16:55:04 -0400 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E5256BF.20000@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> Message-ID: <20110822205504.GI3298@redhat.com> * Jiri Vanek [2011-08-22 09:21]: > On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: > >On 12:08 Thu 21 Jul , Jiri Vanek wrote: > >> > >>Hi! > >> > >>This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. > >>During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) > >> > >>Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. > >> > > > >I suggest taking a look at the autoconf manual and function detection: > > > >http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions > > > >Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. > > > > 2011-08-22 Jiri Vanek > Added functionality to allow icedtea web to be buildable with > rhel5 libraries > * testGlibs.cc: testing file. If not compiled, then Rhel5Compatible > macro is defined for compiling IcedTeaNPPlugin.cc. > * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible > functions, added #define sections for use this function instead of glib ones > *Makefile.am: (stamps/patch-for-glib): new target, compiling testGlibs.cc > ($(PLUGIN_DIR)/%.o): now depends on stamps/patch-for-glib and define > Rhel5Compatible if testGlibs.cc was compiled successfully > ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ > (clean-IcedTeaPlugin): removes compiled testGlibs if exists > Is this RHEL 5 specific or glib version specific? It looks to be the latter. In which case no test program should be needed -- just a check for glib version and conditional compilation accordingly. Cheers, Deepak > > Regards J. > diff -r 68756a4f8cc0 Makefile.am > --- a/Makefile.am Thu Aug 11 14:11:41 2011 -0400 > +++ b/Makefile.am Mon Aug 22 14:57:32 2011 +0200 > @@ -76,6 +76,11 @@ > LIVECONNECT_DIR = netscape sun/applet > PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp > PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp > + > +TESTGLIBS_NAME=testGlibs > +TESTGLIBS_SRC=$(abs_top_srcdir)/$(TESTGLIBS_NAME).cc > +TESTGLIBS=$(abs_top_builddir)/$(TESTGLIBS_NAME) > + > LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java > ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp > PLUGIN_PKGS = sun.applet netscape.security netscape.javascript > @@ -199,6 +204,13 @@ > # is listed before -l options. See: > # http://developer.mozilla.org/en/docs/XPCOM_Glue > > + > +stamps/patch-for-glib: > + mkdir -p stamps > + -$(CXX) $(CXXFLAGS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ > + $(TESTGLIBS_SRC) -o $(TESTGLIBS) > + touch $@ > + > PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \ > IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \ > IcedTeaPluginUtils.cc > @@ -207,10 +219,17 @@ > IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \ > IcedTeaPluginUtils.o > > -$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc > +$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc stamps/patch-for-glib > + if [ ! -e $(TESTGLIBS) ] ; then \ > + RHEL5COMPATIBLE="-DRhel5Compatible" ;\ > + else \ > + RHEL5COMPATIBLE="" ;\ > + fi; \ > + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ > mkdir -p $(PLUGIN_DIR) && \ > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + $$RHEL5COMPATIBLE \ > -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ > -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ > -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ > @@ -223,9 +242,16 @@ > $(MOZILLA_CFLAGS) \ > -fPIC -o $@ -c $< > > -$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) > +$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) stamps/patch-for-glib > + if [ ! -e $(TESTGLIBS) ] ; then \ > + RHEL5COMPATIBLE="-DRhel5Compatible";\ > + else \ > + RHEL5COMPATIBLE=""; \ > + fi; \ > + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + $$RHEL5COMPATIBLE \ > $(PLUGIN_OBJECTS) \ > $(GLIB_LIBS) \ > $(GTK_LIBS) \ > @@ -233,6 +259,9 @@ > -shared -o $@ > > clean-IcedTeaPlugin: > + if [ -e $(TESTGLIBS) ] ; then \ > + rm $(TESTGLIBS) ; \ > + fi > rm -f $(PLUGIN_DIR)/*.o > rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so > if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ > @@ -241,9 +270,10 @@ > rmdir $(abs_top_builddir)/plugin ; \ > fi ; \ > fi > + rm -f stamps/patch-for-glib > endif > > -stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET) > +stamps/plugin.stamp: stamps/patch-for-glib $(ICEDTEAPLUGIN_TARGET) > mkdir -p stamps > touch stamps/plugin.stamp > > diff -r 68756a4f8cc0 plugin/icedteanp/IcedTeaNPPlugin.cc > --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Aug 11 14:11:41 2011 -0400 > +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 22 14:57:32 2011 +0200 > @@ -47,6 +47,10 @@ > #include > #include > > +#ifdef Rhel5Compatible > +#include > +#endif > + > // Liveconnect extension > #include "IcedTeaScriptablePluginObject.h" > #include "IcedTeaNPPlugin.h" > @@ -869,6 +873,16 @@ > PLUGIN_DEBUG ("ITNP_URLNotify return\n"); > } > > +#ifdef Rhel5Compatible > +// Returns key from first item stored in hashtable > +gboolean > +find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) > +{ > + user_data = key; > + return (gboolean)TRUE; > +} > +#endif > + > NPError > get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) > { > @@ -913,19 +927,33 @@ > // valid. So we just pick the first valid one and use it. Proxy/Cookie > // information is not instance specific anyway, it is URL specific. > > +#ifdef Rhel5Compatible > if (browser_functions.getvalueforurl) > { > - GHashTableIter iter; > gpointer id, instance; > > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table, &instance); > > return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); > } else > { > return NPERR_GENERIC_ERROR; > } > +#else > + if (browser_functions.getvalueforurl) > + { > + GHashTableIter iter; > + gpointer id, instance; > + > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + > + return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); > + } else > + { > + return NPERR_GENERIC_ERROR; > + } > +#endif > > #endif > > @@ -1363,21 +1391,38 @@ > > #else > > +#ifdef Rhel5Compatible > if (browser_functions.getvalueforurl) > { > > // As in get_cookie_info, we use the first active instance > - GHashTableIter iter; > gpointer id, instance; > > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table, &instance); > > browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); > } else > { > return NPERR_GENERIC_ERROR; > } > +#else > + if (browser_functions.getvalueforurl) > + { > + > + // As in get_cookie_info, we use the first active instance > + GHashTableIter iter; > + gpointer id, instance; > + > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + > + browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); > + } else > + { > + return NPERR_GENERIC_ERROR; > + } > +#endif > + > #endif > > return NPERR_NO_ERROR; > @@ -1403,6 +1448,17 @@ > return FALSE; > } > > +#ifdef Rhel5Compatible > +int > +strcmp0(char *str1, char *str2) > +{ > + if (str1 != NULL) > + return str2 != NULL ? strcmp(str1, str2) : 1; > + else // str1 == NULL > + return str2 != NULL ? 1 : 0; > +} > +#endif > + > // remove all components from LD_LIBRARY_PATH, which start with > // MOZILLA_FIVE_HOME; firefox has its own NSS based security provider, > // which conflicts with the one configured in nss.cfg. > @@ -1424,7 +1480,11 @@ > components = g_strsplit (path_old, ":", -1); > for (i1 = 0, i2 = 0; components[i1] != NULL; i1++) > { > +#ifdef Rhel5Compatible > + if (strcmp0 (components[i1], moz_home) == 0 > +#else > if (g_strcmp0 (components[i1], moz_home) == 0 > +#endif > || g_str_has_prefix (components[i1], moz_home)) > components[i2] = components[i1]; > else > diff -r 68756a4f8cc0 testGlibs.cc > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/testGlibs.cc Mon Aug 22 14:57:32 2011 +0200 > @@ -0,0 +1,23 @@ > +#include > +#include > + > + > +int testLibs() > +{ > + GHashTable* instance_to_id_map = g_hash_table_new(NULL, NULL); > + > + GHashTableIter iter; > + gpointer id, instance; > + > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + return g_strcmp0 ("hell", "hello"); > + > +} > + > +int main(void){ > +int a=testLibs(); > + std::cout << a;/* << "\n";*/ > +return a; > +} > + From xerxes at zafena.se Tue Aug 23 03:49:09 2011 From: xerxes at zafena.se (Xerxes =?ISO-8859-1?Q?R=E5nby?=) Date: Tue, 23 Aug 2011 12:49:09 +0200 Subject: RFC: icedtea6-1.10 backport Zero/Shark PR690 and PR696 fixes. Message-ID: <1314096549.3411.12.camel@xranby-ESPRIMO-P7935> Hi team. Icedtea6-1.10 exposes two HS20 Zero/Shark bugs when built using the --with-hotspot-build or --with-hotspot-build=hs20 configure options. The main reason why I put the two hs20 patches in the if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ block are because the PR696 fix for Zero do re-introduce a bug in the Zero+arm assembler port, this are OK since the arm assembler port are allready disabled for hs20 when WITH_ALT_HSBUILD are defined. Ok to commit to the icedtea6-1.10 release branch? Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6-1.10-pr690-pr696.patch Type: text/x-patch Size: 8621 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110823/b82f1ca8/icedtea6-1.10-pr690-pr696.patch From bugzilla-daemon at icedtea.classpath.org Tue Aug 23 03:52:00 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 23 Aug 2011 10:52:00 +0000 Subject: [Bug 690] Shark fails to JIT using hs20. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=690 --- Comment #4 from Xerxes R?nby 2011-08-23 10:51:59 --- (In reply to comment #3) > Are you planning to backport this to 1.10? > Yes. I have posted a backport for review of this fix and PR696 for 1.10 here: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-August/015517.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Tue Aug 23 04:33:27 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Aug 2011 13:33:27 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <20110822205504.GI3298@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> Message-ID: <4E539007.7040607@redhat.com> On 08/22/2011 10:55 PM, Deepak Bhole wrote: > * Jiri Vanek [2011-08-22 09:21]: >> On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: >>> On 12:08 Thu 21 Jul , Jiri Vanek wrote: >>>> >>>> Hi! >>>> >>>> This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. >>>> During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) >>>> >>>> Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. >>>> >>> >>> I suggest taking a look at the autoconf manual and function detection: >>> >>> http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions >>> >>> Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. >>> >> >> 2011-08-22 Jiri Vanek >> Added functionality to allow icedtea web to be buildable with >> rhel5 libraries >> * testGlibs.cc: testing file. If not compiled, then Rhel5Compatible >> macro is defined for compiling IcedTeaNPPlugin.cc. >> * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible >> functions, added #define sections for use this function instead of glib ones >> *Makefile.am: (stamps/patch-for-glib): new target, compiling testGlibs.cc >> ($(PLUGIN_DIR)/%.o): now depends on stamps/patch-for-glib and define >> Rhel5Compatible if testGlibs.cc was compiled successfully >> ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ >> (clean-IcedTeaPlugin): removes compiled testGlibs if exists >> > > Is this RHEL 5 specific or glib version specific? It looks to be the > latter. In which case no test program should be needed -- just a check > for glib version and conditional compilation accordingly. Very well then :) I will add this to acinclude.m4 AC_DEFUN_ONCE([IT_GET_GLIBCVERSION], [ AC_MSG_CHECKING([for glibc version >= 2.12]) basicVersion=`ldd --version | grep "@<:@0123456789@:>@\.@<:@0123456789@:>@" | sed "s/ldd (GNU libc) //"`; echo "- $basicVersion -" versions=(`echo $basicVersion | sed "s/\./ /g"`); if test ${versions@<:@0@:>@} -lt 2 ; then GLIBCVERSION="no" else if test ${versions@<:@0@:>@} -gt 2 ; then GLIBCVERSION="yes" else #maybe if test ${versions@<:@1@:>@} -ge 12 ; then GLIBCVERSION="yes" else GLIBCVERSION="no" fi; fi; fi; AC_MSG_RESULT([${GLIBCVERSION}]) AC_SUBST(GLIBCVERSION) ]) this will add make variable GLIBCVERSION for conditional compilation in makefile. The docmentation says "since 2.16" but it can not be true, as rhel5 have 2.5 and have missing those functions, and rhel 6 have 2.12.5 and my F13 have 2.12 and both HAVE those functions .... :-/ But it is not firs time glibc documentation was wrong. I still think compilation is much more bulet-proof, but if you are ok with this then I will post updated patch. Regards J. (maybe useless) ps: @<:@ is replaced by [ and @:>@ by ] during configure generation... no other way here...long live the Autotools :( pps: I'm happy autotools-lame, please feel free to correct me in above script as much as possible. > > Cheers, > Deepak > >> >> Regards J. > >> diff -r 68756a4f8cc0 Makefile.am >> --- a/Makefile.am Thu Aug 11 14:11:41 2011 -0400 >> +++ b/Makefile.am Mon Aug 22 14:57:32 2011 +0200 >> @@ -76,6 +76,11 @@ >> LIVECONNECT_DIR = netscape sun/applet >> PLUGIN_DIR=$(abs_top_builddir)/plugin/icedteanp >> PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp >> + >> +TESTGLIBS_NAME=testGlibs >> +TESTGLIBS_SRC=$(abs_top_srcdir)/$(TESTGLIBS_NAME).cc >> +TESTGLIBS=$(abs_top_builddir)/$(TESTGLIBS_NAME) >> + >> LIVECONNECT_SRCS = $(PLUGIN_SRCDIR)/java >> ICEDTEAPLUGIN_TARGET = $(PLUGIN_DIR)/IcedTeaPlugin.so stamps/liveconnect-dist.stamp >> PLUGIN_PKGS = sun.applet netscape.security netscape.javascript >> @@ -199,6 +204,13 @@ >> # is listed before -l options. See: >> # http://developer.mozilla.org/en/docs/XPCOM_Glue >> >> + >> +stamps/patch-for-glib: >> + mkdir -p stamps >> + -$(CXX) $(CXXFLAGS) $(GLIB_CFLAGS) $(GLIB_LIBS) \ >> + $(TESTGLIBS_SRC) -o $(TESTGLIBS) >> + touch $@ >> + >> PLUGIN_SRC=IcedTeaNPPlugin.cc IcedTeaScriptablePluginObject.cc \ >> IcedTeaJavaRequestProcessor.cc IcedTeaPluginRequestProcessor.cc \ >> IcedTeaPluginUtils.cc >> @@ -207,10 +219,17 @@ >> IcedTeaJavaRequestProcessor.o IcedTeaPluginRequestProcessor.o \ >> IcedTeaPluginUtils.o >> >> -$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc >> +$(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc stamps/patch-for-glib >> + if [ ! -e $(TESTGLIBS) ] ; then \ >> + RHEL5COMPATIBLE="-DRhel5Compatible" ;\ >> + else \ >> + RHEL5COMPATIBLE="" ;\ >> + fi; \ >> + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ >> mkdir -p $(PLUGIN_DIR)&& \ >> cd $(PLUGIN_DIR)&& \ >> $(CXX) $(CXXFLAGS) \ >> + $$RHEL5COMPATIBLE \ >> -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ >> -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ >> -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ >> @@ -223,9 +242,16 @@ >> $(MOZILLA_CFLAGS) \ >> -fPIC -o $@ -c $< >> >> -$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) >> +$(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) stamps/patch-for-glib >> + if [ ! -e $(TESTGLIBS) ] ; then \ >> + RHEL5COMPATIBLE="-DRhel5Compatible";\ >> + else \ >> + RHEL5COMPATIBLE=""; \ >> + fi; \ >> + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ >> cd $(PLUGIN_DIR)&& \ >> $(CXX) $(CXXFLAGS) \ >> + $$RHEL5COMPATIBLE \ >> $(PLUGIN_OBJECTS) \ >> $(GLIB_LIBS) \ >> $(GTK_LIBS) \ >> @@ -233,6 +259,9 @@ >> -shared -o $@ >> >> clean-IcedTeaPlugin: >> + if [ -e $(TESTGLIBS) ] ; then \ >> + rm $(TESTGLIBS) ; \ >> + fi >> rm -f $(PLUGIN_DIR)/*.o >> rm -f $(PLUGIN_DIR)/IcedTeaPlugin.so >> if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ >> @@ -241,9 +270,10 @@ >> rmdir $(abs_top_builddir)/plugin ; \ >> fi ; \ >> fi >> + rm -f stamps/patch-for-glib >> endif >> >> -stamps/plugin.stamp: $(ICEDTEAPLUGIN_TARGET) >> +stamps/plugin.stamp: stamps/patch-for-glib $(ICEDTEAPLUGIN_TARGET) >> mkdir -p stamps >> touch stamps/plugin.stamp >> >> diff -r 68756a4f8cc0 plugin/icedteanp/IcedTeaNPPlugin.cc >> --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Aug 11 14:11:41 2011 -0400 >> +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 22 14:57:32 2011 +0200 >> @@ -47,6 +47,10 @@ >> #include >> #include >> >> +#ifdef Rhel5Compatible >> +#include >> +#endif >> + >> // Liveconnect extension >> #include "IcedTeaScriptablePluginObject.h" >> #include "IcedTeaNPPlugin.h" >> @@ -869,6 +873,16 @@ >> PLUGIN_DEBUG ("ITNP_URLNotify return\n"); >> } >> >> +#ifdef Rhel5Compatible >> +// Returns key from first item stored in hashtable >> +gboolean >> +find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) >> +{ >> + user_data = key; >> + return (gboolean)TRUE; >> +} >> +#endif >> + >> NPError >> get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) >> { >> @@ -913,19 +927,33 @@ >> // valid. So we just pick the first valid one and use it. Proxy/Cookie >> // information is not instance specific anyway, it is URL specific. >> >> +#ifdef Rhel5Compatible >> if (browser_functions.getvalueforurl) >> { >> - GHashTableIter iter; >> gpointer id, instance; >> >> - g_hash_table_iter_init (&iter, instance_to_id_map); >> - g_hash_table_iter_next (&iter,&instance,&id); >> + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table,&instance); >> >> return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); >> } else >> { >> return NPERR_GENERIC_ERROR; >> } >> +#else >> + if (browser_functions.getvalueforurl) >> + { >> + GHashTableIter iter; >> + gpointer id, instance; >> + >> + g_hash_table_iter_init (&iter, instance_to_id_map); >> + g_hash_table_iter_next (&iter,&instance,&id); >> + >> + return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); >> + } else >> + { >> + return NPERR_GENERIC_ERROR; >> + } >> +#endif >> >> #endif >> >> @@ -1363,21 +1391,38 @@ >> >> #else >> >> +#ifdef Rhel5Compatible >> if (browser_functions.getvalueforurl) >> { >> >> // As in get_cookie_info, we use the first active instance >> - GHashTableIter iter; >> gpointer id, instance; >> >> - g_hash_table_iter_init (&iter, instance_to_id_map); >> - g_hash_table_iter_next (&iter,&instance,&id); >> + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table,&instance); >> >> browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); >> } else >> { >> return NPERR_GENERIC_ERROR; >> } >> +#else >> + if (browser_functions.getvalueforurl) >> + { >> + >> + // As in get_cookie_info, we use the first active instance >> + GHashTableIter iter; >> + gpointer id, instance; >> + >> + g_hash_table_iter_init (&iter, instance_to_id_map); >> + g_hash_table_iter_next (&iter,&instance,&id); >> + >> + browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); >> + } else >> + { >> + return NPERR_GENERIC_ERROR; >> + } >> +#endif >> + >> #endif >> >> return NPERR_NO_ERROR; >> @@ -1403,6 +1448,17 @@ >> return FALSE; >> } >> >> +#ifdef Rhel5Compatible >> +int >> +strcmp0(char *str1, char *str2) >> +{ >> + if (str1 != NULL) >> + return str2 != NULL ? strcmp(str1, str2) : 1; >> + else // str1 == NULL >> + return str2 != NULL ? 1 : 0; >> +} >> +#endif >> + >> // remove all components from LD_LIBRARY_PATH, which start with >> // MOZILLA_FIVE_HOME; firefox has its own NSS based security provider, >> // which conflicts with the one configured in nss.cfg. >> @@ -1424,7 +1480,11 @@ >> components = g_strsplit (path_old, ":", -1); >> for (i1 = 0, i2 = 0; components[i1] != NULL; i1++) >> { >> +#ifdef Rhel5Compatible >> + if (strcmp0 (components[i1], moz_home) == 0 >> +#else >> if (g_strcmp0 (components[i1], moz_home) == 0 >> +#endif >> || g_str_has_prefix (components[i1], moz_home)) >> components[i2] = components[i1]; >> else >> diff -r 68756a4f8cc0 testGlibs.cc >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/testGlibs.cc Mon Aug 22 14:57:32 2011 +0200 >> @@ -0,0 +1,23 @@ >> +#include >> +#include >> + >> + >> +int testLibs() >> +{ >> + GHashTable* instance_to_id_map = g_hash_table_new(NULL, NULL); >> + >> + GHashTableIter iter; >> + gpointer id, instance; >> + >> + g_hash_table_iter_init (&iter, instance_to_id_map); >> + g_hash_table_iter_next (&iter,&instance,&id); >> + return g_strcmp0 ("hell", "hello"); >> + >> +} >> + >> +int main(void){ >> +int a=testLibs(); >> + std::cout<< a;/*<< "\n";*/ >> +return a; >> +} >> + > From jvanek at redhat.com Tue Aug 23 04:36:17 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Aug 2011 13:36:17 +0200 Subject: /hg/icedtea-web: Checks and verifies a signed JNLP file at the l... In-Reply-To: References: Message-ID: <4E5390B1.4070705@redhat.com> On 08/22/2011 09:09 PM, smohammad at icedtea.classpath.org wrote: > changeset bd59947fa857 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bd59947fa857 > author: Saad Mohammad > date: Mon Aug 22 15:09:47 2011 -0400 > > Checks and verifies a signed JNLP file at the launch of the > application. A signed JNLP warning is displayed if appropriate. > > Please do not forget to add reproducers for all this work. Tyvm! J. > diffstat: > > ChangeLog | 43 ++ > netx/net/sourceforge/jnlp/JNLPFile.java | 55 +++ > netx/net/sourceforge/jnlp/SecurityDesc.java | 12 + > netx/net/sourceforge/jnlp/resources/Messages.properties | 2 + > netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 255 +++++++++++++++- > netx/net/sourceforge/jnlp/security/MoreInfoPane.java | 13 + > netx/net/sourceforge/jnlp/security/SecurityDialog.java | 14 +- > 7 files changed, 389 insertions(+), 5 deletions(-) > > diffs (truncated from 592 to 500 lines): > > diff -r 61e08e67b176 -r bd59947fa857 ChangeLog > --- a/ChangeLog Wed Aug 17 12:01:19 2011 -0400 > +++ b/ChangeLog Mon Aug 22 15:09:47 2011 -0400 > @@ -1,3 +1,46 @@ > +2011-08-22 Saad Mohammad > + * netx/net/sourceforge/jnlp/JNLPFile.java: > + (parse): After the file has been parsed, it calls > + checkForSpecialProperties() to check if the resources contain any special > + properties. > + (checkForSpecialProperties): Scans through resources and checks if it > + contains any special properties. > + (requiresSignedJNLPWarning): Returns a boolean after determining if a signed > + JNLP warning should be displayed. > + (setSignedJNLPAsMissing): Informs JNLPFile that a signed JNLP file is > + missing in the main jar. > + * netx/net/sourceforge/jnlp/SecurityDesc.java: > + (getJnlpRIAPermissions): Returns all the names of the basic JNLP system > + properties accessible by RIAs. > + * netx/net/sourceforge/jnlp/resources/Messages.properties: > + Added LSignedJNLPFileDidNotMatch and SJNLPFileIsNotSigned. > + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > + (initializeResources): Locates the jar file that contains the main class > + and verifies if a signed JNLP file is also located in that jar. This also > + checks 'lazy' jars if the the main class was not found in 'eager' jars. > + If the main jar was not found, a LaunchException is thrown which terminates > + the launch of the application. > + (checkForMain): A method that goes through each jar and checks to see > + if it has the main class. If the main class is found, it calls > + verifySignedJNLP() to verify if a valid signed JNLP file is also found in > + the jar. > + (verifySignedJNLP): A method that checks if the jar file contains a valid > + signed JNLP file. > + (closeStream): Closes a stream. > + (loadClassExt): Added a try/catch block when addNextResource() is called. > + (addNextResource): If the main jar has not been found, checkForMain() is > + called to check if the jar contains the main class, and verifies if a signed > + JNLP file is also located. > + * netx/net/sourceforge/jnlp/security/MoreInfoPane.java: > + (addComponents): Displays the signed JNLP warning message if necessary. > + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: > + (SecurityDialog): Stores the value of whether a signed JNLP warning should > + be displayed. > + (showMoreInfoDialog): Passes in the associated JNLP file when creating a > + SecurityDialog object. > + (requiresSignedJNLPWarning): Returns a boolean after determining if a signed > + JNLP warning should be displayed. > + > 2011-08-17 Danesh Dadachanji > > Update UI for SecurityDialog > diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/JNLPFile.java > --- a/netx/net/sourceforge/jnlp/JNLPFile.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Mon Aug 22 15:09:47 2011 -0400 > @@ -107,7 +107,18 @@ > > /** the default jvm */ > protected String defaultArch = null; > + > + /** A signed JNLP file is missing from the main jar */ > + private boolean missingSignedJNLP = false; > + > + /** JNLP file contains special properties */ > + private boolean containsSpecialProperties = false; > > + /** > + * List of acceptable properties (not-special) > + */ > + private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); > + > { // initialize defaults if security allows > try { > defaultLocale = Locale.getDefault(); > @@ -608,6 +619,9 @@ > launchType = parser.getLauncher(root); > component = parser.getComponent(root); > security = parser.getSecurity(root); > + > + checkForSpecialProperties(); > + > } catch (ParseException ex) { > throw ex; > } catch (Exception ex) { > @@ -619,6 +633,30 @@ > } > > /** > + * Inspects the JNLP file to check if it contains any special properties > + */ > + private void checkForSpecialProperties() { > + > + for (ResourcesDesc res : resources) { > + for (PropertyDesc propertyDesc : res.getProperties()) { > + > + for (int i = 0; i< generalProperties.length; i++) { > + String property = propertyDesc.getKey(); > + > + if (property.equals(generalProperties[i])) { > + break; > + } else if (!property.equals(generalProperties[i]) > +&& i == generalProperties.length - 1) { > + containsSpecialProperties = true; > + return; > + } > + } > + > + } > + } > + } > + > + /** > * > * @return true if the JNLP file specifies things that can only be > * applied on a new vm (eg: different max heap memory) > @@ -690,4 +728,21 @@ > return new DownloadOptions(usePack, useVersion); > } > > + /** > + * Returns a boolean after determining if a signed JNLP warning should be > + * displayed in the 'More Information' panel. > + * > + * @return true if a warning should be displayed; otherwise false > + */ > + public boolean requiresSignedJNLPWarning() { > + return (missingSignedJNLP&& containsSpecialProperties); > + } > + > + /** > + * Informs that a signed JNLP file is missing in the main jar > + */ > + public void setSignedJNLPAsMissing() { > + missingSignedJNLP = true; > + } > + > } > diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/SecurityDesc.java > --- a/netx/net/sourceforge/jnlp/SecurityDesc.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/SecurityDesc.java Mon Aug 22 15:09:47 2011 -0400 > @@ -244,5 +244,17 @@ > > return permissions; > } > + > + /** > + * Returns all the names of the basic JNLP system properties accessible by RIAs > + */ > + public static String[] getJnlpRIAPermissions() { > + String[] jnlpPermissions = new String[jnlpRIAPermissions.length]; > + > + for (int i = 0; i< jnlpRIAPermissions.length; i++) > + jnlpPermissions[i] = jnlpRIAPermissions[i].getName(); > + > + return jnlpPermissions; > + } > > } > diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Aug 22 15:09:47 2011 -0400 > @@ -80,6 +80,7 @@ > LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. > LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. > LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. > +LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. > > JNotApplet=File is not an applet. > JNotApplication=File is not an application. > @@ -210,6 +211,7 @@ > SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. > SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? > SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" > +SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. > > # Security - used for the More Information dialog > SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. > diff -r 61e08e67b176 -r bd59947fa857 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Aug 17 12:01:19 2011 -0400 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Aug 22 15:09:47 2011 -0400 > @@ -17,10 +17,13 @@ > > import static net.sourceforge.jnlp.runtime.Translator.R; > > +import java.io.Closeable; > import java.io.File; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.InputStream; > +import java.io.InputStreamReader; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > @@ -46,11 +49,14 @@ > import java.util.jar.JarEntry; > import java.util.jar.JarFile; > import java.util.jar.Manifest; > - > +import net.sourceforge.jnlp.AppletDesc; > +import net.sourceforge.jnlp.ApplicationDesc; > import net.sourceforge.jnlp.DownloadOptions; > import net.sourceforge.jnlp.ExtensionDesc; > import net.sourceforge.jnlp.JARDesc; > import net.sourceforge.jnlp.JNLPFile; > +import net.sourceforge.jnlp.JNLPMatcher; > +import net.sourceforge.jnlp.JNLPMatcherException; > import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.ParseException; > import net.sourceforge.jnlp.PluginBridge; > @@ -81,6 +87,13 @@ > // extension classes too so that main file classes can load > // resources in an extension. > > + /** Signed JNLP File and Template */ > + final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; > + final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; > + > + /** 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! > @@ -153,6 +166,10 @@ > > /** Loader for codebase (which is a path, rather than a file) */ > private CodeBaseClassLoader codeBaseLoader; > + > + /** True if the jar with the main class has been found > + * */ > + private boolean foundMainJar= false; > > /** > * Create a new JNLPClassLoader from the specified file. > @@ -460,6 +477,26 @@ > !SecurityDialogs.showNotAllSignedWarningDialog(file)) > throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), R("LSignedAppJarUsingUnsignedJar"), R("LSignedAppJarUsingUnsignedJarInfo")); > > + > + // Check for main class in the downloaded jars, and check/verify signed JNLP fill > + checkForMain(initialJars); > + > + // If jar with main class was not found, check available resources > + while (!foundMainJar&& available != null&& available.size() != 0) > + addNextResource(); > + > + // If jar with main class was not found and there are no more > + // available jars, throw a LaunchException > + if (!foundMainJar > +&& (available == null || available.size() == 0)) > + throw new LaunchException(file, null, R("LSFatal"), > + R("LCClient"), R("LCantDetermineMainClass"), > + R("LCantDetermineMainClassInfo")); > + > + // If main jar was found, but a signed JNLP file was not located > + if (!isSignedJNLP&& foundMainJar) > + file.setSignedJNLPAsMissing(); > + > //user does not trust this publisher > if (!js.getAlreadyTrustPublisher()) { > checkTrustWithUser(js); > @@ -518,10 +555,205 @@ > System.err.println(mfe.getMessage()); > } > } > - > activateJars(initialJars); > } > + > + /*** > + * Checks for the jar that contains the main class. If the main class was > + * found, it checks to see if the jar is signed and whether it contains a > + * signed JNLP file > + * > + * @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 { > > + Object obj = file.getLaunchInfo(); > + String mainClass; > + > + if (obj instanceof ApplicationDesc) { > + ApplicationDesc ad = (ApplicationDesc) file.getLaunchInfo(); > + mainClass = ad.getMainClass(); > + } else if (obj instanceof AppletDesc) { > + AppletDesc ad = (AppletDesc) file.getLaunchInfo(); > + mainClass = ad.getMainClass(); > + } else > + return; > + > + for (int i = 0; i< jars.size(); i++) { > + > + try { > + File localFile = tracker > + .getCacheFile(jars.get(i).getLocation()); > + > + if (localFile == null) > + throw new NullPointerException( > + "Could not locate jar file, returned null"); > + > + JarFile jarFile = new JarFile(localFile); > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().replaceAll("/", "."); > + > + if (!jeName.startsWith(mainClass + "$Inner") > +&& (jeName.startsWith(mainClass)&& jeName.endsWith(".class"))) { > + foundMainJar = true; > + verifySignedJNLP(jars.get(i), jarFile); > + break; > + } > + } > + } catch (IOException e) { > + /* > + * After this exception is caught, it is escaped. This will skip > + * the jarFile that may have thrown this exception and move on > + * to the next jarFile (if there are any) > + */ > + } > + } > + } > + > + /** > + * Is called by checkForMain() to check if the jar file is signed and if it > + * contains a signed JNLP file. > + * > + * @param jarDesc JARDesc of jar > + * @param jarFile the jar file > + * @throws LaunchException thrown if the signed JNLP file, within the main jar, fails to be verified or does not match > + */ > + private void verifySignedJNLP(JARDesc jarDesc, JarFile jarFile) > + throws LaunchException { > + > + JarSigner signer = new JarSigner(); > + List desc = new ArrayList(); > + desc.add(jarDesc); > + > + // Initialize streams > + InputStream inStream = null; > + InputStreamReader inputReader = null; > + FileReader fr = null; > + InputStreamReader jnlpReader = null; > + > + try { > + signer.verifyJars(desc, tracker); > + > + if (signer.allJarsSigned()) { // If the jar is signed > + > + Enumeration entries = jarFile.entries(); > + JarEntry je; > + > + while (entries.hasMoreElements()) { > + je = entries.nextElement(); > + String jeName = je.getName().toUpperCase(); > + > + if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { > + > + if (JNLPRuntime.isDebug()) > + System.err.println("Creating Jar InputStream from JarEntry"); > + > + inStream = jarFile.getInputStream(je); > + inputReader = new InputStreamReader(inStream); > + > + if (JNLPRuntime.isDebug()) > + System.err.println("Creating File InputStream from lauching JNLP file"); > + > + JNLPFile jnlp = this.getJNLPFile(); > + URL url = jnlp.getFileLocation(); > + File jn = null; > + > + // If the file is on the local file system, use original path, otherwise find cached file > + if (url.getProtocol().toLowerCase().equals("file")) > + jn = new File(url.getPath()); > + else > + jn = CacheUtil.getCacheFile(url, null); > + > + fr = new FileReader(jn); > + jnlpReader = fr; > + > + // Initialize JNLPMatcher class > + JNLPMatcher matcher; > + > + if (jeName.equals(APPLICATION)) { // If signed application was found > + if (JNLPRuntime.isDebug()) > + System.err.println("APPLICATION.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, false); > + } else { // Otherwise template was found > + if (JNLPRuntime.isDebug()) > + System.err.println("APPLICATION_TEMPLATE.JNLP has been located within signed JAR. Starting verfication..."); > + > + matcher = new JNLPMatcher(inputReader, jnlpReader, > + true); > + } > + > + // If signed JNLP file does not matches launching JNLP file, throw JNLPMatcherException > + if (!matcher.isMatch()) > + throw new JNLPMatcherException("Signed Application did not match launching JNLP File"); > + > + this.isSignedJNLP = true; > + if (JNLPRuntime.isDebug()) > + System.err.println("Signed Application Verification Successful"); > + > + break; > + } > + } > + } > + } catch (JNLPMatcherException e) { > + > + /* > + * Throws LaunchException if signed JNLP file fails to be verified > + * or fails to match the launching JNLP file > + */ > + > + throw new LaunchException(file, null, R("LSFatal"), R("LCClient"), > + R("LSignedJNLPFileDidNotMatch"), R(e.getMessage())); > + > + /* > + * Throwing this exception will fail to initialize the application > + * resulting in the termination of the application > + */ > + > + } catch (Exception e) { > + > + if (JNLPRuntime.isDebug()) > + e.printStackTrace(System.err); > + > + /* > + * After this exception is caught, it is escaped. If an exception is > + * thrown while handling the jar file, (mainly for > + * JarSigner.verifyJars) it assumes the jar file is unsigned and > + * skip the check for a signed JNLP file > + */ > + > + } finally { > + > + //Close all streams > + closeStream(inStream); > + closeStream(inputReader); > + closeStream(fr); > + closeStream(jnlpReader); > + } > + > + if (JNLPRuntime.isDebug()) > + System.err.println("Ending check for signed JNLP file..."); > + } > + > + /*** > + * Closes a stream > + * > + * @param stream the stream that will be closed > + */ > + private void closeStream (Closeable stream) { > + if (stream != null) > + try { > + stream.close(); > + } catch (Exception e) { > + e.printStackTrace(System.err); > + } > + } > + > private void checkTrustWithUser(JarSigner js) throws LaunchException { > if (!js.getRootInCacerts()) { //root cert is not in cacerts > boolean b = SecurityDialogs.showCertWarningDialog( > @@ -1154,7 +1386,20 @@ > > // add resources until found > while (true) { > - JNLPClassLoader addedTo = addNextResource(); > + JNLPClassLoader addedTo = null; > + > + try { > + addedTo = addNextResource(); > + } catch (LaunchException e) { > + > + /* > + * This method will never handle any search for the main class > + * [It is handled in initializeResources()]. Therefore, this > + * exception will never be thrown here and is escaped > + */ > + > + throw new IllegalStateException(e); > + } > > if (addedTo == null) > throw new ClassNotFoundException(name); > @@ -1245,8 +1490,9 @@ > * no more resources to add, the method returns immediately. > * > * @return the classloader that resources were added to, or null > + * @throws LaunchException Thrown if the signed JNLP file, within the main jar, fails to be verified or does not match > */ > - protected JNLPClassLoader addNextResource() { > + protected JNLPClassLoader addNextResource() throws LaunchException { > if (available.size() == 0) { > for (int i = 1; i< loaders.length; i++) { > JNLPClassLoader result = loaders[i].addNextResource(); From jvanek at redhat.com Tue Aug 23 04:50:53 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 23 Aug 2011 13:50:53 +0200 Subject: [icedtea-web] RFC: allow icedtea-web to run with just a jre In-Reply-To: <20110822202052.GC3298@redhat.com> References: <4E4D4A45.5000909@redhat.com> <4E4DF46E.10609@redhat.com> <20110822194600.GL9583@rivendell.middle-earth.co.uk> <20110822202052.GC3298@redhat.com> Message-ID: <4E53941D.1050801@redhat.com> On 08/22/2011 10:20 PM, Deepak Bhole wrote: > * Dr Andrew John Hughes [2011-08-22 15:54]: >> On 07:28 Fri 19 Aug , Jiri Vanek wrote: >>> Hi!! >>> >> >> Please don't top-post. >> >>> Just to keep in loop - This is related to https://bugzilla.redhat.com/show_bug.cgi?id=731358 and https://bugzilla.redhat.com/show_bug.cgi?id=731345 >>> >>> The patch itself looks ok. The only point I can see is that now there are three java paths set by configure - >>> --with-jdk-home can specify SYSTEM_JDK_DIR >>> --with-java can specify JAVA >>> and now --with-jre is added. >>> >>> Is there really any reason why to keep all thee variables? >>> >> >> Yes, a jdk directory is required for building and it still should be possible to allow an alternative >> binary to be set using --with-java. All three have sensible defaults, so in most cases, none will have > > Out of curiosity, why would one want to use a different binary via > --with-java than the one in jdk-home? Just trying to understand what the > use case there is.. I'm more wondering why to use different java then the one in jre home... But as Omair mentioned - gcj is root of all evil :) and unknown parameters can cause harm. As dr Andrew told - all variables have sensible defaults. But I still think that there should be only two of them jdk-home and jre-home. (with coresponding java comand and javac command) I'm not sure whether using "java stub" isn't to much complex for this... Regards J. > > Cheers, > Deepak > >> to actually be specified and, when it is required, --with-jdk-home will work fine in most cases. >> >> The jre directory was being hardcoded before so allowing it to be set by --with-jre-home is sensible IMHO. >> -- >> Andrew :) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> Support Free Java! >> Contribute to GNU Classpath and IcedTea >> http://www.gnu.org/software/classpath >> http://icedtea.classpath.org >> PGP Key: F5862A37 (https://keys.indymedia.org/) >> Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at redhat.com Tue Aug 23 06:12:47 2011 From: omajid at redhat.com (Omair Majid) Date: Tue, 23 Aug 2011 09:12:47 -0400 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E539007.7040607@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> Message-ID: <4E53A74F.3000200@redhat.com> On 08/23/2011 07:33 AM, Jiri Vanek wrote: > The docmentation says "since 2.16" but it can not be true, as rhel5 have > 2.5 and have missing those functions, and rhel 6 have 2.12.5 and my F13 > have 2.12 and both HAVE those functions .... :-/ But it is not firs time > glibc documentation was wrong. > > I still think compilation is much more bulet-proof, but if you are ok > with this then I will post updated patch. > If version-detection is not reliable, and compilation is more bullet-proof, then why not make use of AC_TRY_LINK/AC_TRY_LINK_FUNC [1]? It checks for functions (rather than versions) explicitly, uses compilation and is portable. Cheers, Omair [1] http://www.linuxselfhelp.com/gnu/autoconf/html_chapter/autoconf_6.html#SEC69 From omajid at icedtea.classpath.org Tue Aug 23 07:57:57 2011 From: omajid at icedtea.classpath.org (omajid at icedtea.classpath.org) Date: Tue, 23 Aug 2011 14:57:57 +0000 Subject: /hg/icedtea-web: Allow icedtea-web to run with just a JRE Message-ID: changeset 334a44162495 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=334a44162495 author: Omair Majid date: Tue Aug 23 10:57:14 2011 -0400 Allow icedtea-web to run with just a JRE 2011-08-23 Omair Majid * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also replace uses of SYSTEM_JDK_DIR/jre with SYSTEM_JRE_DIR. * acinclude.m4 (IT_CHECK_FOR_JRE): New macro. (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from within the JRE. diffstat: ChangeLog | 9 +++++++++ Makefile.am | 13 ++++++------- acinclude.m4 | 29 ++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 8 deletions(-) diffs (116 lines): diff -r bd59947fa857 -r 334a44162495 ChangeLog --- a/ChangeLog Mon Aug 22 15:09:47 2011 -0400 +++ b/ChangeLog Tue Aug 23 10:57:14 2011 -0400 @@ -1,3 +1,12 @@ +2011-08-23 Omair Majid + + * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also + replace uses of SYSTEM_JDK_DIR/jre with SYSTEM_JRE_DIR. + * acinclude.m4 + (IT_CHECK_FOR_JRE): New macro. + (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from within the + JRE. + 2011-08-22 Saad Mohammad * netx/net/sourceforge/jnlp/JNLPFile.java: (parse): After the file has been parsed, it calls diff -r bd59947fa857 -r 334a44162495 Makefile.am --- a/Makefile.am Mon Aug 22 15:09:47 2011 -0400 +++ b/Makefile.am Tue Aug 23 10:57:14 2011 -0400 @@ -51,7 +51,6 @@ # IllegalAccessException # - we want full privileges # -JRE='"$(SYSTEM_JDK_DIR)/jre"' LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' @@ -128,7 +127,7 @@ -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \ -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \ -e 's|[@]JAVA[@]|$(JAVA)|g' \ - -e 's|[@]JRE[@]|$(JRE)|g' + -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g' # Top-Level Targets # ================= @@ -216,7 +215,7 @@ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ - -DICEDTEA_WEB_JRE=$(JRE) \ + -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ $(GTK_CFLAGS) \ @@ -636,13 +635,13 @@ ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc mkdir -p $(BOOT_DIR)/jre/lib && \ - ln -s $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(BOOT_DIR)/jre/lib && \ - if [ -e $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar ] ; then \ - ln -s $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ + ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ + if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \ + ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ else \ ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ fi - ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ + ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ $(BOOT_DIR)/jre/lib/ && \ if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \ then \ diff -r bd59947fa857 -r 334a44162495 acinclude.m4 --- a/acinclude.m4 Mon Aug 22 15:09:47 2011 -0400 +++ b/acinclude.m4 Tue Aug 23 10:57:14 2011 -0400 @@ -64,6 +64,32 @@ AC_SUBST(SYSTEM_JDK_DIR) ]) +AC_DEFUN_ONCE([IT_CHECK_FOR_JRE], +[ + AC_REQUIRE([IT_CHECK_FOR_JDK]) + AC_MSG_CHECKING([for a JRE home directory]) + AC_ARG_WITH([jre-home], + [AS_HELP_STRING([--with-jre-home], + [jre home directory \ + (default is the JRE under the JDK)])], + [ + SYSTEM_JRE_DIR=${withval} + ], + [ + SYSTEM_JRE_DIR= + ]) + if test -z "${SYSTEM_JRE_DIR}" ; then + if test -d "${SYSTEM_JDK_DIR}/jre" ; then + SYSTEM_JRE_DIR="${SYSTEM_JDK_DIR}/jre" + fi + fi + AC_MSG_RESULT(${SYSTEM_JRE_DIR}) + if ! test -d "${SYSTEM_JRE_DIR}"; then + AC_MSG_ERROR("A JRE home directory could not be found.") + fi + AC_SUBST(SYSTEM_JRE_DIR) +]) + AC_DEFUN_ONCE([FIND_JAVAC], [ AC_REQUIRE([IT_CHECK_FOR_JDK]) @@ -592,6 +618,7 @@ AC_DEFUN_ONCE([IT_FIND_JAVA], [ + AC_REQUIRE([IT_CHECK_FOR_JRE]) AC_MSG_CHECKING([for a Java virtual machine]) AC_ARG_WITH([java], [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)], @@ -599,7 +626,7 @@ JAVA="${withval}" ], [ - JAVA=${SYSTEM_JDK_DIR}/bin/java + JAVA="${SYSTEM_JRE_DIR}/bin/java" ]) if ! test -f "${JAVA}"; then AC_PATH_PROG(JAVA, "${JAVA}") From omajid at icedtea.classpath.org Tue Aug 23 08:04:13 2011 From: omajid at icedtea.classpath.org (omajid at icedtea.classpath.org) Date: Tue, 23 Aug 2011 15:04:13 +0000 Subject: /hg/icedtea-web: Add configure checks for new non-standard sun.*... Message-ID: changeset 924ec4d87970 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=924ec4d87970 author: Omair Majid date: Tue Aug 23 11:03:13 2011 -0400 Add configure checks for new non-standard sun.* classes 2011-08-23 Omair Majid * configure.ac: Add check for new non-standard classes sun.net.www.protocol.jar.URLJarFile and sun.net.www.protocol.jar.URLJarFileCallBack. diffstat: ChangeLog | 6 ++++++ configure.ac | 2 ++ 2 files changed, 8 insertions(+), 0 deletions(-) diffs (25 lines): diff -r 334a44162495 -r 924ec4d87970 ChangeLog --- a/ChangeLog Tue Aug 23 10:57:14 2011 -0400 +++ b/ChangeLog Tue Aug 23 11:03:13 2011 -0400 @@ -1,3 +1,9 @@ +2011-08-23 Omair Majid + + * configure.ac: Add check for new non-standard classes + sun.net.www.protocol.jar.URLJarFile and + sun.net.www.protocol.jar.URLJarFileCallBack. + 2011-08-23 Omair Majid * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also diff -r 334a44162495 -r 924ec4d87970 configure.ac --- a/configure.ac Tue Aug 23 10:57:14 2011 -0400 +++ b/configure.ac Tue Aug 23 11:03:13 2011 -0400 @@ -73,6 +73,8 @@ IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException]) IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER, [com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager]) +IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile]) +IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack]) IT_CHECK_FOR_CLASS(SUN_AWT_X11_XEMBEDDEDFRAME, [sun.awt.X11.XEmbeddedFrame]) IT_CHECK_FOR_CLASS(SUN_MISC_REF, [sun.misc.Ref]) IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil]) From ahughes at redhat.com Tue Aug 23 08:38:28 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 23 Aug 2011 16:38:28 +0100 Subject: RFC: icedtea6-1.10 backport Zero/Shark PR690 and PR696 fixes. In-Reply-To: <1314096549.3411.12.camel@xranby-ESPRIMO-P7935> References: <1314096549.3411.12.camel@xranby-ESPRIMO-P7935> Message-ID: <20110823153828.GM9583@rivendell.middle-earth.co.uk> On 12:49 Tue 23 Aug , Xerxes R?nby wrote: > Hi team. > > Icedtea6-1.10 exposes two HS20 Zero/Shark bugs when built using the > --with-hotspot-build > or > --with-hotspot-build=hs20 > configure options. > > The main reason why I put the two hs20 patches in the > if WITH_ALT_HSBUILD > ICEDTEA_PATCHES += \ > block are because the PR696 fix for Zero do re-introduce a bug in the > Zero+arm assembler port, this are OK since the arm assembler port are > allready disabled for hs20 when WITH_ALT_HSBUILD are defined. > > Ok to commit to the icedtea6-1.10 release branch? > > Cheers > Xerxes Looks good to me. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From omajid at icedtea.classpath.org Tue Aug 23 09:53:50 2011 From: omajid at icedtea.classpath.org (omajid at icedtea.classpath.org) Date: Tue, 23 Aug 2011 16:53:50 +0000 Subject: /hg/release/icedtea-web-1.1: Allow icedtea-web to run with just ... Message-ID: changeset 25dc7d8cb757 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=25dc7d8cb757 author: Omair Majid date: Tue Aug 23 12:52:10 2011 -0400 Allow icedtea-web to run with just a JRE 2011-08-23 Omair Majid * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also replace uses of SYSTEM_JDK_DIR/jre with SYSTEM_JRE_DIR. * acinclude.m4 (IT_CHECK_FOR_JRE): New macro. (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from within the JRE. diffstat: ChangeLog | 9 +++++++++ Makefile.am | 13 ++++++------- acinclude.m4 | 29 ++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 8 deletions(-) diffs (116 lines): diff -r db6914cf15be -r 25dc7d8cb757 ChangeLog --- a/ChangeLog Wed Aug 03 14:11:11 2011 -0400 +++ b/ChangeLog Tue Aug 23 12:52:10 2011 -0400 @@ -1,3 +1,12 @@ +2011-08-23 Omair Majid + + * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also + replace uses of SYSTEM_JDK_DIR/jre with SYSTEM_JRE_DIR. + * acinclude.m4 + (IT_CHECK_FOR_JRE): New macro. + (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from within the + JRE. + 2011-08-03 Deepak Bhole PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up diff -r db6914cf15be -r 25dc7d8cb757 Makefile.am --- a/Makefile.am Wed Aug 03 14:11:11 2011 -0400 +++ b/Makefile.am Tue Aug 23 12:52:10 2011 -0400 @@ -43,7 +43,6 @@ # IllegalAccessException # - we want full privileges # -JRE='"$(SYSTEM_JDK_DIR)/jre"' LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' @@ -120,7 +119,7 @@ -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \ -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \ -e 's|[@]JAVA[@]|$(JAVA)|g' \ - -e 's|[@]JRE[@]|$(JRE)|g' + -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g' # Top-Level Targets # ================= @@ -208,7 +207,7 @@ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ - -DICEDTEA_WEB_JRE=$(JRE) \ + -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ $(GTK_CFLAGS) \ @@ -530,13 +529,13 @@ ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc mkdir -p $(BOOT_DIR)/jre/lib && \ - ln -s $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(BOOT_DIR)/jre/lib && \ - if [ -e $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar ] ; then \ - ln -s $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ + ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib && \ + if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \ + ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ else \ ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ fi - ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ + ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ $(BOOT_DIR)/jre/lib/ && \ if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \ then \ diff -r db6914cf15be -r 25dc7d8cb757 acinclude.m4 --- a/acinclude.m4 Wed Aug 03 14:11:11 2011 -0400 +++ b/acinclude.m4 Tue Aug 23 12:52:10 2011 -0400 @@ -64,6 +64,32 @@ AC_SUBST(SYSTEM_JDK_DIR) ]) +AC_DEFUN_ONCE([IT_CHECK_FOR_JRE], +[ + AC_REQUIRE([IT_CHECK_FOR_JDK]) + AC_MSG_CHECKING([for a JRE home directory]) + AC_ARG_WITH([jre-home], + [AS_HELP_STRING([--with-jre-home], + [jre home directory \ + (default is the JRE under the JDK)])], + [ + SYSTEM_JRE_DIR=${withval} + ], + [ + SYSTEM_JRE_DIR= + ]) + if test -z "${SYSTEM_JRE_DIR}" ; then + if test -d "${SYSTEM_JDK_DIR}/jre" ; then + SYSTEM_JRE_DIR="${SYSTEM_JDK_DIR}/jre" + fi + fi + AC_MSG_RESULT(${SYSTEM_JRE_DIR}) + if ! test -d "${SYSTEM_JRE_DIR}"; then + AC_MSG_ERROR("A JRE home directory could not be found.") + fi + AC_SUBST(SYSTEM_JRE_DIR) +]) + AC_DEFUN_ONCE([FIND_JAVAC], [ AC_REQUIRE([IT_CHECK_FOR_JDK]) @@ -592,6 +618,7 @@ AC_DEFUN_ONCE([IT_FIND_JAVA], [ + AC_REQUIRE([IT_CHECK_FOR_JRE]) AC_MSG_CHECKING([for a Java virtual machine]) AC_ARG_WITH([java], [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)], @@ -599,7 +626,7 @@ JAVA="${withval}" ], [ - JAVA=${SYSTEM_JDK_DIR}/bin/java + JAVA="${SYSTEM_JRE_DIR}/bin/java" ]) if ! test -f "${JAVA}"; then AC_PATH_PROG(JAVA, "${JAVA}") From omajid at redhat.com Tue Aug 23 10:06:32 2011 From: omajid at redhat.com (Omair Majid) Date: Tue, 23 Aug 2011 13:06:32 -0400 Subject: [icedtea-web] RFC: PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 In-Reply-To: <20110822202347.GE3298@redhat.com> References: <20110803210718.GJ9903@redhat.com> <20110809181620.GL2420@redhat.com> <20110822202347.GE3298@redhat.com> Message-ID: <4E53DE18.2070401@redhat.com> On 08/22/2011 04:23 PM, Deepak Bhole wrote: > * Deepak Bhole [2011-08-09 14:25]: >> * Deepak Bhole [2011-08-03 17:08]: >>> Hi, >>> >>> Attached fix is for PR769: >>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 >>> >>> The fix is not Java 7 specific ... Java 7 just exposed the bug. >>> >> >> ping? >> > > ping > Looks fine to me. Just a thought, do you think it might be easier to read if the patch was modified to be like: if (!isExplicitlyTrusted) { if (hostName == null) { CNMatched = false; } else { /* old code here */ } } Anyway, okay to commit to all branches. Cheers, Omair From dbhole at redhat.com Tue Aug 23 13:21:18 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 23 Aug 2011 16:21:18 -0400 Subject: [icedtea-web] RFC: PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 In-Reply-To: <4E53DE18.2070401@redhat.com> References: <20110803210718.GJ9903@redhat.com> <20110809181620.GL2420@redhat.com> <20110822202347.GE3298@redhat.com> <4E53DE18.2070401@redhat.com> Message-ID: <20110823202117.GB23633@redhat.com> * Omair Majid [2011-08-23 13:06]: > On 08/22/2011 04:23 PM, Deepak Bhole wrote: > >* Deepak Bhole [2011-08-09 14:25]: > >>* Deepak Bhole [2011-08-03 17:08]: > >>>Hi, > >>> > >>>Attached fix is for PR769: > >>>http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=769 > >>> > >>>The fix is not Java 7 specific ... Java 7 just exposed the bug. > >>> > >> > >>ping? > >> > > > >ping > > > > Looks fine to me. > > Just a thought, do you think it might be easier to read if the patch > was modified to be like: > > if (!isExplicitlyTrusted) { > if (hostName == null) { > CNMatched = false; > } else { > /* old code here */ > } > } > > Anyway, okay to commit to all branches. > Yes that is cleaner. I just did it in the first way that came to mind. I will use your suggestion and commit though. Thanks for the review! Cheers, Deepak > Cheers, > Omair From dbhole at icedtea.classpath.org Tue Aug 23 13:38:14 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Tue, 23 Aug 2011 20:38:14 +0000 Subject: /hg/icedtea-web: Fix PR769: IcedTea-Web does not work with some ... Message-ID: changeset 36a7ee0d0ef7 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=36a7ee0d0ef7 author: Deepak Bhole date: Tue Aug 23 16:33:32 2011 -0400 Fix PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 diffstat: ChangeLog | 7 +++ NEWS | 1 + netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java | 20 ++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diffs (57 lines): diff -r 924ec4d87970 -r 36a7ee0d0ef7 ChangeLog --- a/ChangeLog Tue Aug 23 11:03:13 2011 -0400 +++ b/ChangeLog Tue Aug 23 16:33:32 2011 -0400 @@ -1,3 +1,10 @@ +2011-08-23 Deepak Bhole + + PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 + * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java + (checkServerTrusted): Account for a null hostname that the + overloaded implementation may pass. + 2011-08-23 Omair Majid * configure.ac: Add check for new non-standard classes diff -r 924ec4d87970 -r 36a7ee0d0ef7 NEWS --- a/NEWS Tue Aug 23 11:03:13 2011 -0400 +++ b/NEWS Tue Aug 23 16:33:32 2011 -0400 @@ -20,6 +20,7 @@ - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR771: IcedTea-Web certificate verification code does not use the right API - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. + - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 New in release 1.1 (2011-XX-XX): * Security updates diff -r 924ec4d87970 -r 36a7ee0d0ef7 netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java --- a/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Tue Aug 23 11:03:13 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Tue Aug 23 16:33:32 2011 -0400 @@ -224,16 +224,20 @@ // need to prompt the user if (!isExplicitlyTrusted(chain, authType)) { - try { - HostnameChecker checker = HostnameChecker - .getInstance(HostnameChecker.TYPE_TLS); + if (hostName == null) { + CNMatched = false; + } else { + try { + HostnameChecker checker = HostnameChecker + .getInstance(HostnameChecker.TYPE_TLS); - checker.match(hostName, chain[0]); // only need to match @ 0 for - // CN + checker.match(hostName, chain[0]); // only need to match @ 0 for + // CN - } catch (CertificateException e) { - CNMatched = false; - ce = e; + } catch (CertificateException e) { + CNMatched = false; + ce = e; + } } } From dbhole at icedtea.classpath.org Tue Aug 23 13:38:21 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Tue, 23 Aug 2011 20:38:21 +0000 Subject: /hg/release/icedtea-web-1.1: Fix PR769: IcedTea-Web does not wor... Message-ID: changeset 494140bdce62 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=494140bdce62 author: Deepak Bhole date: Tue Aug 23 16:33:32 2011 -0400 Fix PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 diffstat: ChangeLog | 7 +++ NEWS | 1 + netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java | 20 ++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diffs (57 lines): diff -r 25dc7d8cb757 -r 494140bdce62 ChangeLog --- a/ChangeLog Tue Aug 23 12:52:10 2011 -0400 +++ b/ChangeLog Tue Aug 23 16:33:32 2011 -0400 @@ -1,3 +1,10 @@ +2011-08-23 Deepak Bhole + + PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 + * netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java + (checkServerTrusted): Account for a null hostname that the + overloaded implementation may pass. + 2011-08-23 Omair Majid * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also diff -r 25dc7d8cb757 -r 494140bdce62 NEWS --- a/NEWS Tue Aug 23 12:52:10 2011 -0400 +++ b/NEWS Tue Aug 23 16:33:32 2011 -0400 @@ -13,6 +13,7 @@ - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up + - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 New in release 1.1.1 (2011-07-20): * Security updates: diff -r 25dc7d8cb757 -r 494140bdce62 netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java --- a/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Tue Aug 23 12:52:10 2011 -0400 +++ b/netx/net/sourceforge/jnlp/security/VariableX509TrustManager.java Tue Aug 23 16:33:32 2011 -0400 @@ -224,16 +224,20 @@ // need to prompt the user if (!isExplicitlyTrusted(chain, authType)) { - try { - HostnameChecker checker = HostnameChecker - .getInstance(HostnameChecker.TYPE_TLS); + if (hostName == null) { + CNMatched = false; + } else { + try { + HostnameChecker checker = HostnameChecker + .getInstance(HostnameChecker.TYPE_TLS); - checker.match(hostName, chain[0]); // only need to match @ 0 for - // CN + checker.match(hostName, chain[0]); // only need to match @ 0 for + // CN - } catch (CertificateException e) { - CNMatched = false; - ce = e; + } catch (CertificateException e) { + CNMatched = false; + ce = e; + } } } From jvanek at redhat.com Wed Aug 24 00:03:59 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 24 Aug 2011 09:03:59 +0200 Subject: /hg/icedtea-web: Allow icedtea-web to run with just a JRE In-Reply-To: References: Message-ID: <4E54A25F.9010705@redhat.com> Well, I have disagree with this but as explanation was nearly clear then np here :( J. On 08/23/2011 04:57 PM, omajid at icedtea.classpath.org wrote: > changeset 334a44162495 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=334a44162495 > author: Omair Majid > date: Tue Aug 23 10:57:14 2011 -0400 > > Allow icedtea-web to run with just a JRE > > 2011-08-23 Omair Majid > > * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR > instead. Also replace uses of SYSTEM_JDK_DIR/jre with > SYSTEM_JRE_DIR. > * acinclude.m4 (IT_CHECK_FOR_JRE): New macro. > (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from > within the JRE. > > > diffstat: > > ChangeLog | 9 +++++++++ > Makefile.am | 13 ++++++------- > acinclude.m4 | 29 ++++++++++++++++++++++++++++- > 3 files changed, 43 insertions(+), 8 deletions(-) > > diffs (116 lines): > > diff -r bd59947fa857 -r 334a44162495 ChangeLog > --- a/ChangeLog Mon Aug 22 15:09:47 2011 -0400 > +++ b/ChangeLog Tue Aug 23 10:57:14 2011 -0400 > @@ -1,3 +1,12 @@ > +2011-08-23 Omair Majid > + > + * Makefile.am: Remove JRE. Replace uses with SYSTEM_JRE_DIR instead. Also > + replace uses of SYSTEM_JDK_DIR/jre with SYSTEM_JRE_DIR. > + * acinclude.m4 > + (IT_CHECK_FOR_JRE): New macro. > + (IT_FIND_JAVA): Require IT_CHECK_FOR_JRE. Use java binary from within the > + JRE. > + > 2011-08-22 Saad Mohammad > * netx/net/sourceforge/jnlp/JNLPFile.java: > (parse): After the file has been parsed, it calls > diff -r bd59947fa857 -r 334a44162495 Makefile.am > --- a/Makefile.am Mon Aug 22 15:09:47 2011 -0400 > +++ b/Makefile.am Tue Aug 23 10:57:14 2011 -0400 > @@ -51,7 +51,6 @@ > # IllegalAccessException > # - we want full privileges > # > -JRE='"$(SYSTEM_JDK_DIR)/jre"' > LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar$(RHINO_RUNTIME)" > PLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:$(datadir)/$(PACKAGE_NAME)/netx.jar:$(datadir)/$(PACKAGE_NAME)/plugin.jar$(RHINO_RUNTIME)"' > > @@ -128,7 +127,7 @@ > -e 's|[@]JAVAWS_BIN_LOCATION[@]|$(bindir)/$(javaws)|g' \ > -e 's|[@]ITWEB_SETTINGS_BIN_LOCATION[@]|$(bindir)/$(itweb_settings)|g' \ > -e 's|[@]JAVA[@]|$(JAVA)|g' \ > - -e 's|[@]JRE[@]|$(JRE)|g' > + -e 's|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g' > > # Top-Level Targets > # ================= > @@ -216,7 +215,7 @@ > -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ > -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \ > -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ > - -DICEDTEA_WEB_JRE=$(JRE) \ > + -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ > -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ > $(GLIB_CFLAGS) \ > $(GTK_CFLAGS) \ > @@ -636,13 +635,13 @@ > ln -sf $(abs_top_builddir)/javac $(BOOT_DIR)/bin/javac > ln -sf $(JAVADOC) $(BOOT_DIR)/bin/javadoc > mkdir -p $(BOOT_DIR)/jre/lib&& \ > - ln -s $(SYSTEM_JDK_DIR)/jre/lib/rt.jar $(BOOT_DIR)/jre/lib&& \ > - if [ -e $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar ] ; then \ > - ln -s $(SYSTEM_JDK_DIR)/jre/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ > + ln -s $(SYSTEM_JRE_DIR)/lib/rt.jar $(BOOT_DIR)/jre/lib&& \ > + if [ -e $(SYSTEM_JRE_DIR)/lib/jsse.jar ] ; then \ > + ln -s $(SYSTEM_JRE_DIR)/lib/jsse.jar $(BOOT_DIR)/jre/lib ; \ > else \ > ln -s rt.jar $(BOOT_DIR)/jre/lib/jsse.jar ; \ > fi > - ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ > + ln -sf $(SYSTEM_JRE_DIR)/lib/$(JRE_ARCH_DIR) \ > $(BOOT_DIR)/jre/lib/&& \ > if ! test -d $(BOOT_DIR)/jre/lib/$(INSTALL_ARCH_DIR); \ > then \ > diff -r bd59947fa857 -r 334a44162495 acinclude.m4 > --- a/acinclude.m4 Mon Aug 22 15:09:47 2011 -0400 > +++ b/acinclude.m4 Tue Aug 23 10:57:14 2011 -0400 > @@ -64,6 +64,32 @@ > AC_SUBST(SYSTEM_JDK_DIR) > ]) > > +AC_DEFUN_ONCE([IT_CHECK_FOR_JRE], > +[ > + AC_REQUIRE([IT_CHECK_FOR_JDK]) > + AC_MSG_CHECKING([for a JRE home directory]) > + AC_ARG_WITH([jre-home], > + [AS_HELP_STRING([--with-jre-home], > + [jre home directory \ > + (default is the JRE under the JDK)])], > + [ > + SYSTEM_JRE_DIR=${withval} > + ], > + [ > + SYSTEM_JRE_DIR= > + ]) > + if test -z "${SYSTEM_JRE_DIR}" ; then > + if test -d "${SYSTEM_JDK_DIR}/jre" ; then > + SYSTEM_JRE_DIR="${SYSTEM_JDK_DIR}/jre" > + fi > + fi > + AC_MSG_RESULT(${SYSTEM_JRE_DIR}) > + if ! test -d "${SYSTEM_JRE_DIR}"; then > + AC_MSG_ERROR("A JRE home directory could not be found.") > + fi > + AC_SUBST(SYSTEM_JRE_DIR) > +]) > + > AC_DEFUN_ONCE([FIND_JAVAC], > [ > AC_REQUIRE([IT_CHECK_FOR_JDK]) > @@ -592,6 +618,7 @@ > > AC_DEFUN_ONCE([IT_FIND_JAVA], > [ > + AC_REQUIRE([IT_CHECK_FOR_JRE]) > AC_MSG_CHECKING([for a Java virtual machine]) > AC_ARG_WITH([java], > [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)], > @@ -599,7 +626,7 @@ > JAVA="${withval}" > ], > [ > - JAVA=${SYSTEM_JDK_DIR}/bin/java > + JAVA="${SYSTEM_JRE_DIR}/bin/java" > ]) > if ! test -f "${JAVA}"; then > AC_PATH_PROG(JAVA, "${JAVA}") From xranby at icedtea.classpath.org Wed Aug 24 02:57:55 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Wed, 24 Aug 2011 09:57:55 +0000 Subject: /hg/release/icedtea6-1.10: Zero/Shark: PR690: Shark fails to JIT... Message-ID: changeset 6fcb75989c4a in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=6fcb75989c4a author: Xerxes Ranby date: Wed Aug 24 11:58:13 2011 +0200 Zero/Shark: PR690: Shark fails to JIT using hs20, PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. 2011-08-24 Xerxes Ranby Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. * patches/pr690-shark-jit-hs20.patch: New patch backported from OpenJDK 7 bug 7032458. * patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from OpenJDK 7 bug 7032458 and 7030207. * Makefile.am: Added new patches. * NEWS: Updated. diffstat: ChangeLog | 12 ++++++ Makefile.am | 2 + NEWS | 4 ++ patches/pr690-shark-jit-hs20.patch | 58 +++++++++++++++++++++++++++++++++ patches/pr696-zero-fast_aldc-hs20.patch | 42 +++++++++++++++++++++++ 5 files changed, 118 insertions(+), 0 deletions(-) diffs (158 lines): diff -r b4b912ba7688 -r 6fcb75989c4a ChangeLog --- a/ChangeLog Thu Jul 21 15:06:15 2011 +0100 +++ b/ChangeLog Wed Aug 24 11:58:13 2011 +0200 @@ -1,3 +1,15 @@ +2011-08-24 Xerxes R??nby + + Zero/Shark + - PR690: Shark fails to JIT using hs20. + - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. + * patches/pr690-shark-jit-hs20.patch: New patch backported from + OpenJDK 7 bug 7032458. + * patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from + OpenJDK 7 bug 7032458 and 7030207. + * Makefile.am: Added new patches. + * NEWS: Updated. + 2011-07-21 Andrew John Hughes * NEWS: Prepare for 1.10.4. diff -r b4b912ba7688 -r 6fcb75989c4a Makefile.am --- a/Makefile.am Thu Jul 21 15:06:15 2011 +0100 +++ b/Makefile.am Wed Aug 24 11:58:13 2011 +0200 @@ -353,6 +353,8 @@ if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ patches/pr639-broken_shark_build.patch \ + patches/pr690-shark-jit-hs20.patch \ + patches/pr696-zero-fast_aldc-hs20.patch \ patches/hotspot/$(HSBUILD)/powerpc-stacksize.patch else ICEDTEA_PATCHES += \ diff -r b4b912ba7688 -r 6fcb75989c4a NEWS --- a/NEWS Thu Jul 21 15:06:15 2011 +0100 +++ b/NEWS Wed Aug 24 11:58:13 2011 +0200 @@ -11,6 +11,10 @@ New in release 1.10.4 (2011-XX-XX): +* Zero/Shark + - PR690: Shark fails to JIT using hs20. + - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. + New in release 1.10.3 (2011-07-21): * Bug fixes diff -r b4b912ba7688 -r 6fcb75989c4a patches/pr690-shark-jit-hs20.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr690-shark-jit-hs20.patch Wed Aug 24 11:58:13 2011 +0200 @@ -0,0 +1,61 @@ +Index: openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.hpp 2011-04-15 14:48:22.175181000 +0200 ++++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp 2011-04-15 16:19:28.915181000 +0200 +@@ -113,7 +113,7 @@ + // Global access + public: + static SharkCompiler* compiler() { +- AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple); ++ AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_full_optimization); + assert(compiler->is_shark() && compiler->is_initialized(), "should be"); + return (SharkCompiler *) compiler; + } +Index: openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp 2011-04-15 14:54:00.447181000 +0200 ++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp 2011-04-15 15:02:25.851181000 +0200 +@@ -740,9 +740,9 @@ + CompLevel_simple = 1, // C1 + CompLevel_limited_profile = 2, // C1, invocation & backedge counters + CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo +- CompLevel_full_optimization = 4, // C2 ++ CompLevel_full_optimization = 4, // C2 or Shark + +-#if defined(COMPILER2) ++#if defined(COMPILER2) || defined(SHARK) + CompLevel_highest_tier = CompLevel_full_optimization, // pure C2 and tiered + #elif defined(COMPILER1) + CompLevel_highest_tier = CompLevel_simple, // pure C1 +@@ -754,7 +754,7 @@ + CompLevel_initial_compile = CompLevel_full_profile // tiered + #elif defined(COMPILER1) + CompLevel_initial_compile = CompLevel_simple // pure C1 +-#elif defined(COMPILER2) ++#elif defined(COMPILER2) || defined(SHARK) + CompLevel_initial_compile = CompLevel_full_optimization // pure C2 + #else + CompLevel_initial_compile = CompLevel_none +Index: openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp 2011-04-15 16:05:50.051181001 +0200 ++++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp 2011-04-15 16:08:46.127181000 +0200 +@@ -768,7 +768,9 @@ + // Initialize the compilation queue + void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) { + EXCEPTION_MARK; ++#if !defined(ZERO) && !defined(SHARK) + assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?"); ++#endif // !ZERO && !SHARK + if (c2_compiler_count > 0) { + _c2_method_queue = new CompileQueue("C2MethodQueue", MethodCompileQueue_lock); + } +@@ -1029,7 +1031,7 @@ + + assert(!HAS_PENDING_EXCEPTION, "No exception should be present"); + // some prerequisites that are compiler specific +- if (compiler(comp_level)->is_c2()) { ++ if (compiler(comp_level)->is_c2() || compiler(comp_level)->is_shark()) { + method->constants()->resolve_string_constants(CHECK_0); + // Resolve all classes seen in the signature of the method + // we are compiling. diff -r b4b912ba7688 -r 6fcb75989c4a patches/pr696-zero-fast_aldc-hs20.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr696-zero-fast_aldc-hs20.patch Wed Aug 24 11:58:13 2011 +0200 @@ -0,0 +1,44 @@ +Index: openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +=================================================================== +--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Sun Apr 03 12:00:54 2011 +0200 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 04 03:02:00 2011 -0700 +@@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterStat + /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, +-/* 0xE4 */ &&opc_default, &&opc_return_register_finalizer, &&opc_default, &&opc_default, ++/* 0xE4 */ &&opc_default, &&opc_default, &&opc_default, &&opc_return_register_finalizer, + /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + +# HG changeset patch +# User twisti +# Date 1300957910 25200 +# Node ID 151da0c145a8e4de263740273ec10c0eb46b30d0 +# Parent 9dc311b8473e0259a5de3f9358ca94de3990d692 +7030207: Zero tweak to remove accidentally incorporated code +Summary: IcedTea contains a now-unmaintained ARM-specific interpreter and part of that interpreter was accidentally incorporated in one of the webrevs when Zero was initially imported. +Reviewed-by: twisti +Contributed-by: Gary Benson + +--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Mar 21 11:28:14 2011 -0700 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Thu Mar 24 02:11:50 2011 -0700 +@@ -2383,17 +2383,6 @@ run: + } + + DEFAULT: +-#ifdef ZERO +- // Some zero configurations use the C++ interpreter as a +- // fallback interpreter and have support for platform +- // specific fast bytecodes which aren't supported here, so +- // redispatch to the equivalent non-fast bytecode when they +- // are encountered. +- if (Bytecodes::is_defined((Bytecodes::Code)opcode)) { +- opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode); +- goto opcode_switch; +- } +-#endif + fatal(err_msg("Unimplemented opcode %d = %s", opcode, + Bytecodes::name((Bytecodes::Code)opcode))); + goto finish; + From bugzilla-daemon at icedtea.classpath.org Wed Aug 24 05:35:08 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Aug 2011 12:35:08 +0000 Subject: [Bug 776] New: incorrect font paths in fontconfig.Gentoo.properties.src Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=776 Summary: incorrect font paths in fontconfig.Gentoo.properties.src Product: IcedTea Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: enhancement Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: matsuu at gentoo.org CC: matsuu at gentoo.org fontconfig.Gentoo.properties.src has incorrect font paths because it is a copy from fedora's. cf. http://icedtea.classpath.org/hg/icedtea6/rev/fc45c67366b9 I attached correct file. it's based on fontconfig.Ubuntu.properties.src. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 24 05:35:48 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Aug 2011 12:35:48 +0000 Subject: [Bug 776] incorrect font paths in fontconfig.Gentoo.properties.src In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=776 --- Comment #1 from MATSUU Takuto 2011-08-24 12:35:48 --- Created an attachment (id=563) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=563) fontconfig.Gentoo.properties.src -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 24 06:19:52 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 24 Aug 2011 13:19:52 +0000 Subject: [Bug 770] Zero + icedtea7 7033954 regression - missing mapfile-zero In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=770 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7-2.0 --- Comment #3 from Xerxes R?nby 2011-08-24 13:19:52 --- I have also patched the icedtea8-forest http://icedtea.classpath.org/hg/icedtea8-forest/jdk/rev/0ee89fb1c10a Likewise, this bug will be fixed on the next changesets bump in the icedtea (8) tree. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Wed Aug 24 07:15:21 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 24 Aug 2011 15:15:21 +0100 Subject: [icedtea-web] RFC: Fix for RH718693: MindTerm SSH Applet doesn't work In-Reply-To: <20110805162234.GH31824@redhat.com> References: <20110804205816.GE31824@redhat.com> <20110805020821.GD31431@rivendell.middle-earth.co.uk> <20110805162234.GH31824@redhat.com> Message-ID: <20110824141521.GQ9583@rivendell.middle-earth.co.uk> On 12:22 Fri 05 Aug , Deepak Bhole wrote: > * Dr Andrew John Hughes [2011-08-04 22:08]: > > On 16:58 Thu 04 Aug , Deepak Bhole wrote: > > > Hi, > > > > > > Attached path fixes rhbz 718693: > > > https://bugzilla.redhat.com/show_bug.cgi?id=718693 > > > > > > The patch adds a class that certain apps may call because Netscape used > > > to need it. IcedTea-Web does not need this, and therefore the methods > > > are empty. > > > > > > Okay for HEAD and 1.1? > > > > > > ChangeLog: > > > 2011-08-04 Deepak Bhole > > > > > > RH718693: MindTerm SSH Applet doesn't work > > > * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. > > > Stub class, not needed with IcedTea-Web. > > > > > > Cheers, > > > Deepak > > > > Needs a license header. It would also probably benefit from some class-level > > Javadoc saying what you said above. > > > > Doh! Good catch re: license. New patch attached. > > Okay for commit to HEAD and 1.1? > > Cheers, > Deepak > Fine. Posting in a new thread might have got a quicker response :-) -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at icedtea.classpath.org Wed Aug 24 13:03:25 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 24 Aug 2011 20:03:25 +0000 Subject: /hg/icedtea-web: Fix RH718693: MindTerm SSH Applet doesn't work Message-ID: changeset 36270c76a533 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=36270c76a533 author: Deepak Bhole date: Wed Aug 24 15:17:46 2011 -0400 Fix RH718693: MindTerm SSH Applet doesn't work 2011-08-24 Deepak Bhole RH718693: MindTerm SSH Applet doesn't work * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. Stub class, not needed with IcedTea-Web. diffstat: ChangeLog | 6 + NEWS | 1 + plugin/icedteanp/java/netscape/security/PrivilegeManager.java | 75 +++++++++++ 3 files changed, 82 insertions(+), 0 deletions(-) diffs (103 lines): diff -r 36a7ee0d0ef7 -r 36270c76a533 ChangeLog --- a/ChangeLog Tue Aug 23 16:33:32 2011 -0400 +++ b/ChangeLog Wed Aug 24 15:17:46 2011 -0400 @@ -1,3 +1,9 @@ +2011-08-24 Deepak Bhole + + RH718693: MindTerm SSH Applet doesn't work + * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New + file. Stub class, not needed with IcedTea-Web. + 2011-08-23 Deepak Bhole PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 diff -r 36a7ee0d0ef7 -r 36270c76a533 NEWS --- a/NEWS Tue Aug 23 16:33:32 2011 -0400 +++ b/NEWS Wed Aug 24 15:17:46 2011 -0400 @@ -16,6 +16,7 @@ - PR765: JNLP file with all resource jars marked as 'lazy' fails to validate signature and stops the launch of application * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + - RH718693: MindTerm SSH Applet doesn't work Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR771: IcedTea-Web certificate verification code does not use the right API diff -r 36a7ee0d0ef7 -r 36270c76a533 plugin/icedteanp/java/netscape/security/PrivilegeManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Wed Aug 24 15:17:46 2011 -0400 @@ -0,0 +1,75 @@ +/* + PrivilegeManager.java + Copyright (C) 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +/** + * + * This class does not implement any functionality and exists for backward + * compatibility only. + * + * At one point Netscape required applets to request specific permissions to + * do things. This is not longer the case with IcedTea-Web (and other modern + * plug-ins). However because some old applets may still have code calling + * this class, an empty stub is needed to prevent a ClassNotFoundException. + * + */ + +package netscape.security; + +import sun.applet.PluginDebug; + +public class PrivilegeManager { + + /** + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void enablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.enablePrivilege stub called"); + } + + /** + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void disablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.disablePrivilege stub called"); + } +} From dbhole at icedtea.classpath.org Wed Aug 24 13:03:49 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 24 Aug 2011 20:03:49 +0000 Subject: /hg/release/icedtea-web-1.1: Fix RH718693: MindTerm SSH Applet d... Message-ID: changeset 8214ff4fe80c in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=8214ff4fe80c author: Deepak Bhole date: Wed Aug 24 15:17:46 2011 -0400 Fix RH718693: MindTerm SSH Applet doesn't work 2011-08-24 Deepak Bhole RH718693: MindTerm SSH Applet doesn't work * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New file. Stub class, not needed with IcedTea-Web. diffstat: ChangeLog | 6 + NEWS | 1 + plugin/icedteanp/java/netscape/security/PrivilegeManager.java | 75 +++++++++++ 3 files changed, 82 insertions(+), 0 deletions(-) diffs (103 lines): diff -r 494140bdce62 -r 8214ff4fe80c ChangeLog --- a/ChangeLog Tue Aug 23 16:33:32 2011 -0400 +++ b/ChangeLog Wed Aug 24 15:17:46 2011 -0400 @@ -1,3 +1,9 @@ +2011-08-24 Deepak Bhole + + RH718693: MindTerm SSH Applet doesn't work + * plugin/icedteanp/java/netscape/security/PrivilegeManager.java: New + file. Stub class, not needed with IcedTea-Web. + 2011-08-23 Deepak Bhole PR769: IcedTea-Web plugin does not work with some ssl sites with OpenJDK7 diff -r 494140bdce62 -r 8214ff4fe80c NEWS --- a/NEWS Tue Aug 23 16:33:32 2011 -0400 +++ b/NEWS Wed Aug 24 15:17:46 2011 -0400 @@ -11,6 +11,7 @@ New in release 1.1.2 (2011-XX-XX): * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow + - RH718693: MindTerm SSH Applet doesn't work Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 diff -r 494140bdce62 -r 8214ff4fe80c plugin/icedteanp/java/netscape/security/PrivilegeManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedteanp/java/netscape/security/PrivilegeManager.java Wed Aug 24 15:17:46 2011 -0400 @@ -0,0 +1,75 @@ +/* + PrivilegeManager.java + Copyright (C) 2011 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. +*/ + +/** + * + * This class does not implement any functionality and exists for backward + * compatibility only. + * + * At one point Netscape required applets to request specific permissions to + * do things. This is not longer the case with IcedTea-Web (and other modern + * plug-ins). However because some old applets may still have code calling + * this class, an empty stub is needed to prevent a ClassNotFoundException. + * + */ + +package netscape.security; + +import sun.applet.PluginDebug; + +public class PrivilegeManager { + + /** + * Stub for enablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void enablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.enablePrivilege stub called"); + } + + /** + * Stub for disablePrivilege. Not used by IcedTea-Web, kept for compatibility + * + * @param privilege + */ + public static void disablePrivilege(String privilege) { + PluginDebug.debug("netscape.security.disablePrivilege stub called"); + } +} From dbhole at redhat.com Wed Aug 24 13:05:32 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 24 Aug 2011 16:05:32 -0400 Subject: IcedTea-Web 1.1.2 release Message-ID: <20110824200532.GJ16281@redhat.com> Hi All, I would like to release IcedTea-Web 1.1.2 on Friday. It will be a bugfix update that fixes some issues and allows icedtea-web to work with a JRE only. Are there any objections to a Friday late afternoon (EDT) release? Cheers, Deepak From dbhole at redhat.com Wed Aug 24 13:51:28 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 24 Aug 2011 16:51:28 -0400 Subject: [openbsd] Remove gnuisms from icedtea-web's Makefile.in, and fix install calls In-Reply-To: <20110809220645.GX11994@dawn.rhaalovely.net> References: <20110809220645.GX11994@dawn.rhaalovely.net> Message-ID: <20110824205128.GK16281@redhat.com> * Landry Breuil [2011-08-23 08:14]: > Hi, > > just a quick note to let you know that icedtea-web 1.1.1 works fine on > OpenBSD with sun's openjdk 1.7 (with the applet_hole.patch). I just had > to apply a little (attached patch) : > - cp -a is a gnu cp option, don't use it > - install -D is a gnu install option, add a plain install -d call to > create the parent dirs > - on OpenBSD, INSTALL_DATA is set by the ports infrastructure and uses > -o/-g by default, as it's supposed to be used during make install > (which is run as root). For the 'stamp files', icedtea-web calls > INSTALL_DATA during make step, which is run as regular user, thus > install -o/-g fails. Hence, use a plain install -c -m 644 command > instead of relying on INSTALL_DATA. > > There are more hunks in that patch, but they're openbsd-specific so i'm > not pushing them. We'll soon ship icedtea-web in our ports-tree. > > Landry Thanks for the patch! I assume you meant to make the changes to Makefile.am? Anyway, I made it so but I found some issues on Linux. Specifically, the doc dirs don't get created without the -D. I am attaching a new patch that works fine in Linux. Can you please confirm if it is fine on BSD too? Thanks, Deepak > $OpenBSD$ > --- Makefile.in.orig Fri Jul 15 22:03:11 2011 > +++ Makefile.in Thu Aug 4 15:19:39 2011 > @@ -654,12 +654,12 @@ install-data-local: > @ENABLE_DOCS_TRUE@ (cd ${abs_top_builddir}/docs/netx; \ > @ENABLE_DOCS_TRUE@ for files in $$(find . -type f); \ > @ENABLE_DOCS_TRUE@ do \ > - at ENABLE_DOCS_TRUE@ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > + at ENABLE_DOCS_TRUE@ ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > @ENABLE_DOCS_TRUE@ done) > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ (cd ${abs_top_builddir}/docs/plugin; \ > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ for files in $$(find . -type f); \ > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ do \ > - at ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > + at ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ done) > > uninstall-local: > @@ -768,14 +768,15 @@ stamps/netx.stamp: netx-source-files.txt stamps/bootst > -bootclasspath $(RUNTIME) \ > @netx-source-files.txt > (cd $(NETX_RESOURCE_DIR); \ > + install -d $(NETX_DIR)/net/sourceforge/jnlp/resources/ ; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} \ > + install -c -m 644 $${files} \ > $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ > done) > - cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > + cp $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > $(NETX_DIR)/net/sourceforge/jnlp/runtime > - cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > + cp build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > mkdir -p stamps > touch $@ > > @@ -811,9 +812,10 @@ stamps/extra-class-files.stamp: extra-source-files.txt > -sourcepath $(abs_top_srcdir)/extra -cp netx.build \ > -bootclasspath $(RUNTIME) @extra-source-files.txt > (cd $(NETX_EXTRA_DIR); \ > + install -d $(NETX_EXTRA_DIST_DIR) ; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} \ > + install -c -m 644 $${files} \ > $(NETX_EXTRA_DIST_DIR)/$${files}; \ > done) > mkdir -p stamps -------------- next part -------------- diff -r 36270c76a533 Makefile.am --- a/Makefile.am Wed Aug 24 15:17:46 2011 -0400 +++ b/Makefile.am Wed Aug 24 16:49:53 2011 -0400 @@ -166,15 +166,19 @@ if ENABLE_DOCS ${mkinstalldirs} $(DESTDIR)$(htmldir) (cd ${abs_top_builddir}/docs/netx; \ + install -d $(DESTDIR)$(htmldir)/netx; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ + install -d $$(dirname "$(DESTDIR)$(htmldir)/netx/$${files}"); \ + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ done) if ENABLE_PLUGIN (cd ${abs_top_builddir}/docs/plugin; \ + install -d $(DESTDIR)$(htmldir)/plugin; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ + install -d $$(dirname "$(DESTDIR)$(htmldir)/plugin/$${files}"); \ + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ done) endif endif @@ -304,14 +308,15 @@ -bootclasspath $(RUNTIME) \ @netx-source-files.txt (cd $(NETX_RESOURCE_DIR); \ + install -d $(NETX_DIR)/net/sourceforge/jnlp/resources/ ; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} \ + install -c -m 644 $${files} \ $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ done) - cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ + cp $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ $(NETX_DIR)/net/sourceforge/jnlp/runtime - cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/ + cp build.properties $(NETX_DIR)/net/sourceforge/jnlp/ mkdir -p stamps touch $@ @@ -347,9 +352,10 @@ -sourcepath $(abs_top_srcdir)/extra -cp netx.build \ -bootclasspath $(RUNTIME) @extra-source-files.txt (cd $(NETX_EXTRA_DIR); \ + install -d $(NETX_EXTRA_DIST_DIR) ; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} \ + install -c -m 644 $${files} \ $(NETX_EXTRA_DIST_DIR)/$${files}; \ done) mkdir -p stamps From ahughes at redhat.com Wed Aug 24 16:34:13 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 25 Aug 2011 00:34:13 +0100 Subject: IcedTea-Web 1.1.2 release In-Reply-To: <20110824200532.GJ16281@redhat.com> References: <20110824200532.GJ16281@redhat.com> Message-ID: <20110824233413.GW9583@rivendell.middle-earth.co.uk> On 16:05 Wed 24 Aug , Deepak Bhole wrote: > Hi All, > > I would like to release IcedTea-Web 1.1.2 on Friday. It will be a bugfix > update that fixes some issues and allows icedtea-web to work with a JRE > only. > > Are there any objections to a Friday late afternoon (EDT) release? > > Cheers, > Deepak What issues are we talking about? Do you have a list? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Aug 24 16:50:27 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 25 Aug 2011 00:50:27 +0100 Subject: [openbsd] Remove gnuisms from icedtea-web's Makefile.in, and fix install calls In-Reply-To: <20110824205128.GK16281@redhat.com> References: <20110809220645.GX11994@dawn.rhaalovely.net> <20110824205128.GK16281@redhat.com> Message-ID: <20110824235027.GX9583@rivendell.middle-earth.co.uk> On 16:51 Wed 24 Aug , Deepak Bhole wrote: > * Landry Breuil [2011-08-23 08:14]: > > Hi, > > > > just a quick note to let you know that icedtea-web 1.1.1 works fine on > > OpenBSD with sun's openjdk 1.7 (with the applet_hole.patch). I just had > > to apply a little (attached patch) : > > - cp -a is a gnu cp option, don't use it > > - install -D is a gnu install option, add a plain install -d call to > > create the parent dirs > > - on OpenBSD, INSTALL_DATA is set by the ports infrastructure and uses > > -o/-g by default, as it's supposed to be used during make install > > (which is run as root). For the 'stamp files', icedtea-web calls > > INSTALL_DATA during make step, which is run as regular user, thus > > install -o/-g fails. Hence, use a plain install -c -m 644 command > > instead of relying on INSTALL_DATA. > > > > There are more hunks in that patch, but they're openbsd-specific so i'm > > not pushing them. We'll soon ship icedtea-web in our ports-tree. > > > > Landry > > Thanks for the patch! > > I assume you meant to make the changes to Makefile.am? Anyway, I made it > so but I found some issues on Linux. Specifically, the doc dirs don't > get created without the -D. > Well, yes because -d just creates directories while -D installs files, creating any directories needed. Are you sure the patch below works by just removing -D? Are you trying the install on a clean tree? It's not obvious to me how netx gets created. Bare install shouldn't be used; use ${INSTALL}. Also you seem to be removing all the INSTALL_DATA targets whereas it's just the usage in each of netx and extra-class-files that's at issue. cp -p is closer to the status quo than just reverting to cp. Have you tested this with make distcheck? Isn't it time *BSD got some usable tools? ;-) > I am attaching a new patch that works fine in Linux. Can you please > confirm if it is fine on BSD too? > > Thanks, > Deepak > > > $OpenBSD$ > > --- Makefile.in.orig Fri Jul 15 22:03:11 2011 > > +++ Makefile.in Thu Aug 4 15:19:39 2011 > > @@ -654,12 +654,12 @@ install-data-local: > > @ENABLE_DOCS_TRUE@ (cd ${abs_top_builddir}/docs/netx; \ > > @ENABLE_DOCS_TRUE@ for files in $$(find . -type f); \ > > @ENABLE_DOCS_TRUE@ do \ > > - at ENABLE_DOCS_TRUE@ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > > + at ENABLE_DOCS_TRUE@ ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > > @ENABLE_DOCS_TRUE@ done) > > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ (cd ${abs_top_builddir}/docs/plugin; \ > > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ for files in $$(find . -type f); \ > > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ do \ > > - at ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > > + at ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > > @ENABLE_DOCS_TRUE@@ENABLE_PLUGIN_TRUE@ done) > > > > uninstall-local: > > @@ -768,14 +768,15 @@ stamps/netx.stamp: netx-source-files.txt stamps/bootst > > -bootclasspath $(RUNTIME) \ > > @netx-source-files.txt > > (cd $(NETX_RESOURCE_DIR); \ > > + install -d $(NETX_DIR)/net/sourceforge/jnlp/resources/ ; \ > > for files in $$(find . -type f); \ > > do \ > > - ${INSTALL_DATA} -D $${files} \ > > + install -c -m 644 $${files} \ > > $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ > > done) > > - cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > > + cp $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > > $(NETX_DIR)/net/sourceforge/jnlp/runtime > > - cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > > + cp build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > > mkdir -p stamps > > touch $@ > > > > @@ -811,9 +812,10 @@ stamps/extra-class-files.stamp: extra-source-files.txt > > -sourcepath $(abs_top_srcdir)/extra -cp netx.build \ > > -bootclasspath $(RUNTIME) @extra-source-files.txt > > (cd $(NETX_EXTRA_DIR); \ > > + install -d $(NETX_EXTRA_DIST_DIR) ; \ > > for files in $$(find . -type f); \ > > do \ > > - ${INSTALL_DATA} -D $${files} \ > > + install -c -m 644 $${files} \ > > $(NETX_EXTRA_DIST_DIR)/$${files}; \ > > done) > > mkdir -p stamps > > diff -r 36270c76a533 Makefile.am > --- a/Makefile.am Wed Aug 24 15:17:46 2011 -0400 > +++ b/Makefile.am Wed Aug 24 16:49:53 2011 -0400 > @@ -166,15 +166,19 @@ > if ENABLE_DOCS > ${mkinstalldirs} $(DESTDIR)$(htmldir) > (cd ${abs_top_builddir}/docs/netx; \ > + install -d $(DESTDIR)$(htmldir)/netx; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > + install -d $$(dirname "$(DESTDIR)$(htmldir)/netx/$${files}"); \ > + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ > done) > if ENABLE_PLUGIN > (cd ${abs_top_builddir}/docs/plugin; \ > + install -d $(DESTDIR)$(htmldir)/plugin; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > + install -d $$(dirname "$(DESTDIR)$(htmldir)/plugin/$${files}"); \ > + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ > done) > endif > endif > @@ -304,14 +308,15 @@ > -bootclasspath $(RUNTIME) \ > @netx-source-files.txt > (cd $(NETX_RESOURCE_DIR); \ > + install -d $(NETX_DIR)/net/sourceforge/jnlp/resources/ ; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} \ > + install -c -m 644 $${files} \ > $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ > done) > - cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > + cp $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ > $(NETX_DIR)/net/sourceforge/jnlp/runtime > - cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > + cp build.properties $(NETX_DIR)/net/sourceforge/jnlp/ > mkdir -p stamps > touch $@ > > @@ -347,9 +352,10 @@ > -sourcepath $(abs_top_srcdir)/extra -cp netx.build \ > -bootclasspath $(RUNTIME) @extra-source-files.txt > (cd $(NETX_EXTRA_DIR); \ > + install -d $(NETX_EXTRA_DIST_DIR) ; \ > for files in $$(find . -type f); \ > do \ > - ${INSTALL_DATA} -D $${files} \ > + install -c -m 644 $${files} \ > $(NETX_EXTRA_DIST_DIR)/$${files}; \ > done) > mkdir -p stamps -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Aug 24 16:54:06 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 25 Aug 2011 00:54:06 +0100 Subject: IcedTea-Web HEAD distcheck broken Message-ID: <20110824235406.GY9583@rivendell.middle-earth.co.uk> I haven't done a build for a while, but was inspired to check when replying to Deepak's OpenBSD e-mail. It seems distcheck is now broken with IcedTea-Web HEAD: rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/application/application0.jnlp': Permission denied rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp': Permission denied make[1]: *** [clean-netx-unit-tests] Error 1 Not sure about the branches. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Thu Aug 25 01:20:12 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Aug 2011 10:20:12 +0200 Subject: IcedTea-Web HEAD distcheck broken In-Reply-To: <20110824235406.GY9583@rivendell.middle-earth.co.uk> References: <20110824235406.GY9583@rivendell.middle-earth.co.uk> Message-ID: <4E5605BC.5090602@redhat.com> On 08/25/2011 01:54 AM, Dr Andrew John Hughes wrote: > I haven't done a build for a while, but was inspired to check when replying to > Deepak's OpenBSD e-mail. It seems distcheck is now broken with IcedTea-Web > HEAD: > > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/application/application0.jnlp': Permission denied > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp': Permission denied > make[1]: *** [clean-netx-unit-tests] Error 1 > > Not sure about the branches. distcheck is generated target and is removing permissions from its running directory. chmod -R a-w $(distdir); chmod a+w $(distdir). Because of this permissions eg test reports are not generated. I have myself never run this test (and I'm afraid no one have run this target during this year). Written checking targets are 'make check' for unit test and 'make run-netx-dist-tests' for reproducers tests. However,attached patch [RFC] should fix both issues. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: Makefile.am.diff Type: text/x-patch Size: 812 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110825/07f44264/Makefile.am.diff From jvanek at redhat.com Thu Aug 25 02:50:33 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 25 Aug 2011 11:50:33 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E539007.7040607@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> Message-ID: <4E561AE9.2000908@redhat.com> On 08/23/2011 01:33 PM, Jiri Vanek wrote: > On 08/22/2011 10:55 PM, Deepak Bhole wrote: >> * Jiri Vanek [2011-08-22 09:21]: >>> On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: >>>> On 12:08 Thu 21 Jul , Jiri Vanek wrote: >>>>> >>>>> Hi! >>>>> >>>>> This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. >>>>> During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) >>>>> >>>>> Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. >>>>> >>>> >>>> I suggest taking a look at the autoconf manual and function detection: >>>> >>>> http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions >>>> >>>> Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. >>>> >>> >>> 2011-08-22 Jiri Vanek >>> Added functionality to allow icedtea web to be buildable with >>> rhel5 libraries >>> * testGlibs.cc: testing file. If not compiled, then Rhel5Compatible >>> macro is defined for compiling IcedTeaNPPlugin.cc. >>> * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible >>> functions, added #define sections for use this function instead of glib ones >>> *Makefile.am: (stamps/patch-for-glib): new target, compiling testGlibs.cc >>> ($(PLUGIN_DIR)/%.o): now depends on stamps/patch-for-glib and define >>> Rhel5Compatible if testGlibs.cc was compiled successfully >>> ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ >>> (clean-IcedTeaPlugin): removes compiled testGlibs if exists >>> >> >> Is this RHEL 5 specific or glib version specific? It looks to be the >> latter. In which case no test program should be needed -- just a check >> for glib version and conditional compilation accordingly. > > Very well then :) > I will add this to acinclude.m4 > > > AC_DEFUN_ONCE([IT_GET_GLIBCVERSION], > [ > AC_MSG_CHECKING([for glibc version >= 2.12]) > basicVersion=`ldd --version | grep "@<:@0123456789@:>@\.@<:@0123456789@:>@" | sed "s/ldd (GNU libc) //"`; > echo "- $basicVersion -" > versions=(`echo $basicVersion | sed "s/\./ /g"`); > if test ${versions@<:@0@:>@} -lt 2 ; then > GLIBCVERSION="no" > else > if test ${versions@<:@0@:>@} -gt 2 ; then > GLIBCVERSION="yes" > else > #maybe > if test ${versions@<:@1@:>@} -ge 12 ; then > GLIBCVERSION="yes" > else > GLIBCVERSION="no" > fi; > fi; > fi; > AC_MSG_RESULT([${GLIBCVERSION}]) > AC_SUBST(GLIBCVERSION) > ]) > > > > this will add make variable GLIBCVERSION for conditional compilation in makefile. > The docmentation says "since 2.16" but it can not be true, as rhel5 have 2.5 and have missing those functions, and rhel 6 have 2.12.5 and my F13 have 2.12 and both HAVE those functions .... :-/ But it is not firs time glibc documentation was wrong. > > I still think compilation is much more bulet-proof, but if you are ok with this then I will post updated patch. > > Regards J. > > (maybe useless) ps: @<:@ is replaced by [ and @:>@ by ] during configure generation... no other way here...long live the Autotools :( > pps: I'm happy autotools-lame, please feel free to correct me in above script as much as possible. > > >> >> Cheers, >> Deepak >> >>> >>> Regards J. >> Following Omair's advice, instead of version checking I have used AC_TRY_LINK: 2011-08-25 Jiri Vanek Added functionality to allow icedtea web to be buildable with rhel5 libraries *acinclude.m4: added block to test version of glibc instaled by linking program using glibc functions used in icedtea plugin. * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible functions, added #define sections for use this function instead of glib ones *Makefile.am: ($(PLUGIN_DIR)/%.o): using GLIBCVERSION setted by configure is setting define Rhel5Compatible ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ *configure.ac: added IT_GET_GLIBCVERSION -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatibleByautotools.patch Type: text/x-patch Size: 6177 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110825/64db5fae/rhel5compatibleByautotools.patch From dbhole at redhat.com Thu Aug 25 11:12:04 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 25 Aug 2011 14:12:04 -0400 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E561AE9.2000908@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> Message-ID: <20110825181204.GD25395@redhat.com> * Jiri Vanek [2011-08-25 05:53]: > On 08/23/2011 01:33 PM, Jiri Vanek wrote: > >On 08/22/2011 10:55 PM, Deepak Bhole wrote: > >>* Jiri Vanek [2011-08-22 09:21]: > >>>On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: > >>>>On 12:08 Thu 21 Jul , Jiri Vanek wrote: > >>>>> > >>>>>Hi! > >>>>> > >>>>>This patch is another attempt o make icedtea-web buildable on rhel 5 with older libraries. Before build of plugin itself is started, then testing c++ program is tried to be linked with same options. If this compilation fails, then original IcedTeaNPPlugin.cc is backuped, glibBuildable.patch is applied to IcedTeaNPPlugin.cc and then plugin is linked. > >>>>>During clean-plugin original IcedTeaNPPlugin.cc is restored from backup (and when test application is compiled, then this binary is deleted, also backup is delete) > >>>>> > >>>>>Please, when you will ask me to include this "solution" more to configure (or autotools or anywhere) then I will need a little bit of help. > >>>>> > >>>> > >>>>I suggest taking a look at the autoconf manual and function detection: > >>>> > >>>>http://www.gnu.org/software/autoconf/manual/autoconf.html#Library-Functions > >>>> > >>>>Then, rather than patching, I'd add a header file with #ifdefs to handle both cases. > >>>> > >>> > >>>2011-08-22 Jiri Vanek > >>>Added functionality to allow icedtea web to be buildable with > >>>rhel5 libraries > >>>* testGlibs.cc: testing file. If not compiled, then Rhel5Compatible > >>>macro is defined for compiling IcedTeaNPPlugin.cc. > >>>* plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible > >>>functions, added #define sections for use this function instead of glib ones > >>>*Makefile.am: (stamps/patch-for-glib): new target, compiling testGlibs.cc > >>>($(PLUGIN_DIR)/%.o): now depends on stamps/patch-for-glib and define > >>>Rhel5Compatible if testGlibs.cc was compiled successfully > >>>($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ > >>>(clean-IcedTeaPlugin): removes compiled testGlibs if exists > >>> > >> > >>Is this RHEL 5 specific or glib version specific? It looks to be the > >>latter. In which case no test program should be needed -- just a check > >>for glib version and conditional compilation accordingly. > > > >Very well then :) > >I will add this to acinclude.m4 > > > > > >AC_DEFUN_ONCE([IT_GET_GLIBCVERSION], > >[ > >AC_MSG_CHECKING([for glibc version >= 2.12]) > >basicVersion=`ldd --version | grep "@<:@0123456789@:>@\.@<:@0123456789@:>@" | sed "s/ldd (GNU libc) //"`; > >echo "- $basicVersion -" > >versions=(`echo $basicVersion | sed "s/\./ /g"`); > >if test ${versions@<:@0@:>@} -lt 2 ; then > >GLIBCVERSION="no" > >else > >if test ${versions@<:@0@:>@} -gt 2 ; then > >GLIBCVERSION="yes" > >else > >#maybe > >if test ${versions@<:@1@:>@} -ge 12 ; then > >GLIBCVERSION="yes" > >else > >GLIBCVERSION="no" > >fi; > >fi; > >fi; > >AC_MSG_RESULT([${GLIBCVERSION}]) > >AC_SUBST(GLIBCVERSION) > >]) > > > > > > > >this will add make variable GLIBCVERSION for conditional compilation in makefile. > >The docmentation says "since 2.16" but it can not be true, as rhel5 have 2.5 and have missing those functions, and rhel 6 have 2.12.5 and my F13 have 2.12 and both HAVE those functions .... :-/ But it is not firs time glibc documentation was wrong. > > > >I still think compilation is much more bulet-proof, but if you are ok with this then I will post updated patch. > > > >Regards J. > > > >(maybe useless) ps: @<:@ is replaced by [ and @:>@ by ] during configure generation... no other way here...long live the Autotools :( > >pps: I'm happy autotools-lame, please feel free to correct me in above script as much as possible. > > > > > >> > >>Cheers, > >>Deepak > >> > >>> > >>>Regards J. > >> > > Following Omair's advice, instead of version checking I have used AC_TRY_LINK: > Hi Jiri, Just noticed this now.. why is the variable called GLIBC*? You are checking GLIB, not GLIBC.. Also, I am still not sure why we are checking by functions.. the iterator functions were added between 2.14 and 2.15 according to the git history. So we just need to check if GLIB is < 2.15 and then define RHEL5Compatible.. although I think that should be renamed. It should instead be called -DGLIB214 or something, as this is a glib thing, not a RHEL thing. Comments below: > > $(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc > + if [ "$(GLIBCVERSION)" == "no" ] ; then \ > + RHEL5COMPATIBLE="-DRhel5Compatible" ;\ > + else \ > + RHEL5COMPATIBLE="" ;\ > + fi; \ > + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ Rhel5Compatible should be renamed do GLIB214. Also, the if is not needed, see below. > > +AC_DEFUN_ONCE([IT_GET_GLIBCVERSION], > +[ > +AC_MSG_CHECKING([for glibc version >= 2.12]) > +AC_LANG_PUSH(C++) > +CXXFLAGS_BACKUP=$CXXFLAGS > +CXXFLAGS=$CXXFLAGS" "$GLIB_CFLAGS" "$GTK_CFLAGS" "$GLIB_LIBS" "$GTK_LIB > +AC_TRY_LINK([ > +#include > +],[ > +GHashTable* instance_to_id_map = g_hash_table_new(NULL, NULL); > +GHashTableIter iter; > +gpointer id, instance; > +g_hash_table_iter_init (&iter, instance_to_id_map); > +g_hash_table_iter_next (&iter, &instance, &id); > +g_strcmp0 ("hell", "hello"); > +],[ > +AC_MSG_RESULT(yes) > +GLIBCVERSION="yes" > +],[ > +GLIBCVERSION="no" Just a version check will suffice, and it can set a variable "GLIB214=-DGLIB214" or keep it empty if version is >= 2.15 Cheers, Deepak From ahughes at redhat.com Thu Aug 25 14:25:31 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Thu, 25 Aug 2011 22:25:31 +0100 Subject: IcedTea-Web HEAD distcheck broken In-Reply-To: <4E5605BC.5090602@redhat.com> References: <20110824235406.GY9583@rivendell.middle-earth.co.uk> <4E5605BC.5090602@redhat.com> Message-ID: <20110825212531.GD9583@rivendell.middle-earth.co.uk> On 10:20 Thu 25 Aug , Jiri Vanek wrote: > On 08/25/2011 01:54 AM, Dr Andrew John Hughes wrote: > > I haven't done a build for a while, but was inspired to check when replying to > > Deepak's OpenBSD e-mail. It seems distcheck is now broken with IcedTea-Web > > HEAD: > > > > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/application/application0.jnlp': Permission denied > > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp': Permission denied > > make[1]: *** [clean-netx-unit-tests] Error 1 > > > > Not sure about the branches. > > distcheck is generated target and is removing permissions from its running directory. chmod -R a-w $(distdir); chmod a+w $(distdir). Because of this permissions eg test reports are not generated. That's deliberate to catch errors like this. make distcheck makes the source tree read only. > I have myself never run this test (and I'm afraid no one have run this target during this year). Written checking targets are 'make check' for unit test and 'make run-netx-dist-tests' for reproducers tests. It SHOULD be being run at least before every release. We always did with GNU Classpath and I have with IcedTea7. It did work when IcedTea-Web was first created. You can check the logs to see the changesets I added to fix this. With something as small as IcedTea-Web, there's no reason it shouldn't be run for every change to the build. It ensures it builds with a clean source tree in a separate build directory, relative to the source tree, without altering the source tree. > > However,attached patch [RFC] should fix both issues. > > J. > --- Makefile.am-old 2011-08-25 08:35:30.100367000 +0200 > +++ Makefile.am 2011-08-25 10:05:11.780122124 +0200 > @@ -574,17 +574,18 @@ > rm -f junit-runner-source-files.txt > rm -rf $(JUNIT_RUNNER_DIR) > rm -f $(JUNIT_RUNNER_JAR) > > clean-netx-unit-tests: clean_tests_reports > + if [ -e $(abs_top_builddir) ] ; then chmod -R a+w $(abs_top_builddir) ; fi; > rm -f netx-unit-tests-source-files.txt > rm -rf $(NETX_UNIT_TEST_DIR) > rm -f stamps/netx-unit-tests-compile.stamp > > clean_tests_reports: > - rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ > - rm -f $(TESTS_DIR)/index*.html > + -rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ > + -rm -f $(TESTS_DIR)/index*.html > > clean-netx-dist-tests: clean_tests_reports > rm -f netx-dist-tests-source-files.txt > rm -rf $(JNLP_TESTS_DIR) > rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) This fix is incorrect. You shouldn't be applying write permission to the entire build directory and that's not the problem anyway. You're copying files from the source tree, but not fixing their permissions. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Thu Aug 25 15:09:27 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Aug 2011 22:09:27 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #561|application/x-shellscript |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Aug 25 15:11:09 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Aug 2011 22:11:09 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #562|application/x-trash |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Aug 25 15:17:17 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Aug 2011 22:17:17 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Status|NEW |RESOLVED Component|IcedTea6 |Bootstrapping Resolution| |INVALID --- Comment #5 from Andrew John Hughes 2011-08-25 22:17:16 --- Updating to an unreleased gcj is certainly not necessary. We do regular builds with 4.5 and 4.6 and there are no issues. Please ignore Xerxes' comment. I don't see any obvious problems with your configure options (though export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"; export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" should be replaced by passing --with-parallel-jobs=${MAKEFLAGS/-j} to configure). I do see a problem with your gcj build environment: ln -sf /usr/bin/gcj ${_gcjjvm}/bin/javac gcj is not a replacement for javac; it's a source to native code compiler, not a source to bytecode compiler. That's why this test will be failing; you can check config.log for the details. The following can be used instead: echo "Creating javac script" echo "#!/bin/bash" > ${JDK_DIR}/bin/javac echo "${VM_BINARY} -classpath ${ECJ_JAR} \ org.eclipse.jdt.internal.compiler.batch.Main \"\$@\"" \ >> ${JDK_DIR}/bin/javac chmod +x ${JDK_DIR}/bin/javac which will run ecj. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Thu Aug 25 15:23:18 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 25 Aug 2011 22:23:18 +0000 Subject: [Bug 774] How to build from scrach icedtea 1.10.3/openjdk 1.6.0_b22 on Slack In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=774 --- Comment #6 from Andrew John Hughes 2011-08-25 22:23:18 --- FYI http://fuseyism.com/cgi-bin/hgwebdir.cgi/scripts/rev/f609575fda54 is the script I use to create a JDK from a Classpath-based VM. It depends on a VM (CACAO, JamVM, etc.) and a Classpath install, rather than GCJ. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Fri Aug 26 01:36:41 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 26 Aug 2011 08:36:41 +0000 Subject: [Bug 777] New: crash when calling RubyDateFormat#format Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=777 Summary: crash when calling RubyDateFormat#format Product: IcedTea Version: 6-1.9.8 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: hiroshi_ohtani at fujifilm.co.jp Error message is as follows. I haven't reproduced this bug yet. # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xb506f938, pid=27007, tid=2311035792 # # JRE version: 6.0_20-b20 # Java VM: OpenJDK Server VM (19.0-b09 mixed mode linux-x86 ) # Derivative: IcedTea6 1.9.8 # Distribution: Red Hat Enterprise Linux Server release 5.6 (Tikanga), package rhel-1.22.1.9.8.el5_6-i386 # Problematic frame: # J org.jruby.util.RubyDateFormat.format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # --------------- T H R E A D --------------- Current thread (0x8c828800): JavaThread "RubyThread-6: ./module/DocXServer.rb:152" daemon [_thread_in_Java, id=27047, stack(0x899f9000,0x89bfa000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=128 (), si_addr=0x00000000 Registers: EAX=0xadc8b570, EBX=0x00000000, ECX=0xadc8b590, EDX=0x0000000c ESP=0x89bf6910, EBP=0xadc8b428, ESI=0xadc8b808, EDI=0x0000004c EIP=0xb506f938, CR2=0x00000008, EFLAGS=0x00010202 Register to memory mapping: EAX=0xadc8b570 [error occurred during error reporting (printing registers, top of stack, instructions near pc), id 0xe0000000] Stack: [0x899f9000,0x89bfa000], sp=0x89bf6910, free space=2038k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) J org.jruby.util.RubyDateFormat.format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From jvanek at redhat.com Fri Aug 26 06:35:51 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Aug 2011 15:35:51 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <20110825181204.GD25395@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> <20110825181204.GD25395@redhat.com> Message-ID: <4E57A137.5060308@redhat.com> On 08/25/2011 08:12 PM, Deepak Bhole wrote: > * Jiri Vanek [2011-08-25 05:53]: >> On 08/23/2011 01:33 PM, Jiri Vanek wrote: >>> On 08/22/2011 10:55 PM, Deepak Bhole wrote: >>>> * Jiri Vanek [2011-08-22 09:21]: >>>>> On 07/21/2011 03:21 PM, Dr Andrew John Hughes wrote: >>>>>> On 12:08 Thu 21 Jul , Jiri Vanek wrote: >>>>>>> snip >>>> >> >> Following Omair's advice, instead of version checking I have used AC_TRY_LINK: >> > > Hi Jiri, > > Just noticed this now.. why is the variable called GLIBC*? You are > checking GLIB, not GLIBC.. > > Also, I am still not sure why we are checking by functions.. the > iterator functions were added between 2.14 and 2.15 according to the git > history. So we just need to check if GLIB is< 2.15 and then define > RHEL5Compatible.. although I think that should be renamed. It should > instead be called -DGLIB214 or something, as this is a glib thing, not a > RHEL thing. > > Comments below: > >> >> $(PLUGIN_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc >> + if [ "$(GLIBCVERSION)" == "no" ] ; then \ >> + RHEL5COMPATIBLE="-DRhel5Compatible" ;\ >> + else \ >> + RHEL5COMPATIBLE="" ;\ >> + fi; \ >> + echo "rhel5comaptible="$$RHEL5COMPATIBLE ;\ > > Rhel5Compatible should be renamed do GLIB214. Also, the if is not > needed, see below. > >> >> +AC_DEFUN_ONCE([IT_GET_GLIBCVERSION], >> +[ >> +AC_MSG_CHECKING([for glibc version>= 2.12]) >> +AC_LANG_PUSH(C++) >> +CXXFLAGS_BACKUP=$CXXFLAGS >> +CXXFLAGS=$CXXFLAGS" "$GLIB_CFLAGS" "$GTK_CFLAGS" "$GLIB_LIBS" "$GTK_LIB >> +AC_TRY_LINK([ >> +#include >> +],[ >> +GHashTable* instance_to_id_map = g_hash_table_new(NULL, NULL); >> +GHashTableIter iter; >> +gpointer id, instance; >> +g_hash_table_iter_init (&iter, instance_to_id_map); >> +g_hash_table_iter_next (&iter,&instance,&id); >> +g_strcmp0 ("hell", "hello"); >> +],[ >> +AC_MSG_RESULT(yes) >> +GLIBCVERSION="yes" >> +],[ >> +GLIBCVERSION="no" > > Just a version check will suffice, and it can set a variable > "GLIB214=-DGLIB214" or keep it empty if version is>= 2.15 > > Cheers, > Deepak Based also on attached irc discussion: 2011-08-26 Jiri Vanek Added functionality to allow icedtea web to be buildable with rhel5 libraries *acinclude.m4: added block to test version of glib installed and setting variable GLIB214 to -DGLIB214 if version is <2.15 * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible functions, added #define sections for use this function instead of glib ones *Makefile.am: ($(PLUGIN_DIR)/%.o): using GLIB214 setted by configure to define GLIB214 ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ *configure.ac: added IT_GET_GLIBVERSION -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: discusion Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110826/be1f2b47/discusion.ksh -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatible.diff Type: text/x-patch Size: 5232 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110826/be1f2b47/rhel5compatible.diff From jvanek at redhat.com Fri Aug 26 07:18:23 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 26 Aug 2011 16:18:23 +0200 Subject: IcedTea-Web HEAD distcheck broken In-Reply-To: <20110825212531.GD9583@rivendell.middle-earth.co.uk> References: <20110824235406.GY9583@rivendell.middle-earth.co.uk> <4E5605BC.5090602@redhat.com> <20110825212531.GD9583@rivendell.middle-earth.co.uk> Message-ID: <4E57AB2F.8040503@redhat.com> On 08/25/2011 11:25 PM, Dr Andrew John Hughes wrote: > On 10:20 Thu 25 Aug , Jiri Vanek wrote: >> On 08/25/2011 01:54 AM, Dr Andrew John Hughes wrote: >>> I haven't done a build for a while, but was inspired to check when replying to >>> Deepak's OpenBSD e-mail. It seems distcheck is now broken with IcedTea-Web >>> HEAD: >>> >>> rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/application/application0.jnlp': Permission denied >>> rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp': Permission denied >>> make[1]: *** [clean-netx-unit-tests] Error 1 >>> >>> Not sure about the branches. >> >> distcheck is generated target and is removing permissions from its running directory. chmod -R a-w $(distdir); chmod a+w $(distdir). Because of this permissions eg test reports are not generated. > > That's deliberate to catch errors like this. make distcheck makes the source tree read only. > >> I have myself never run this test (and I'm afraid no one have run this target during this year). Written checking targets are 'make check' for unit test and 'make run-netx-dist-tests' for reproducers tests. > > It SHOULD be being run at least before every release. We always did > with GNU Classpath and I have with IcedTea7. It did work when > IcedTea-Web was first created. You can check the logs to see the > changesets I added to fix this. With something as small as > IcedTea-Web, there's no reason it shouldn't be run for every change to > the build. It ensures it builds with a clean source tree in a > separate build directory, relative to the source tree, without > altering the source tree. Agree... I was afraid you will write something like it. I have checked the logs and i saw your modification. The only one ever done :) > >> >> However,attached patch [RFC] should fix both issues. >> >> J. > >> --- Makefile.am-old 2011-08-25 08:35:30.100367000 +0200 >> +++ Makefile.am 2011-08-25 10:05:11.780122124 +0200 >> @@ -574,17 +574,18 @@ >> rm -f junit-runner-source-files.txt >> rm -rf $(JUNIT_RUNNER_DIR) >> rm -f $(JUNIT_RUNNER_JAR) >> >> clean-netx-unit-tests: clean_tests_reports >> + if [ -e $(abs_top_builddir) ] ; then chmod -R a+w $(abs_top_builddir) ; fi; >> rm -f netx-unit-tests-source-files.txt >> rm -rf $(NETX_UNIT_TEST_DIR) >> rm -f stamps/netx-unit-tests-compile.stamp >> >> clean_tests_reports: >> - rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ >> - rm -f $(TESTS_DIR)/index*.html >> + -rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ >> + -rm -f $(TESTS_DIR)/index*.html >> >> clean-netx-dist-tests: clean_tests_reports >> rm -f netx-dist-tests-source-files.txt >> rm -rf $(JNLP_TESTS_DIR) >> rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) > > > This fix is incorrect. You shouldn't be applying write permission to the entire build > directory and that's not the problem anyway. You're copying files from the source > tree, but not fixing their permissions. Well..agree.. It was shot. But as generated code do " chmod -R a-w $(distdir); chmod a+w $(distdir)" then it can not be cleaned! You know I'm autotolls-lame... Do you have any suggestion here? Thanx J. ps chmod -R o+w $(abs_top_builddir) ; Is also wrong? :) From dbhole at redhat.com Fri Aug 26 11:21:49 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 26 Aug 2011 14:21:49 -0400 Subject: IcedTea-Web HEAD distcheck broken In-Reply-To: <20110825212531.GD9583@rivendell.middle-earth.co.uk> References: <20110824235406.GY9583@rivendell.middle-earth.co.uk> <4E5605BC.5090602@redhat.com> <20110825212531.GD9583@rivendell.middle-earth.co.uk> Message-ID: <20110826182149.GD11282@redhat.com> * Dr Andrew John Hughes [2011-08-25 17:27]: > On 10:20 Thu 25 Aug , Jiri Vanek wrote: > > On 08/25/2011 01:54 AM, Dr Andrew John Hughes wrote: > > > I haven't done a build for a while, but was inspired to check when replying to > > > Deepak's OpenBSD e-mail. It seems distcheck is now broken with IcedTea-Web > > > HEAD: > > > > > > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/application/application0.jnlp': Permission denied > > > rm: cannot remove `/home/andrew/builder/icedtea-web/icedtea-web-1.2pre/_build/tests.build/netx/unit/net/sourceforge/jnlp/templates/template0.jnlp': Permission denied > > > make[1]: *** [clean-netx-unit-tests] Error 1 > > > > > > Not sure about the branches. > > > > distcheck is generated target and is removing permissions from its running directory. chmod -R a-w $(distdir); chmod a+w $(distdir). Because of this permissions eg test reports are not generated. > > That's deliberate to catch errors like this. make distcheck makes the source tree read only. > > > I have myself never run this test (and I'm afraid no one have run this target during this year). Written checking targets are 'make check' for unit test and 'make run-netx-dist-tests' for reproducers tests. > > It SHOULD be being run at least before every release. We always did > with GNU Classpath and I have with IcedTea7. It did work when > IcedTea-Web was first created. You can check the logs to see the > changesets I added to fix this. With something as small as > IcedTea-Web, there's no reason it shouldn't be run for every change to > the build. It ensures it builds with a clean source tree in a > separate build directory, relative to the source tree, without > altering the source tree. > I hadn't run it in the past. I will from now on though. Cheers, Deepak > > > > However,attached patch [RFC] should fix both issues. > > > > J. > > > --- Makefile.am-old 2011-08-25 08:35:30.100367000 +0200 > > +++ Makefile.am 2011-08-25 10:05:11.780122124 +0200 > > @@ -574,17 +574,18 @@ > > rm -f junit-runner-source-files.txt > > rm -rf $(JUNIT_RUNNER_DIR) > > rm -f $(JUNIT_RUNNER_JAR) > > > > clean-netx-unit-tests: clean_tests_reports > > + if [ -e $(abs_top_builddir) ] ; then chmod -R a+w $(abs_top_builddir) ; fi; > > rm -f netx-unit-tests-source-files.txt > > rm -rf $(NETX_UNIT_TEST_DIR) > > rm -f stamps/netx-unit-tests-compile.stamp > > > > clean_tests_reports: > > - rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ > > - rm -f $(TESTS_DIR)/index*.html > > + -rm -rf $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME)/ > > + -rm -f $(TESTS_DIR)/index*.html > > > > clean-netx-dist-tests: clean_tests_reports > > rm -f netx-dist-tests-source-files.txt > > rm -rf $(JNLP_TESTS_DIR) > > rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR) > > > This fix is incorrect. You shouldn't be applying write permission to the entire build > directory and that's not the problem anyway. You're copying files from the source > tree, but not fixing their permissions. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Sat Aug 27 17:20:57 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 28 Aug 2011 00:20:57 +0000 Subject: [Bug 778] New: jar download and server certificate verification deadlock Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=778 Summary: jar download and server certificate verification deadlock Product: IcedTea-Web Version: 1.1.1 Platform: 64-bit URL: http://asenath.cc.cmu.edu/viewer.jnlp OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: NetX AssignedTo: omajid at redhat.com ReportedBy: ataraxia937 at gmail.com CC: unassigned at icedtea.classpath.org Created an attachment (id=564) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=564) JNLP that reproduces the problem When using Java Web Start to launch an app from a web server using an unknown cert, it is impossible to either accept the cert, or to complete the jar downloads. Both the download window and the cert verification window appear at the same time. The downloads do not start because the certificate hasn't been accepted yet. The certificate window will not accept any mouse of keyboard input - apparently the download window blocks it. If I download the web cert myself in some other way, and add it to trusted.certs ahead of time, the jar downloads complete as expected and the app starts. Certificate verification prompts for jar-signer certs do not show this problem, most likely because the download window has already closed. I haven't been able to reproduce this with Oracle's official javaws, either version 6 or 7. This problem is 100% reproducible with the console viewer app served by Dell iDRAC 6 cards. Unfortunately, I can't provide you access to such an app - all that I use are behind my employer's firewall. Instead, I've set up a mock-up that you can use to reproduce and test this on a machine under my control. (Note that you shouldn't expect the app to actually run properly once you do get it to download - it's just a dummy.) To reproduce this: 1. Download my JNLP file from http://asenath.cc.cmu.edu/viewer.jnlp or just use the one attached to this bug report. 2. Run javaws on that file (without importing the webserver's cert into NetX). 3. You should now see both a download window, and a certificate verification window, both of which are unresponsive. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Sat Aug 27 21:10:10 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Sun, 28 Aug 2011 05:10:10 +0100 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E57A137.5060308@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> <20110825181204.GD25395@redhat.com> <4E57A137.5060308@redhat.com> Message-ID: <20110828041010.GA31694@rivendell.middle-earth.co.uk> On 15:35 Fri 26 Aug , Jiri Vanek wrote: snip... > Based also on attached irc discussion: > > 2011-08-26 Jiri Vanek > Added functionality to allow icedtea web to be buildable with > rhel5 libraries > *acinclude.m4: added block to test version of glib installed and > setting variable GLIB214 to -DGLIB214 if version is <2.15 > * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible > functions, added #define sections for use this function instead of glib ones > *Makefile.am: ($(PLUGIN_DIR)/%.o): using GLIB214 setted by configure > to define GLIB214 > ($(PLUGIN_DIR)/IcedTeaPlugin.so): same as ^ > *configure.ac: added IT_GET_GLIBVERSION > Comments below. > dbhole, I can not reply your email now (I'm not on working environment) .. but to clarify : you wrote that iterator appeared in 2.15. It si not true - documentation said 2.16, but on 2.12.5 it is working also.... > jvanek_home: Hmm, it was added in commit d741d3e7: > commit d741d3e7a344622e5a534c34e9e2c0488b2fea4d > Author: Matthias Clasen > Date: Sat Dec 15 03:54:09 2007 +0000 > Add hash table iterators. (#500507, Jean-Yves Lefort) > dbhole, if you are enough with (probably incorrect) check for version, you can look into http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-August/015519.html > dbhole, I see it compiling right now > ldd (GNU libc) 2.13 > Copyright (C) 2011 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > Written by Roland McGrath and Ulrich Drepper. > jvanek_home: If it is incorrect, I am in favor of your approach.. I am not just sure if it is, thats all :) I am going by git history which shows it was added before 2.15 > jvanek_home: That is glibc > jvanek_home: This function is in glib I've already pointed this out once when you posted this patch in an earlier form. > omg > they are different > dbhole, So you are fine with glib-config --version and sedding similar like in http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2011-August/015519.html ok? > with version >2.15 > jvanek_home: Yes, assuming it is correct.. do you have reason to believe it is not? > now ot make sens > * jvanek_home feels like complete idiot > jvanek_home: Ah, cool .. no worries :) Just glad it works! > dbhole, yy, i will check it if the versions match on all available systems and then (probably) will make the version check. Thanx for advice... will create the patch tomorrow > jvanek_home: There is code in the plugin right now that checks for xulrunner versions >= something, and it compiled conditionally.. we can do the same for glibc.. just pass the glibc version via a -D and then have the code do the rest > jvanek_home: np, thanks! > dbhole, glib-config --version > 1.2.10 > jvanek_home: The package is named glib2.. there may be a different .pc file for it > jvanek_home: one sec, trying to get a hold of a rhel5 system > jvanek_home: glib2 and glib are installable in parallel (or they used to be, rather) > jvanek_home: doh! don't have a rhel5 vm :/ .. provisioning one on to-openjdk1 now > .... $ pkg-config --modversion glib-2.0 as you probably found out. Surprised you even have glib 1.2... > dbhole, Is there any better way how to get glib version then by rpm? > rpm -qa | grep ^glib2- > jvanek_home: You can just use autotools: http://www.flameeyes.eu/autotools-mythbuster/pkgconfig/pkg_check_modules.html > dbhole, ok > > > diff -r 36270c76a533 Makefile.am > --- a/Makefile.am Wed Aug 24 15:17:46 2011 -0400 > +++ b/Makefile.am Fri Aug 26 15:23:27 2011 +0200 > @@ -210,6 +210,7 @@ > mkdir -p $(PLUGIN_DIR) && \ > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + $(GLIB214) \ > -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ > -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ > -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ > @@ -225,6 +226,7 @@ > $(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + $(GLIB214) \ > $(PLUGIN_OBJECTS) \ > $(GLIB_LIBS) \ > $(GTK_LIBS) \ This should use $(DEFS). See below. Why do we need this twice? I think the second one is unnecessary, as we are just linking object files. > diff -r 36270c76a533 acinclude.m4 > --- a/acinclude.m4 Wed Aug 24 15:17:46 2011 -0400 > +++ b/acinclude.m4 Fri Aug 26 15:23:27 2011 +0200 > @@ -484,6 +484,18 @@ > AC_SUBST(PKGVERSION) > ]) > > +AC_DEFUN_ONCE([IT_GET_GLIBVERSION], > +[ > +PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16], > +[ > +GLIB214="" > +],[ > +GLIB214=" -DGLIB214 " > +]) > +AC_SUBST([GLIB214]) > +] > +) > + Use AC_DEFINE([LEGACY_GLIB],1); that's the standard way to do it and the naming isn't then tied to the test. Why are you testing for >= 2.16 when the discussion implied the functions appeared in 2.15? You don't need the AC_SUBST as you don't add anything to the Makefile.am, although it doesn't hurt. > AC_DEFUN([IT_CHECK_WITH_GCJ], > [ > AC_MSG_CHECKING([whether to compile ecj natively]) > diff -r 36270c76a533 configure.ac > --- a/configure.ac Wed Aug 24 15:17:46 2011 -0400 > +++ b/configure.ac Fri Aug 26 15:23:27 2011 +0200 > @@ -84,7 +84,7 @@ > # > # Find optional depedencies > # > - > +IT_GET_GLIBVERSION > IT_FIND_OPTIONAL_JAR([rhino], RHINO, > [/usr/share/java/js.jar /usr/share/rhino-1.6/lib/js.jar]) > IT_FIND_OPTIONAL_JAR([junit], JUNIT, This is the wrong place. These aren't optional dependencies. And that empty line shouldn't be removed. > diff -r 36270c76a533 plugin/icedteanp/IcedTeaNPPlugin.cc > --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Aug 24 15:17:46 2011 -0400 > +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Aug 26 15:23:27 2011 +0200 > @@ -47,6 +47,10 @@ > #include > #include > > +#ifdef GLIB214 > +#include > +#endif > + This seems wrong. How does this work if glib.h is not included? Have you checked this still works without the define? > // Liveconnect extension > #include "IcedTeaScriptablePluginObject.h" > #include "IcedTeaNPPlugin.h" > @@ -869,6 +873,16 @@ > PLUGIN_DEBUG ("ITNP_URLNotify return\n"); > } > > +#ifdef GLIB214 > +// Returns key from first item stored in hashtable > +gboolean > +find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) > +{ > + user_data = key; > + return (gboolean)TRUE; > +} > +#endif > + > NPError > get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) > { > @@ -913,19 +927,33 @@ > // valid. So we just pick the first valid one and use it. Proxy/Cookie > // information is not instance specific anyway, it is URL specific. > > +#ifdef GLIB214 > if (browser_functions.getvalueforurl) > { > - GHashTableIter iter; > gpointer id, instance; > > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table, &instance); > > return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); > } else > { > return NPERR_GENERIC_ERROR; > } > +#else > + if (browser_functions.getvalueforurl) > + { > + GHashTableIter iter; > + gpointer id, instance; > + > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + > + return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); > + } else > + { > + return NPERR_GENERIC_ERROR; > + } > +#endif This would be a cleaner patch if the test was inverted i.e. #ifndef LEGACY_GLIB > > #endif > > @@ -1363,21 +1391,38 @@ > > #else > > +#ifdef GLIB214 > if (browser_functions.getvalueforurl) > { > > - // As in get_cookie_info, we use the first active instance > - GHashTableIter iter; > + // As in get_cookie_info, we use the first active instance > gpointer id, instance; > > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table, &instance); > > browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); > } else > { > return NPERR_GENERIC_ERROR; > } > +#else > + if (browser_functions.getvalueforurl) > + { > + > + // As in get_cookie_info, we use the first active instance > + GHashTableIter iter; > + gpointer id, instance; > + > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + > + browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); > + } else > + { > + return NPERR_GENERIC_ERROR; > + } > +#endif > + Likewise. Could this not be factored out into a common function or define so we don't have this duplication? > #endif > > return NPERR_NO_ERROR; > @@ -1403,6 +1448,17 @@ > return FALSE; > } > > +#ifdef GLIB214 > +int > +strcmp0(char *str1, char *str2) > +{ > + if (str1 != NULL) > + return str2 != NULL ? strcmp(str1, str2) : 1; > + else // str1 == NULL > + return str2 != NULL ? 1 : 0; > +} > +#endif > + Just define g_strcmp0 here and the function below should work unchanged. > // remove all components from LD_LIBRARY_PATH, which start with > // MOZILLA_FIVE_HOME; firefox has its own NSS based security provider, > // which conflicts with the one configured in nss.cfg. > @@ -1424,7 +1480,11 @@ > components = g_strsplit (path_old, ":", -1); > for (i1 = 0, i2 = 0; components[i1] != NULL; i1++) > { > +#ifdef GLIB214 > + if (strcmp0 (components[i1], moz_home) == 0 > +#else > if (g_strcmp0 (components[i1], moz_home) == 0 > +#endif > || g_str_has_prefix (components[i1], moz_home)) > components[i2] = components[i1]; > else -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Sat Aug 27 21:31:45 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Sun, 28 Aug 2011 05:31:45 +0100 Subject: IcedTea-Web HEAD distcheck broken In-Reply-To: <4E57AB2F.8040503@redhat.com> References: <20110824235406.GY9583@rivendell.middle-earth.co.uk> <4E5605BC.5090602@redhat.com> <20110825212531.GD9583@rivendell.middle-earth.co.uk> <4E57AB2F.8040503@redhat.com> Message-ID: <20110828043145.GD31694@rivendell.middle-earth.co.uk> On 16:18 Fri 26 Aug , Jiri Vanek wrote: snip... > > > > This fix is incorrect. You shouldn't be applying write permission to the entire build > > directory and that's not the problem anyway. You're copying files from the source > > tree, but not fixing their permissions. > > Well..agree.. It was shot. But as generated code do " chmod -R a-w $(distdir); chmod a+w $(distdir)" then it can not be cleaned! > You know I'm autotolls-lame... Do you have any suggestion here? > Not yet. Still looking into what's actually going wrong here. I did spot another problem which is that it should have failed way earlier during the test but didn't due to the use of unnecessary escaping joining commands together. It hits a permission denied error several times in copying over templates, but continues to try (and fail) the tests. > Thanx J. > > ps chmod -R o+w $(abs_top_builddir) ; Is also wrong? :) -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Sun Aug 28 09:50:50 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 28 Aug 2011 16:50:50 +0000 Subject: [Bug 778] jar download and server certificate verification deadlock In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=778 Ray Kohler changed: What |Removed |Added ---------------------------------------------------------------------------- Version|1.1.1 |hg --- Comment #1 from Ray Kohler 2011-08-28 16:50:49 --- I just retested this against hg tip and the problem is still present there. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From jvanek at redhat.com Mon Aug 29 04:03:24 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 29 Aug 2011 13:03:24 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <20110828041010.GA31694@rivendell.middle-earth.co.uk> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> <20110825181204.GD25395@redhat.com> <4E57A137.5060308@redhat.com> <20110828041010.GA31694@rivendell.middle-earth.co.uk> Message-ID: <4E5B71FC.9010403@redhat.com> On 08/28/2011 06:10 AM, Dr Andrew John Hughes wrote: > On 15:35 Fri 26 Aug , Jiri Vanek wrote: > > snip... > > Comments below. > >> dbhole, I can not reply your email now (I'm not on working environment) .. but to clarify : you wrote that iterator appeared in 2.15. It si not true - documentation said 2.16, but on 2.12.5 it is working also.... ... >> jvanek_home: This function is in glib > > I've already pointed this out once when you posted this patch in an earlier form. Yes you did... I had "luckily" overlooked it and it caused me a lot of troubles:-/ > >> omg ... >> jvanek_home: doh! don't have a rhel5 vm :/ .. provisioning one on to-openjdk1 now >> .... > > $ pkg-config --modversion glib-2.0 > > as you probably found out. Surprised you even have glib 1.2... yy;) > ...> >> diff -r 36270c76a533 Makefile.am >> --- a/Makefile.am Wed Aug 24 15:17:46 2011 -0400 >> +++ b/Makefile.am Fri Aug 26 15:23:27 2011 +0200 >> @@ -210,6 +210,7 @@ >> mkdir -p $(PLUGIN_DIR)&& \ >> cd $(PLUGIN_DIR)&& \ >> $(CXX) $(CXXFLAGS) \ >> + $(GLIB214) \ >> -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ >> -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ >> -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ >> @@ -225,6 +226,7 @@ >> $(PLUGIN_DIR)/IcedTeaPlugin.so: $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) >> cd $(PLUGIN_DIR)&& \ >> $(CXX) $(CXXFLAGS) \ >> + $(GLIB214) \ >> $(PLUGIN_OBJECTS) \ >> $(GLIB_LIBS) \ >> $(GTK_LIBS) \ > > This should use $(DEFS). See below. refactored (see updated patch ad end of this email) > Why do we need this twice? I think the second one is unnecessary, as we are > just linking object files. Right! Second call removed. > >> diff -r 36270c76a533 acinclude.m4 >> --- a/acinclude.m4 Wed Aug 24 15:17:46 2011 -0400 >> +++ b/acinclude.m4 Fri Aug 26 15:23:27 2011 +0200 >> @@ -484,6 +484,18 @@ >> AC_SUBST(PKGVERSION) >> ]) >> >> +AC_DEFUN_ONCE([IT_GET_GLIBVERSION], >> +[ >> +PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0>= 2.16], >> +[ >> +GLIB214="" >> +],[ >> +GLIB214=" -DGLIB214 " >> +]) >> +AC_SUBST([GLIB214]) >> +] >> +) >> + > > Use AC_DEFINE([LEGACY_GLIB],1); that's the standard way to do > it and the naming isn't then tied to the test. done > > Why are you testing for>= 2.16 when the discussion implied > the functions appeared in 2.15? As Deepak dig-out, it was committed into 2.15, but documentation is clear that those functions are available since 2.16, so I have used this officially announced version. > > You don't need the AC_SUBST as you don't add anything to the > Makefile.am, although it doesn't hurt. ok, removed. > >> AC_DEFUN([IT_CHECK_WITH_GCJ], >> [ >> AC_MSG_CHECKING([whether to compile ecj natively]) >> diff -r 36270c76a533 configure.ac >> --- a/configure.ac Wed Aug 24 15:17:46 2011 -0400 >> +++ b/configure.ac Fri Aug 26 15:23:27 2011 +0200 >> @@ -84,7 +84,7 @@ >> # >> # Find optional depedencies >> # >> - >> +IT_GET_GLIBVERSION >> IT_FIND_OPTIONAL_JAR([rhino], RHINO, >> [/usr/share/java/js.jar /usr/share/rhino-1.6/lib/js.jar]) >> IT_FIND_OPTIONAL_JAR([junit], JUNIT, > > This is the wrong place. These aren't optional dependencies. > And that empty line shouldn't be removed. > >> diff -r 36270c76a533 plugin/icedteanp/IcedTeaNPPlugin.cc >> --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Aug 24 15:17:46 2011 -0400 >> +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Aug 26 15:23:27 2011 +0200 >> @@ -47,6 +47,10 @@ >> #include >> #include >> >> +#ifdef GLIB214 >> +#include >> +#endif >> + > > This seems wrong. How does this work if glib.h is not included? > Have you checked this still works without the define? hmhm.. It is long time since I have added this include into this patch. Now I have try to compile both (defined and undefined GLIB214) and it is compiling fine, So i have removed this include utterly. > >> // Liveconnect extension >> #include "IcedTeaScriptablePluginObject.h" snip >> + } else >> + { >> + return NPERR_GENERIC_ERROR; >> + } >> +#endif > > This would be a cleaner patch if the test was inverted i.e. #ifndef LEGACY_GLIB Although I do not see the point why it is cleaner - done. > >> >> #endif >> >> @@ -1363,21 +1391,38 @@ >> >> #else >> >> +#ifdef GLIB214 >> if (browser_functions.getvalueforurl) >> { >> >> - // As in get_cookie_info, we use the first active instance >> - GHashTableIter iter; >> + // As in get_cookie_info, we use the first active instance >> gpointer id, instance; >> >> - g_hash_table_iter_init (&iter, instance_to_id_map); >> - g_hash_table_iter_next (&iter,&instance,&id); >> + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table,&instance); >> >> browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); >> } else >> { >> return NPERR_GENERIC_ERROR; >> } >> +#else >> + if (browser_functions.getvalueforurl) >> + { >> + >> + // As in get_cookie_info, we use the first active instance >> + GHashTableIter iter; >> + gpointer id, instance; >> + >> + g_hash_table_iter_init (&iter, instance_to_id_map); >> + g_hash_table_iter_next (&iter,&instance,&id); >> + >> + browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); >> + } else >> + { >> + return NPERR_GENERIC_ERROR; >> + } >> +#endif >> + > > Likewise. > Could this not be factored out into a common function or define so we don't have this duplication? I have refactored those two (four) duplicated blocks into state you can see in rhel5compatible-duplicateTableSearch.diff. My intentions for this patch were to touch the code I do not understand full as seldom as possible, but as you are suggesting to remove this duplicity i have also extracted those 6lines into separatedmethod. (rhel5compatible.diff) Although I have tested those binaries on rhel5,6 and f13 and everything seems to be working, I'm not 100% sure whether I did not broke something. > >> #endif >> >> return NPERR_NO_ERROR; >> @@ -1403,6 +1448,17 @@ >> return FALSE; >> } >> >> +#ifdef GLIB214 >> +int >> +strcmp0(char *str1, char *str2) >> +{ >> + if (str1 != NULL) >> + return str2 != NULL ? strcmp(str1, str2) : 1; >> + else // str1 == NULL >> + return str2 != NULL ? 1 : 0; >> +} >> +#endif >> + > > Just define g_strcmp0 here and the function below should work unchanged. done. Thanx for this. > >> // remove all components from LD_LIBRARY_PATH, which start with >> // MOZILLA_FIVE_HOME; firefox has its own NSS based security provider, >> // which conflicts with the one configured in nss.cfg. >> @@ -1424,7 +1480,11 @@ >> components = g_strsplit (path_old, ":", -1); >> for (i1 = 0, i2 = 0; components[i1] != NULL; i1++) >> { >> +#ifdef GLIB214 >> + if (strcmp0 (components[i1], moz_home) == 0 >> +#else >> if (g_strcmp0 (components[i1], moz_home) == 0 >> +#endif >> || g_str_has_prefix (components[i1], moz_home)) >> components[i2] = components[i1]; >> else > > The patch have shrunk a lot, and now I'm not absolutely sure that I did not broke something. My intentions for this were to touch the code I do not understand full as seldom as possible, but due to reviewing issues i made much more changes. Please note that I have touched and reused $DEFS, and moved block of code in IcedTeaNPPlugin.cc into separate method. Although I have tested those binaries on rhel5,6 and f13 and everything seems to be working, I'm really not 100% sure. Best Regards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatible.diff Type: text/x-patch Size: 3885 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110829/edd698f7/rhel5compatible.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatible-duplicateTableSearch.diff Type: text/x-patch Size: 3938 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110829/edd698f7/rhel5compatible-duplicateTableSearch.diff From dbhole at redhat.com Mon Aug 29 12:54:57 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 29 Aug 2011 15:54:57 -0400 Subject: [icedtea-web] RFC: Patch to fix proxy detection with FF has only 1 profile Message-ID: <20110829195452.GC32675@redhat.com> Hi, This patch is based on one from Lukas Zachar , and it fixes a javaws issue whereby if Firefox has only 1 profile defined, javaws does not use the proxy info. ChangeLog: 2011-08-29 Deepak Bhole RH734081: Javaws cannot use proxy settings from Firefox * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java (find): Only process Profile sections. Do not throw an exception if a Default= line is not found if is not guaranteed to exist. Okay for HEAD and 1.1? Cheers, Deepak -------------- next part -------------- diff -r 36270c76a533 NEWS --- a/NEWS Wed Aug 24 15:17:46 2011 -0400 +++ b/NEWS Mon Aug 29 15:53:41 2011 -0400 @@ -22,6 +22,7 @@ - PR771: IcedTea-Web certificate verification code does not use the right API - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 + - RH734081: Javaws cannot use proxy settings from Firefox New in release 1.1 (2011-XX-XX): * Security updates diff -r 36270c76a533 netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java --- a/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Wed Aug 24 15:17:46 2011 -0400 +++ b/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Mon Aug 29 15:53:41 2011 -0400 @@ -93,7 +93,7 @@ } line = line.trim(); - if (line.startsWith("[") && line.endsWith("]")) { + if (line.startsWith("[Profile") && line.endsWith("]")) { if (foundDefaultSection) { break; } @@ -115,7 +115,7 @@ reader.close(); } - if (!foundDefaultSection) { + if (!foundDefaultSection && linesInSection.size() == 0) { throw new FileNotFoundException("preferences file"); } From ddadacha at redhat.com Mon Aug 29 13:53:29 2011 From: ddadacha at redhat.com (Danesh Dadachanji) Date: Mon, 29 Aug 2011 16:53:29 -0400 Subject: [icedtea-web] RFC: Patch to fix proxy detection with FF has only 1 profile In-Reply-To: <20110829195452.GC32675@redhat.com> References: <20110829195452.GC32675@redhat.com> Message-ID: <4E5BFC49.5020001@redhat.com> On 29/08/11 03:54 PM, Deepak Bhole wrote: > Hi, > > This patch is based on one from Lukas Zachar com>, and it fixes a javaws issue whereby if Firefox has only 1 profile > defined, javaws does not use the proxy info. > > ChangeLog: > 2011-08-29 Deepak Bhole > > RH734081: Javaws cannot use proxy settings from Firefox > * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java > (find): Only process Profile sections. Do not throw an exception if a > Default= line is not found if is not guaranteed to exist. Guessing this is just a typo here. Otherwise, looks good to me! > > Okay for HEAD and 1.1? > > Cheers, > Deepak From dbhole at icedtea.classpath.org Mon Aug 29 14:04:40 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 29 Aug 2011 21:04:40 +0000 Subject: /hg/icedtea-web: RH734081: Javaws cannot use proxy settings from... Message-ID: changeset 7afd916031fa in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=7afd916031fa author: Deepak Bhole date: Mon Aug 29 17:02:36 2011 -0400 RH734081: Javaws cannot use proxy settings from Firefox Based on patch from Lukas Zachar 2011-08-29 Deepak Bhole * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java (find): Only process Profile sections. Do not throw an exception if a Default= line is not found since it is not guaranteed to exist. diffstat: ChangeLog | 8 ++++++++ NEWS | 1 + netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diffs (47 lines): diff -r 36270c76a533 -r 7afd916031fa ChangeLog --- a/ChangeLog Wed Aug 24 15:17:46 2011 -0400 +++ b/ChangeLog Mon Aug 29 17:02:36 2011 -0400 @@ -1,3 +1,11 @@ +2011-08-29 Deepak Bhole + + RH734081: Javaws cannot use proxy settings from Firefox + Based on patch from Lukas Zachar + * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java + (find): Only process Profile sections. Do not throw an exception if a + Default= line is not found since it is not guaranteed to exist. + 2011-08-24 Deepak Bhole RH718693: MindTerm SSH Applet doesn't work diff -r 36270c76a533 -r 7afd916031fa NEWS --- a/NEWS Wed Aug 24 15:17:46 2011 -0400 +++ b/NEWS Mon Aug 29 17:02:36 2011 -0400 @@ -22,6 +22,7 @@ - PR771: IcedTea-Web certificate verification code does not use the right API - PR742: IcedTea-Web checks certs only upto 1 level deep before declaring them untrusted. - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 + - RH734081: Javaws cannot use proxy settings from Firefox New in release 1.1 (2011-XX-XX): * Security updates diff -r 36270c76a533 -r 7afd916031fa netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java --- a/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Wed Aug 24 15:17:46 2011 -0400 +++ b/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Mon Aug 29 17:02:36 2011 -0400 @@ -93,7 +93,7 @@ } line = line.trim(); - if (line.startsWith("[") && line.endsWith("]")) { + if (line.startsWith("[Profile") && line.endsWith("]")) { if (foundDefaultSection) { break; } @@ -115,7 +115,7 @@ reader.close(); } - if (!foundDefaultSection) { + if (!foundDefaultSection && linesInSection.size() == 0) { throw new FileNotFoundException("preferences file"); } From dbhole at icedtea.classpath.org Mon Aug 29 14:04:50 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 29 Aug 2011 21:04:50 +0000 Subject: /hg/release/icedtea-web-1.1: RH734081: Javaws cannot use proxy s... Message-ID: changeset 506fd0d95206 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=506fd0d95206 author: Deepak Bhole date: Mon Aug 29 17:02:36 2011 -0400 RH734081: Javaws cannot use proxy settings from Firefox Based on patch from Lukas Zachar 2011-08-29 Deepak Bhole * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java (find): Only process Profile sections. Do not throw an exception if a Default= line is not found since it is not guaranteed to exist. diffstat: ChangeLog | 8 ++++++++ NEWS | 1 + netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diffs (47 lines): diff -r 8214ff4fe80c -r 506fd0d95206 ChangeLog --- a/ChangeLog Wed Aug 24 15:17:46 2011 -0400 +++ b/ChangeLog Mon Aug 29 17:02:36 2011 -0400 @@ -1,3 +1,11 @@ +2011-08-29 Deepak Bhole + + RH734081: Javaws cannot use proxy settings from Firefox + Based on patch from Lukas Zachar + * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java + (find): Only process Profile sections. Do not throw an exception if a + Default= line is not found since it is not guaranteed to exist. + 2011-08-24 Deepak Bhole RH718693: MindTerm SSH Applet doesn't work diff -r 8214ff4fe80c -r 506fd0d95206 NEWS --- a/NEWS Wed Aug 24 15:17:46 2011 -0400 +++ b/NEWS Mon Aug 29 17:02:36 2011 -0400 @@ -15,6 +15,7 @@ Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 + - RH734081: Javaws cannot use proxy settings from Firefox New in release 1.1.1 (2011-07-20): * Security updates: diff -r 8214ff4fe80c -r 506fd0d95206 netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java --- a/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Wed Aug 24 15:17:46 2011 -0400 +++ b/netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java Mon Aug 29 17:02:36 2011 -0400 @@ -93,7 +93,7 @@ } line = line.trim(); - if (line.startsWith("[") && line.endsWith("]")) { + if (line.startsWith("[Profile") && line.endsWith("]")) { if (foundDefaultSection) { break; } @@ -115,7 +115,7 @@ reader.close(); } - if (!foundDefaultSection) { + if (!foundDefaultSection && linesInSection.size() == 0) { throw new FileNotFoundException("preferences file"); } From dbhole at redhat.com Mon Aug 29 14:05:03 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 29 Aug 2011 17:05:03 -0400 Subject: [icedtea-web] RFC: Patch to fix proxy detection with FF has only 1 profile In-Reply-To: <4E5BFC49.5020001@redhat.com> References: <20110829195452.GC32675@redhat.com> <4E5BFC49.5020001@redhat.com> Message-ID: <20110829210502.GD32675@redhat.com> * Danesh Dadachanji [2011-08-29 16:53]: > On 29/08/11 03:54 PM, Deepak Bhole wrote: > >Hi, > > > >This patch is based on one from Lukas Zachar >com>, and it fixes a javaws issue whereby if Firefox has only 1 profile > >defined, javaws does not use the proxy info. > > > >ChangeLog: > >2011-08-29 Deepak Bhole > > > > RH734081: Javaws cannot use proxy settings from Firefox > > * netx/net/sourceforge/jnlp/browser/FirefoxPreferencesFinder.java > > (find): Only process Profile sections. Do not throw an exception if a > > Default= line is not found if is not guaranteed to exist. > > Guessing this is just a typo here. Otherwise, looks good to me! > Thanks! Fixed and pushed. Cheers, Deepak > > > > >Okay for HEAD and 1.1? > > > >Cheers, > >Deepak From dbhole at redhat.com Mon Aug 29 14:17:29 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 29 Aug 2011 17:17:29 -0400 Subject: RFC: Patch to fix regression in 1.10 (S6826104/RH730015) Message-ID: <20110829211729.GE32675@redhat.com> Hi, This patch fixes S6826104/RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog. The bug does not exist in upstream OpenJDK6 and is a regression in IcedTea6 caused by 6693253-security_warning.patch. That fix was also applied to OpenJDK7, which caused S6826104 which was subsequently fixed: http://hg.openjdk.java.net/jdk7/awt/jdk/rev/c6503f2a93d1 Attached patch contains the above fix. 1.10 and HEAD are affected. Okay for both? Cheers, Deepak -------------- next part -------------- diff -r 759b17771e6a ChangeLog --- a/ChangeLog Fri Aug 19 13:36:29 2011 +0200 +++ b/ChangeLog Mon Aug 29 17:10:15 2011 -0400 @@ -1,3 +1,12 @@ +2011-08-29 Deepak Bhole + + S6826104, RH730015: Getting a NullPointer exception when clicked on Application & + Toolkit Modal dialog + * Makefile.am: Apply new patch for S6826104. + * NEWS: Updated. + * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: + New patch that fixes S6826104. + 2011-08-19 Xerxes R?nby JamVM diff -r 759b17771e6a Makefile.am --- a/Makefile.am Fri Aug 19 13:36:29 2011 +0200 +++ b/Makefile.am Mon Aug 29 17:10:15 2011 -0400 @@ -376,7 +376,8 @@ patches/pr690-shark-jit-hs20.patch \ patches/pr696-zero-fast_aldc-hs20.patch \ patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch \ - patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch + patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch \ + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 759b17771e6a NEWS --- a/NEWS Fri Aug 19 13:36:29 2011 +0200 +++ b/NEWS Mon Aug 29 17:10:15 2011 -0400 @@ -20,6 +20,7 @@ - PR744: icedtea6-1.10.2 : patching error - PR752: ImageFormatException extends Exception not RuntimeException - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Import of OpenJDK6 b22 including upgrade to HotSpot 20 - S7023111: Add webrev script to make/scripts - S6909331: Add vsvars.sh to the jdk repository (handy cygwin way to get vcvars32.bat run) diff -r 759b17771e6a patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch Mon Aug 29 17:10:15 2011 -0400 @@ -0,0 +1,17 @@ +diff -ur openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:38:17.829462436 -0400 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:41:05.611491530 -0400 +@@ -149,6 +149,13 @@ + + params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect())); + ++ SunToolkit.awtLock(); ++ try { ++ windows.add(this); ++ } finally { ++ SunToolkit.awtUnlock(); ++ } ++ + cachedFocusableWindow = isFocusableWindow(); + + Font f = target.getFont(); From ahughes at redhat.com Mon Aug 29 20:22:55 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Tue, 30 Aug 2011 04:22:55 +0100 Subject: RFC: Patch to fix regression in 1.10 (S6826104/RH730015) In-Reply-To: <20110829211729.GE32675@redhat.com> References: <20110829211729.GE32675@redhat.com> Message-ID: <20110830032255.GE31694@rivendell.middle-earth.co.uk> On 17:17 Mon 29 Aug , Deepak Bhole wrote: > Hi, > > This patch fixes S6826104/RH730015: Getting a NullPointer exception when > clicked on Application & Toolkit Modal dialog. > > The bug does not exist in upstream OpenJDK6 and is a regression in > IcedTea6 caused by 6693253-security_warning.patch. Well no because OpenJDK6 lags behind us and there's a mass of other patches that would need to go upstream first. > That fix was also > applied to OpenJDK7, which caused S6826104 which was subsequently fixed: > http://hg.openjdk.java.net/jdk7/awt/jdk/rev/c6503f2a93d1 Well yes because it was backported from 7. > > Attached patch contains the above fix. > > 1.10 and HEAD are affected. Okay for both? > Fine, assuming you change the NEWS patch appropriately to apply to 1.10.4 on the 1.10 branch. > Cheers, > Deepak > diff -r 759b17771e6a ChangeLog > --- a/ChangeLog Fri Aug 19 13:36:29 2011 +0200 > +++ b/ChangeLog Mon Aug 29 17:10:15 2011 -0400 > @@ -1,3 +1,12 @@ > +2011-08-29 Deepak Bhole > + > + S6826104, RH730015: Getting a NullPointer exception when clicked on Application & > + Toolkit Modal dialog > + * Makefile.am: Apply new patch for S6826104. > + * NEWS: Updated. > + * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: > + New patch that fixes S6826104. > + > 2011-08-19 Xerxes R?nby > > JamVM > diff -r 759b17771e6a Makefile.am > --- a/Makefile.am Fri Aug 19 13:36:29 2011 +0200 > +++ b/Makefile.am Mon Aug 29 17:10:15 2011 -0400 > @@ -376,7 +376,8 @@ > patches/pr690-shark-jit-hs20.patch \ > patches/pr696-zero-fast_aldc-hs20.patch \ > patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch \ > - patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch > + patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch \ > + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch > > if WITH_RHINO > ICEDTEA_PATCHES += \ > diff -r 759b17771e6a NEWS > --- a/NEWS Fri Aug 19 13:36:29 2011 +0200 > +++ b/NEWS Mon Aug 29 17:10:15 2011 -0400 > @@ -20,6 +20,7 @@ > - PR744: icedtea6-1.10.2 : patching error > - PR752: ImageFormatException extends Exception not RuntimeException > - PR732: Use xsltproc for bootstrap xslt in place of Xerces/Xalan > + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog > * Import of OpenJDK6 b22 including upgrade to HotSpot 20 > - S7023111: Add webrev script to make/scripts > - S6909331: Add vsvars.sh to the jdk repository (handy cygwin way to get vcvars32.bat run) > diff -r 759b17771e6a patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch Mon Aug 29 17:10:15 2011 -0400 > @@ -0,0 +1,17 @@ > +diff -ur openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java > +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:38:17.829462436 -0400 > ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:41:05.611491530 -0400 > +@@ -149,6 +149,13 @@ > + > + params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect())); > + > ++ SunToolkit.awtLock(); > ++ try { > ++ windows.add(this); > ++ } finally { > ++ SunToolkit.awtUnlock(); > ++ } > ++ > + cachedFocusableWindow = isFocusableWindow(); > + > + Font f = target.getFont(); -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From jvanek at redhat.com Tue Aug 30 01:57:50 2011 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 30 Aug 2011 10:57:50 +0200 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries Message-ID: <4E5CA60E.4020402@redhat.com> Forgotten changelogs: for rhel5compatible.diff: 2011-08-30 Jiri Vanek Added functionality to allow icedtea web to be buildable with rhel5 libraries. *configure.ac: added IT_GET_GLIBVERSION check. *acinclude.m4: added IT_GET_GLIBVERSION definition block to test. version of glib installed and add GLIB214 define macro into. variable DEFS if version is <2.16. * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible functions (g_strcmp0 and find_first_item_in_hash_table), added define. sections for use this function instead of glib ones. Duplicated code moved into function getFirstTableInstance(). *Makefile.am: ($(PLUGIN_DIR)/%.o): using DEFS setted by configure for compilation for rhel5compatible-duplicateTableSearch.diff: 2011-08-30 Jiri Vanek Added functionality to allow icedtea web to be buildable with rhel5 libraries. *configure.ac: added IT_GET_GLIBVERSION check. *acinclude.m4: added IT_GET_GLIBVERSION definition block to test version of glib installed and add GLIB214 define macro into variable DEFS if version is <2.16. * plugin/icedteanp/IcedTeaNPPlugin.cc: added replacements for incompatible functions (g_strcmp0 and find_first_item_in_hash_table), added define sections for use this function instead of glib ones. *Makefile.am: ($(PLUGIN_DIR)/%.o): using DEFS setted by configure for compilation. -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatible.diff Type: text/x-patch Size: 3886 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110830/7b9e0e18/rhel5compatible.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: rhel5compatible-duplicateTableSearch.diff Type: text/x-patch Size: 3939 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20110830/7b9e0e18/rhel5compatible-duplicateTableSearch.diff From xranby at icedtea.classpath.org Tue Aug 30 03:28:36 2011 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Tue, 30 Aug 2011 10:28:36 +0000 Subject: /hg/icedtea6: CACAO: CA149: Used wrong class loader, Updated to ... Message-ID: changeset 9468557f98c0 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9468557f98c0 author: Xerxes Ranby date: Tue Aug 30 12:30:04 2011 +0200 CACAO: CA149: Used wrong class loader, Updated to 2011-08-29 revision. 2011-08-30 Xerxes Ranby CACAO - CA149: Used wrong class loader. - src/vm/javaobjects.cpp (java_lang_reflect_Method::invoke): [OPENJDK] stack index of caller was off by one, causing many apt (Annotation Processing Tool) failures. * NEWS: Updated. * Makefile.am (CACAO_VERSION): Updated CACAO to 2011-08-29 revision. (CACAO_SHA256SUM): Updated. diffstat: ChangeLog | 12 ++++++++++++ Makefile.am | 4 ++-- NEWS | 4 ++++ 3 files changed, 18 insertions(+), 2 deletions(-) diffs (48 lines): diff -r 759b17771e6a -r 9468557f98c0 ChangeLog --- a/ChangeLog Fri Aug 19 13:36:29 2011 +0200 +++ b/ChangeLog Tue Aug 30 12:30:04 2011 +0200 @@ -1,3 +1,15 @@ +2011-08-30 Xerxes R??nby + + CACAO + - CA149: Used wrong class loader. + - src/vm/javaobjects.cpp (java_lang_reflect_Method::invoke): + [OPENJDK] stack index of caller was off by one, causing many apt + (Annotation Processing Tool) failures. + * NEWS: Updated. + * Makefile.am + (CACAO_VERSION): Updated CACAO to 2011-08-29 revision. + (CACAO_SHA256SUM): Updated. + 2011-08-19 Xerxes R??nby JamVM diff -r 759b17771e6a -r 9468557f98c0 Makefile.am --- a/Makefile.am Fri Aug 19 13:36:29 2011 +0200 +++ b/Makefile.am Tue Aug 30 12:30:04 2011 +0200 @@ -5,8 +5,8 @@ OPENJDK_VERSION = b23 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ -CACAO_VERSION = 12d5cd5d2dfa -CACAO_SHA256SUM = f4a93710709f43e203d79c1c8bb73f14ebcca41be75887fb92308b86747312c5 +CACAO_VERSION = 4549072ab2de +CACAO_SHA256SUM = ec097ce96f047abbaeab4faab752c121d29f08bdeae358038a0b7cde03361d07 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 diff -r 759b17771e6a -r 9468557f98c0 NEWS --- a/NEWS Fri Aug 19 13:36:29 2011 +0200 +++ b/NEWS Tue Aug 30 12:30:04 2011 +0200 @@ -370,7 +370,11 @@ - S6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO + - CA149: Used wrong class loader. - CA159: Exception handler blocks / register mixup. + - src/vm/javaobjects.cpp (java_lang_reflect_Method::invoke): [OPENJDK] stack + index of caller was off by one, causing many apt + (Annotation Processing Tool) failures. - Set thread to RUNNABLE during Thread.start. - Removed state-setting function call that would be done by the thread itself, creating a nasty race. From dbhole at redhat.com Tue Aug 30 06:58:57 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 30 Aug 2011 09:58:57 -0400 Subject: distcheck in IcedTea6 HEAD broken Message-ID: <20110830135856.GF32675@redhat.com> Hi, distcheck is currently failing in IcedTea6 HEAD: config.status: executing depfiles commands make: *** No rule to make target `arm_port', needed by `distdir'. Stop. Deepak From dbhole at icedtea.classpath.org Tue Aug 30 08:56:55 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Tue, 30 Aug 2011 15:56:55 +0000 Subject: /hg/icedtea6: S6826104, RH730015: Getting a NullPointer exceptio... Message-ID: changeset b9ac502a6189 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b9ac502a6189 author: Deepak Bhole date: Tue Aug 30 11:30:12 2011 -0400 S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Makefile.am: Apply new patch for S6826104. * NEWS: Updated. * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.pa tch: New patch that fixes S6826104. diffstat: ChangeLog | 9 +++++ Makefile.am | 3 +- NEWS | 1 + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch | 16 ++++++++++ 4 files changed, 28 insertions(+), 1 deletions(-) diffs (61 lines): diff -r 9468557f98c0 -r b9ac502a6189 ChangeLog --- a/ChangeLog Tue Aug 30 12:30:04 2011 +0200 +++ b/ChangeLog Tue Aug 30 11:30:12 2011 -0400 @@ -1,3 +1,12 @@ +2011-08-30 Deepak Bhole + + S6826104, RH730015: Getting a NullPointer exception when clicked on Application & + Toolkit Modal dialog + * Makefile.am: Apply new patch for S6826104. + * NEWS: Updated. + * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: + New patch that fixes S6826104. + 2011-08-30 Xerxes R??nby CACAO diff -r 9468557f98c0 -r b9ac502a6189 Makefile.am --- a/Makefile.am Tue Aug 30 12:30:04 2011 +0200 +++ b/Makefile.am Tue Aug 30 11:30:12 2011 -0400 @@ -376,7 +376,8 @@ patches/pr690-shark-jit-hs20.patch \ patches/pr696-zero-fast_aldc-hs20.patch \ patches/openjdk/6806261-BigDecimal_longValueExact_throws_NPE.patch \ - patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch + patches/openjdk/6371401-BigInteger.shift_throws_StackOverflowError.patch \ + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 9468557f98c0 -r b9ac502a6189 NEWS --- a/NEWS Tue Aug 30 12:30:04 2011 +0200 +++ b/NEWS Tue Aug 30 11:30:12 2011 -0400 @@ -368,6 +368,7 @@ - S7036582: Improve test coverage of java.math.BigDecimal - S6806261: BigDecimal.longValueExact() method throws NullPointerException - S6371401: java.math.BigInteger.shift(Integer.MIN_VALUE) throws StackOverflowError + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Allow selection of test suites using the jtreg_checks argument e.g. jtreg_checks="langtools" * CACAO - CA149: Used wrong class loader. diff -r 9468557f98c0 -r b9ac502a6189 patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch Tue Aug 30 11:30:12 2011 -0400 @@ -0,0 +1,17 @@ +diff -ur openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:38:17.829462436 -0400 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:41:05.611491530 -0400 +@@ -149,6 +149,13 @@ + + params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect())); + ++ SunToolkit.awtLock(); ++ try { ++ windows.add(this); ++ } finally { ++ SunToolkit.awtUnlock(); ++ } ++ + cachedFocusableWindow = isFocusableWindow(); + + Font f = target.getFont(); From dbhole at icedtea.classpath.org Tue Aug 30 08:57:38 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Tue, 30 Aug 2011 15:57:38 +0000 Subject: /hg/release/icedtea6-1.10: S6826104, RH730015: Getting a NullPoi... Message-ID: changeset d0a7b63adce9 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=d0a7b63adce9 author: Deepak Bhole date: Tue Aug 30 11:30:12 2011 -0400 S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Makefile.am: Apply new patch for S6826104. * NEWS: Updated. * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.pa tch: New patch that fixes S6826104. diffstat: ChangeLog | 9 +++++ Makefile.am | 3 +- NEWS | 2 + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch | 16 ++++++++++ 4 files changed, 29 insertions(+), 1 deletions(-) diffs (62 lines): diff -r 6fcb75989c4a -r d0a7b63adce9 ChangeLog --- a/ChangeLog Wed Aug 24 11:58:13 2011 +0200 +++ b/ChangeLog Tue Aug 30 11:30:12 2011 -0400 @@ -1,3 +1,12 @@ +2011-08-30 Deepak Bhole + + S6826104, RH730015: Getting a NullPointer exception when clicked on Application & + Toolkit Modal dialog + * Makefile.am: Apply new patch for S6826104. + * NEWS: Updated. + * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: + New patch that fixes S6826104. + 2011-08-24 Xerxes R??nby Zero/Shark diff -r 6fcb75989c4a -r d0a7b63adce9 Makefile.am --- a/Makefile.am Wed Aug 24 11:58:13 2011 +0200 +++ b/Makefile.am Tue Aug 30 11:30:12 2011 -0400 @@ -348,7 +348,8 @@ patches/fonts-rhel-version.patch \ patches/openjdk/7036148-npe-null-jmenu-name.patch \ patches/jtreg-bug7036148-test.patch \ - patches/support_linux_3.patch + patches/support_linux_3.patch \ + patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 6fcb75989c4a -r d0a7b63adce9 NEWS --- a/NEWS Wed Aug 24 11:58:13 2011 +0200 +++ b/NEWS Tue Aug 30 11:30:12 2011 -0400 @@ -14,6 +14,8 @@ * Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. +* Backports + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog New in release 1.10.3 (2011-07-21): diff -r 6fcb75989c4a -r d0a7b63adce9 patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch Tue Aug 30 11:30:12 2011 -0400 @@ -0,0 +1,17 @@ +diff -ur openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java +--- openjdk.orig/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:38:17.829462436 -0400 ++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2011-08-11 13:41:05.611491530 -0400 +@@ -149,6 +149,13 @@ + + params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect())); + ++ SunToolkit.awtLock(); ++ try { ++ windows.add(this); ++ } finally { ++ SunToolkit.awtUnlock(); ++ } ++ + cachedFocusableWindow = isFocusableWindow(); + + Font f = target.getFont(); From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 10:32:46 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 30 Aug 2011 17:32:46 +0000 Subject: [Bug 779] New: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 Summary: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 Product: IcedTea-Web Version: unspecified Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: Plugin AssignedTo: dbhole at redhat.com ReportedBy: dbhole at redhat.com CC: unassigned at icedtea.classpath.org The plug-in currently hardcodes jpi-version in the mime type to be 1.6.0. This should be made dynamic. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From dbhole at redhat.com Tue Aug 30 10:36:15 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 30 Aug 2011 13:36:15 -0400 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 Message-ID: <20110830173615.GG32675@redhat.com> Hi, Attached patch fixes PR779: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 It makes the jpi-version dynamic rather than static. Okay for HEAD and 1.1? Cheers, Deepak -------------- next part -------------- diff -r 7afd916031fa Makefile.am --- a/Makefile.am Mon Aug 29 17:02:36 2011 -0400 +++ b/Makefile.am Tue Aug 30 13:34:42 2011 -0400 @@ -210,6 +210,7 @@ mkdir -p $(PLUGIN_DIR) && \ cd $(PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ + -DJDK_VERSION="\"$(JDK_VERSION)\"" \ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ diff -r 7afd916031fa NEWS --- a/NEWS Mon Aug 29 17:02:36 2011 -0400 +++ b/NEWS Tue Aug 30 13:34:42 2011 -0400 @@ -17,6 +17,7 @@ * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow - RH718693: MindTerm SSH Applet doesn't work + - PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR771: IcedTea-Web certificate verification code does not use the right API diff -r 7afd916031fa acinclude.m4 --- a/acinclude.m4 Mon Aug 29 17:02:36 2011 -0400 +++ b/acinclude.m4 Tue Aug 30 13:34:42 2011 -0400 @@ -90,6 +90,17 @@ AC_SUBST(SYSTEM_JRE_DIR) ]) +AC_DEFUN_ONCE([IT_SET_JDK_VERSION], +[ + AC_REQUIRE([FIND_JAVAC]) + AC_MSG_CHECKING([version of java compiler]) + + JDK_VERSION=`$JAVAC -version 2>&1 | cut -d" " -f2 | cut -c1-5` + + AC_MSG_RESULT(${JDK_VERSION}) + AC_SUBST(JDK_VERSION) +]) + AC_DEFUN_ONCE([FIND_JAVAC], [ AC_REQUIRE([IT_CHECK_FOR_JDK]) diff -r 7afd916031fa configure.ac --- a/configure.ac Mon Aug 29 17:02:36 2011 -0400 +++ b/configure.ac Tue Aug 30 13:34:42 2011 -0400 @@ -36,6 +36,7 @@ AC_CONFIG_FILES([javac], [chmod +x javac]) IT_SET_VERSION +IT_SET_JDK_VERSION IT_CHECK_XULRUNNER_VERSION AC_CHECK_LIB(z, main,, [AC_MSG_ERROR("zlib not found - try installing zlib-devel")]) diff -r 7afd916031fa plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 29 17:02:36 2011 -0400 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Aug 30 13:34:42 2011 -0400 @@ -107,7 +107,7 @@ "application/x-java-applet;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ - "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ + "application/x-java-applet;jpi-version=" JDK_VERSION "_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ "application/x-java-bean:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1.1:class,jar:IcedTea;" \ @@ -123,7 +123,7 @@ "application/x-java-bean;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ - "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ + "application/x-java-bean;jpi-version=" JDK_VERSION "_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ "application/x-java-vm-npruntime::IcedTea;" #define PLUGIN_URL NS_INLINE_PLUGIN_CONTRACTID_PREFIX NS_JVM_MIME_TYPE From dbhole at redhat.com Tue Aug 30 10:39:27 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 30 Aug 2011 13:39:27 -0400 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830173615.GG32675@redhat.com> References: <20110830173615.GG32675@redhat.com> Message-ID: <20110830173926.GH32675@redhat.com> * Deepak Bhole [2011-08-30 13:37]: > Hi, > > Attached patch fixes PR779: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 > > It makes the jpi-version dynamic rather than static. > > Okay for HEAD and 1.1? > ChangeLog: 2011-08-30 Deepak Bhole PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 * acinclude.m4: Added new IT_SET_JDK_VERSION macro that sets the JDK version being used. * Makefile.am: Provide JDK_VERSION to plug-in when compiling it. * configure.ac: Call the new IT_SET_JDK_VERSION macro. * plugin/icedteanp/IcedTeaNPPlugin.cc: Use the new JDK_VERSION macro to set jpi-version. > Cheers, > Deepak > diff -r 7afd916031fa Makefile.am > --- a/Makefile.am Mon Aug 29 17:02:36 2011 -0400 > +++ b/Makefile.am Tue Aug 30 13:34:42 2011 -0400 > @@ -210,6 +210,7 @@ > mkdir -p $(PLUGIN_DIR) && \ > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + -DJDK_VERSION="\"$(JDK_VERSION)\"" \ > -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ > -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ > -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ > diff -r 7afd916031fa NEWS > --- a/NEWS Mon Aug 29 17:02:36 2011 -0400 > +++ b/NEWS Tue Aug 30 13:34:42 2011 -0400 > @@ -17,6 +17,7 @@ > * Plugin > - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow > - RH718693: MindTerm SSH Applet doesn't work > + - PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 > Common > - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up > - PR771: IcedTea-Web certificate verification code does not use the right API > diff -r 7afd916031fa acinclude.m4 > --- a/acinclude.m4 Mon Aug 29 17:02:36 2011 -0400 > +++ b/acinclude.m4 Tue Aug 30 13:34:42 2011 -0400 > @@ -90,6 +90,17 @@ > AC_SUBST(SYSTEM_JRE_DIR) > ]) > > +AC_DEFUN_ONCE([IT_SET_JDK_VERSION], > +[ > + AC_REQUIRE([FIND_JAVAC]) > + AC_MSG_CHECKING([version of java compiler]) > + > + JDK_VERSION=`$JAVAC -version 2>&1 | cut -d" " -f2 | cut -c1-5` > + > + AC_MSG_RESULT(${JDK_VERSION}) > + AC_SUBST(JDK_VERSION) > +]) > + > AC_DEFUN_ONCE([FIND_JAVAC], > [ > AC_REQUIRE([IT_CHECK_FOR_JDK]) > diff -r 7afd916031fa configure.ac > --- a/configure.ac Mon Aug 29 17:02:36 2011 -0400 > +++ b/configure.ac Tue Aug 30 13:34:42 2011 -0400 > @@ -36,6 +36,7 @@ > AC_CONFIG_FILES([javac], [chmod +x javac]) > > IT_SET_VERSION > +IT_SET_JDK_VERSION > IT_CHECK_XULRUNNER_VERSION > > AC_CHECK_LIB(z, main,, [AC_MSG_ERROR("zlib not found - try installing zlib-devel")]) > diff -r 7afd916031fa plugin/icedteanp/IcedTeaNPPlugin.cc > --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 29 17:02:36 2011 -0400 > +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Aug 30 13:34:42 2011 -0400 > @@ -107,7 +107,7 @@ > "application/x-java-applet;version=1.4.2:class,jar:IcedTea;" \ > "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ > "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ > - "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ > + "application/x-java-applet;jpi-version=" JDK_VERSION "_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ > "application/x-java-bean:class,jar:IcedTea;" \ > "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ > "application/x-java-bean;version=1.1.1:class,jar:IcedTea;" \ > @@ -123,7 +123,7 @@ > "application/x-java-bean;version=1.4.2:class,jar:IcedTea;" \ > "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ > "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ > - "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ > + "application/x-java-bean;jpi-version=" JDK_VERSION "_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ > "application/x-java-vm-npruntime::IcedTea;" > > #define PLUGIN_URL NS_INLINE_PLUGIN_CONTRACTID_PREFIX NS_JVM_MIME_TYPE From the.mad.doctor.kaeding at gmail.com Tue Aug 30 11:04:58 2011 From: the.mad.doctor.kaeding at gmail.com (the mad doctor kaeding) Date: Tue, 30 Aug 2011 14:04:58 -0400 Subject: icedtea6 cannot compile itself Message-ID: I am trying to compile icedtea6 with itself, but get errors. I tried 1.9.7, and 1.10.x, with same results, but different numbers of errors. What am I doing wrong? Thank you Thomas ---------- CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /sources/new/icedtea/icedtea6-1.9.7/missing --run aclocal-1.11 cd . && /bin/sh /sources/new/icedtea/icedtea6-1.9.7/missing --run automake-1.11 --foreign Makefile /usr/bin/make \ ALT_JDK_IMPORT_PATH="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0" ANT="/usr/ant/bin/ant" BUILD_NUMBER="b20" JDK_UPDATE_VERSION="20" JRE_RELEASE_VERSION="1.6.0_20-b20" MILESTONE="fcs" LANG="C" PATH="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin::$PATH" ALT_BOOTDIR="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0" BUILD_ARCH_DIR="amd64" ICEDTEA_CLS_DIR="/sources/new/icedtea/icedtea6-1.9.7/openjdk.build/classes" ICEDTEA_ENDORSED_DIR="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/lib/endorsed" ENDORSED="-Djava.endorsed.dirs=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/lib/endorsed" CLASSPATH="" LD_LIBRARY_PATH="" ZERO_BUILD="" SHARK_BUILD="" ZERO_LIBARCH="amd64" ARCH_DATA_MODEL="64" ZERO_ENDIANNESS="little" ZERO_ARCHDEF="AMD64" ZERO_ARCHFLAG="-m64" LIBFFI_CFLAGS="" LIBFFI_LIBS="" LLVM_CFLAGS="" LLVM_LDFLAGS="" LLVM_LIBS="" FREETYPE2_HEADERS="-I/usr/include/freetype2 " FT2_LIB="-L/usr/lib64 -lfreetype " ALT_PARALLEL_COMPILE_JOBS="2" HOTSPOT_BUILD_JOBS="2" JAVAC="" JAVA_HOME="" JDK_HOME="" DISTRIBUTION_ID="Custom build (Mon Aug 8 15:28:52 EDT 2011)" DERIVATIVE_ID="IcedTea6 1.9.7" DEBUG_CLASSFILES="true" DEBUG_BINARIES="true" ALT_DROPS_DIR="/sources/new/icedtea/icedtea6-1.9.7/drops" VERBOSE="" ALT_OUTPUTDIR="/sources/new/icedtea/icedtea6-1.9.7/openjdk.build" RHINO_JAR="/sources/new/icedtea/icedtea6-1.9.7/rhino/rhino.jar" ALT_OUTPUTDIR="/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj" JAVA_TOOLS_DIR="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin" ICEDTEA_RT="/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/jre/lib/rt.jar" ICEDTEA_CLS_DIR="/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes" BOOTCLASSPATH_CLS_RT="-bootclasspath /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes:/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/jre/lib/rt.jar" BOOTCLASSPATH_CLS="-bootclasspath /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes" BOOTCLASSPATH_RT_LIBGCJ="-bootclasspath /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/jre/lib/rt.jar" CLASSPATH="" LD_LIBRARY_PATH="" GENSRCDIR="/sources/new/icedtea/icedtea6-1.9.7/generated" JAR_KNOWS_ATFILE="1" JAR_KNOWS_J_OPTIONS="1" JAR_ACCEPTS_STDIN_LIST="" DISABLE_NIMBUS="true" NO_DOCS="true" \ -C openjdk-ecj/ \ make[1]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj' Control linux amd64 1.6.0_20 all build started: 11-08-08 15:40 make[2]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make' make[3]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make/tools/freetypecheck' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make/tools/freetypecheck' make[2]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make' Build Machine Information: build machine = purple Build Directory Structure: CWD = /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj TOPDIR = . LANGTOOLS_TOPDIR = ./langtools JAXP_TOPDIR = ./jaxp JAXWS_TOPDIR = ./jaxws CORBA_TOPDIR = ./corba HOTSPOT_TOPDIR = ./hotspot JDK_TOPDIR = ./jdk Build Directives: BUILD_LANGTOOLS = true BUILD_JAXP = true BUILD_JAXWS = true BUILD_CORBA = true BUILD_HOTSPOT = true BUILD_JDK = true DEBUG_CLASSFILES = true DEBUG_BINARIES = true Hotspot Settings: HOTSPOT_BUILD_JOBS = 2 HOTSPOT_OUTPUTDIR = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir HOTSPOT_EXPORT_PATH = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/import Bootstrap Settings: BOOTDIR = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 ALT_BOOTDIR = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 BOOT_VER = 1.6 [requires at least 1.5] OUTPUTDIR = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj ALT_OUTPUTDIR = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj ABS_OUTPUTDIR = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj Build Tool Settings: SLASH_JAVA = /NOT-SET ALT_SLASH_JAVA = VARIANT = OPT JDK_DEVTOOLS_DIR = /NOT-SET/devtools ALT_JDK_DEVTOOLS_DIR = ANT_HOME = /usr/ant UNIXCOMMAND_PATH = /bin/ ALT_UNIXCOMMAND_PATH = COMPILER_PATH = /usr/bin/ ALT_COMPILER_PATH = DEVTOOLS_PATH = /usr/bin/ ALT_DEVTOOLS_PATH = UNIXCCS_PATH = /usr/ccs/bin/ ALT_UNIXCCS_PATH = USRBIN_PATH = /usr/bin/ ALT_USRBIN_PATH = MOTIF_DIR = /usr ALT_MOTIF_DIR = MOTIF_REQUIRED = false COMPILER_NAME = GCC COMPILER_VERSION = CC_VER = 4.6 [requires at least 3.2] ZIP_VER = 3.0 [requires at least 2.2] UNZIP_VER = 6.00 [requires at least 5.12] ANT_VER = 1.8 [requires at least 1.6.3] TEMPDIR = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/tmp Build Directives: OPENJDK = true USE_HOTSPOT_INTERPRETER_MODE = PEDANTIC = DEV_ONLY = NO_DOCS = true NO_IMAGES = TOOLS_ONLY = INSANE = COMPILE_APPROACH = parallel PARALLEL_COMPILE_JOBS = 2 ALT_PARALLEL_COMPILE_JOBS = 2 FASTDEBUG = COMPILER_WARNINGS_FATAL = false COMPILER_WARNING_LEVEL = INCREMENTAL_BUILD = false CC_HIGHEST_OPT = -O3 CC_HIGHER_OPT = -O3 CC_LOWER_OPT = -O2 CXXFLAGS = -O2 -fPIC -DCC_NOEX -W -Wall -Wno-unused -Wno-parentheses -fno-omit-frame-pointer -D_LITTLE_ENDIAN -g CFLAGS = -O2 -fno-strict-aliasing -fPIC -W -Wall -Wno-unused -Wno-parentheses -pipe -fno-omit-frame-pointer -D_LITTLE_ENDIAN -g BOOT_JAVA_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/java -Xmx896m -Xms128m -XX:PermSize=32m -XX:MaxPermSize=160m BOOT_JAVAC_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/javac -J-XX:ThreadStackSize=1536 -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -encoding ascii -source 5 -target 5 -XDignore.symbol.file=true BOOT_JAR_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/jar BOOT_JARSIGNER_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/jarsigner JAVAC_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/javac -J-XX:ThreadStackSize=1536 -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -g -source 1.5 -target 5 -encoding ascii -Xbootclasspath:/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes JAVAH_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/javah -bootclasspath /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes:/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/jre/lib/rt.jar:/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/classes JAVADOC_CMD = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0/bin/javadoc -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m Build Platform Settings: USER = root PLATFORM = linux ARCH = amd64 LIBARCH = amd64 ARCH_FAMILY = amd64 ARCH_DATA_MODEL = 64 ARCHPROP = amd64 LINUX_VERSION = Unknown linux ALSA_VERSION = 1.0.24.1 OS_VERSION = 2.6.39 [requires at least 2.4.19-SMP] OS_NAME = linux TEMP_FREE_SPACE = 1780864 FREE_SPACE = 1780864 MB_OF_MEMORY = 2010 GNU Make Settings: MAKE = /usr/bin/make MAKE_VER = 3.82 [requires at least 3.78] MAKECMDGOALS = sanity MAKEFLAGS = w SHELL = /bin/sh Target Build Versions: JDK_VERSION = 1.6.0_20 MILESTONE = fcs RELEASE = 1.6.0_20 FULL_VERSION = 1.6.0_20-b20 BUILD_NUMBER = b20 External File/Binary Locations: USRJDKINSTANCES_PATH = /opt/java BUILD_JDK_IMPORT_PATH = /NOT-SET/re/openjdk/6/promoted/latest/binaries ALT_BUILD_JDK_IMPORT_PATH = JDK_IMPORT_PATH = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 ALT_JDK_IMPORT_PATH = /sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 LANGTOOLS_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/dist ALT_LANGTOOLS_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/dist CORBA_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba/dist ALT_CORBA_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba/dist JAXP_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/jaxp/dist ALT_JAXP_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/jaxp/dist JAXWS_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/jaxws/dist ALT_JAXWS_DIST = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/jaxws/dist HOTSPOT_DOCS_IMPORT_PATH = /NO_DOCS_DIR ALT_HOTSPOT_DOCS_IMPORT_PATH = HOTSPOT_IMPORT_PATH = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/import ALT_HOTSPOT_IMPORT_PATH = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/import HOTSPOT_SERVER_PATH = /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/import/jre/lib/amd64/server ALT_HOTSPOT_SERVER_PATH = CACERTS_FILE = ./../src/share/lib/security/cacerts ALT_CACERTS_FILE = CUPS_HEADERS_PATH = /usr/include ALT_CUPS_HEADERS_PATH = OpenJDK-specific settings: FREETYPE_HEADERS_PATH = /usr/include ALT_FREETYPE_HEADERS_PATH = FREETYPE_LIB_PATH = /usr/lib ALT_FREETYPE_LIB_PATH = OPENJDK Import Binary Plug Settings: BINARY_PLUGS_JARFILE = /NOT-SET/re/openjdk/6/promoted/latest/openjdk/binaryplugs/linux-amd64/jre/lib/rt-closed.jar ALT_BINARY_PLUGS_JARFILE = BINARY_PLUGS_PATH = /NOT-SET/re/openjdk/6/promoted/latest/openjdk/binaryplugs/linux-amd64 ALT_BINARY_PLUGS_PATH = BUILD_BINARY_PLUGS_PATH = /NOT-SET/re/openjdk/6/promoted/latest/openjdk/binaryplugs ALT_BUILD_BINARY_PLUGS_PATH = PLUG_LIBRARY_NAMES = Previous JDK Settings: PREVIOUS_RELEASE_PATH = /NOT-SET/re/jdk/1.6.0/archive/fcs/bundles/linux-amd64 ALT_PREVIOUS_RELEASE_PATH = PREVIOUS_JDK_VERSION = 1.6.0 ALT_PREVIOUS_JDK_VERSION = PREVIOUS_JDK_FILE = jdk-6-linux-amd64.tar.gz ALT_PREVIOUS_JDK_FILE = PREVIOUS_JRE_FILE = jre-6-linux-amd64.tar.gz ALT_PREVIOUS_JRE_FILE = PREVIOUS_RELEASE_IMAGE = ALT_PREVIOUS_RELEASE_IMAGE = WARNING: Your build environment has the variable NO_DOCS defined. This will result in a development-only build of the JDK, lacking the documentation build. WARNING: LC_ALL has been set to en_US, this can cause build failures. Try setting LC_ALL to "C". Sanity check passed. Control linux amd64 1.6.0_20 all_product_build build started: 11-08-08 15:40 Control linux amd64 1.6.0_20 build_product_image build started: 11-08-08 15:40 /usr/bin/make \ SKIP_FASTDEBUG_BUILD=true \ SKIP_DEBUG_BUILD=true \ \ generic_build_repo_series make[2]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj' /bin/mkdir -p /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj /bin/mkdir -p /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/j2sdk-image /bin/mkdir -p /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools (cd ./langtools/make && \ /usr/bin/make JDK_TOPDIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk JDK_MAKE_SHARED_DIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make/common/shared EXTERNALSANITYCONTROL=true TARGET_CLASS_VERSION=5 MILESTONE=fcs BUILD_NUMBER=b20 JDK_BUILD_NUMBER=b20 FULL_VERSION=1.6.0_20-b20 PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.6.0_20 JDK_MKTG_VERSION=6u20 JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=6 JDK_MICRO_VERSION=0 ARCH_DATA_MODEL=64 COOKED_JDK_UPDATE_VERSION=200 COOKED_BUILD_NUMBER=20 ANT_HOME="/usr/ant" ALT_OUTPUTDIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools ALT_BOOTDIR=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 all) make[3]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/langtools/make' JAVA_HOME=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 ANT_OPTS=-Djava.io.tmpdir='/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/build/ant-tmp' /usr/ant/bin/ant -Djdk.version=1.6.0_20 -Dfull.version='1.6.0_20-b20' -Drelease=1.6.0_20 -Dbuild.number=b20 -Djavac.debug=true -Ddebug.classfiles=true -Djavac.target=5 -Dboot.java.home=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 -Dbuild.dir=/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/build -Ddist.dir=/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/dist build Buildfile: /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/langtools/make/build.xml -def-check: -check-boot.java.home: -def-pcompile: [javac] /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/langtools/make/build.xml:601: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds -def-build-classes: -def-build-jar: -def-build-tool: -def-build-bootstrap-tool: build-bootstrap-javac: build-bootstrap-javadoc: -def-build-bootstrap-jar: build-bootstrap-doclets: build-bootstrap-javah: build-bootstrap-tools: build-classes-javac: build-classes-javadoc: build-classes-doclets: build-classes-javah: build-classes-javap: build-classes-apt: build-all-classes: build: BUILD SUCCESSFUL Total time: 5 seconds make[3]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/langtools/make' /bin/mkdir -p /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba (cd ./corba/make && \ /usr/bin/make JDK_TOPDIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk JDK_MAKE_SHARED_DIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/jdk/make/common/shared EXTERNALSANITYCONTROL=true TARGET_CLASS_VERSION=5 MILESTONE=fcs BUILD_NUMBER=b20 JDK_BUILD_NUMBER=b20 FULL_VERSION=1.6.0_20-b20 PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.6.0_20 JDK_MKTG_VERSION=6u20 JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=6 JDK_MICRO_VERSION=0 ARCH_DATA_MODEL=64 COOKED_JDK_UPDATE_VERSION=200 COOKED_BUILD_NUMBER=20 ANT_HOME="/usr/ant" ALT_OUTPUTDIR=/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba ALT_BOOTDIR=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 ALT_JDK_IMPORT_PATH=/sources/new/icedtea/icedtea6-1.9.7/bootstrap/jdk1.6.0 ALT_LANGTOOLS_DIST=/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/langtools/dist all) make[3]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make' Begin Processing SUBDIRS: tools javax org sun com >>>Recursively making tools build @ Mon Aug 8 15:40:15 EDT 2011 ... make[4]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools' Begin Processing SUBDIRS: strip_properties idlj logutil >>>Recursively making strip_properties build @ Mon Aug 8 15:40:15 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/strip_properties' ========================================================= BUILDTOOL: stripproperties PACKAGE: build.tools.stripproperties BUILDTOOL_SOURCE_ROOT: ../../tools/src BUILTTOOL_MAINCLASS: build.tools.stripproperties.StripProperties BUILDTOOL_JAR_FILE: /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba/btjars/stripproperties.jar ========================================================= make[5]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/strip_properties' Timing: 00000 seconds or 0s for make-tools-strip_properties <<>>Recursively making idlj build @ Mon Aug 8 15:40:15 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/idlj' ========================================================= BUILDTOOL: idlj PACKAGE: com.sun.tools.corba.se.idl.toJavaPortable BUILDTOOL_SOURCE_ROOT: ../../../src/share/classes BUILTTOOL_MAINCLASS: com.sun.tools.corba.se.idl.toJavaPortable.Compile BUILDTOOL_JAR_FILE: /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba/btjars/idlj.jar ========================================================= make[5]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/idlj' Timing: 00001 seconds or 1s for make-tools-idlj <<>>Recursively making logutil build @ Mon Aug 8 15:40:16 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/logutil' ========================================================= BUILDTOOL: MC PACKAGE: com.sun.tools.corba.se.logutil BUILDTOOL_SOURCE_ROOT: ../../../src/share/classes BUILTTOOL_MAINCLASS: com.sun.tools.corba.se.logutil.MC BUILDTOOL_JAR_FILE: /sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/corba/btjars/MC.jar ========================================================= make[5]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/tools/logutil' Timing: 00000 seconds or 0s for make-tools-logutil <<>>Recursively making javax build @ Mon Aug 8 15:40:16 EDT 2011 ... make[4]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/javax' Begin Processing SUBDIRS: xa >>>Recursively making xa build @ Mon Aug 8 15:40:16 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/javax/xa' make[5]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/javax/xa' Timing: 00000 seconds or 0s for make-javax-xa <<>>Recursively making org build @ Mon Aug 8 15:40:16 EDT 2011 ... make[4]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org' Begin Processing SUBDIRS: omg >>>Recursively making omg build @ Mon Aug 8 15:40:17 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg' Begin Processing SUBDIRS: idl sources PortableServer CORBA CosNaming DynamicAny PortableInterceptor >>>Recursively making idl build @ Mon Aug 8 15:40:17 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/idl' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/idl' Timing: 00000 seconds or 0s for make-org-omg-idl <<>>Recursively making sources build @ Mon Aug 8 15:40:17 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/sources' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/sources' Timing: 00000 seconds or 0s for make-org-omg-sources <<>>Recursively making PortableServer build @ Mon Aug 8 15:40:17 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/PortableServer' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/PortableServer' Timing: 00000 seconds or 0s for make-org-omg-PortableServer <<>>Recursively making CORBA build @ Mon Aug 8 15:40:17 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/CORBA' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/CORBA' Timing: 00001 seconds or 1s for make-org-omg-CORBA <<>>Recursively making CosNaming build @ Mon Aug 8 15:40:18 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/CosNaming' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/CosNaming' Timing: 00000 seconds or 0s for make-org-omg-CosNaming <<>>Recursively making DynamicAny build @ Mon Aug 8 15:40:18 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/DynamicAny' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/DynamicAny' Timing: 00000 seconds or 0s for make-org-omg-DynamicAny <<>>Recursively making PortableInterceptor build @ Mon Aug 8 15:40:18 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/PortableInterceptor' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/org/omg/PortableInterceptor' Timing: 00000 seconds or 0s for make-org-omg-PortableInterceptor <<>>Recursively making sun build @ Mon Aug 8 15:40:18 EDT 2011 ... make[4]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun' Begin Processing SUBDIRS: corba rmi >>>Recursively making corba build @ Mon Aug 8 15:40:19 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba' Begin Processing SUBDIRS: org core >>>Recursively making org build @ Mon Aug 8 15:40:19 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba/org' Begin Processing SUBDIRS: omg >>>Recursively making omg build @ Mon Aug 8 15:40:19 EDT 2011 ... make[7]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba/org/omg' make[7]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba/org/omg' Timing: 00000 seconds or 0s for make-sun-corba-org-omg <<>>Recursively making core build @ Mon Aug 8 15:40:19 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba/core' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/corba/core' Timing: 00000 seconds or 0s for make-sun-corba-core <<>>Recursively making rmi build @ Mon Aug 8 15:40:19 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi' Begin Processing OTHERSUBDIRS: corbalogsources corbalogcompile rmic >>>Recursively making corbalogsources build @ Mon Aug 8 15:40:20 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/corbalogsources' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/corbalogsources' Timing: 00000 seconds or 0s for make-sun-rmi-corbalogsources <<>>Recursively making corbalogcompile build @ Mon Aug 8 15:40:20 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/corbalogcompile' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/corbalogcompile' Timing: 00000 seconds or 0s for make-sun-rmi-corbalogcompile <<>>Recursively making rmic build @ Mon Aug 8 15:40:20 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/rmic' make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/sun/rmi/rmic' Timing: 00000 seconds or 0s for make-sun-rmi-rmic <<>>Recursively making com build @ Mon Aug 8 15:40:20 EDT 2011 ... make[4]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com' Begin Processing SUBDIRS: sun >>>Recursively making sun build @ Mon Aug 8 15:40:21 EDT 2011 ... make[5]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun' Begin Processing SUBDIRS: corba >>>Recursively making corba build @ Mon Aug 8 15:40:21 EDT 2011 ... make[6]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba' Begin Processing SUBDIRS: se >>>Recursively making se build @ Mon Aug 8 15:40:21 EDT 2011 ... make[7]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se' Begin Processing SUBDIRS: org pept corespi core spi impl rmi >>>Recursively making org build @ Mon Aug 8 15:40:21 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/org' make[8]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/org' Timing: 00000 seconds or 0s for make-com-sun-corba-se-org <<>>Recursively making pept build @ Mon Aug 8 15:40:21 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/pept' make[8]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/pept' Timing: 00000 seconds or 0s for make-com-sun-corba-se-pept <<>>Recursively making corespi build @ Mon Aug 8 15:40:21 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/corespi' make[8]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/corespi' Timing: 00001 seconds or 1s for make-com-sun-corba-se-corespi <<>>Recursively making core build @ Mon Aug 8 15:40:22 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/core' make[8]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/core' Timing: 00000 seconds or 0s for make-com-sun-corba-se-core <<>>Recursively making spi build @ Mon Aug 8 15:40:22 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi' Begin Processing SUBDIRS: activation encoding extension legacy logging monitoring copyobject >>>Recursively making activation build @ Mon Aug 8 15:40:22 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/activation' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/activation' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-activation <<>>Recursively making encoding build @ Mon Aug 8 15:40:22 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/encoding' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/encoding' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-encoding <<>>Recursively making extension build @ Mon Aug 8 15:40:23 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/extension' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/extension' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-extension <<>>Recursively making legacy build @ Mon Aug 8 15:40:23 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/legacy' Begin Processing SUBDIRS: connection interceptor >>>Recursively making connection build @ Mon Aug 8 15:40:23 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/legacy/connection' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/legacy/connection' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-legacy-connection <<>>Recursively making interceptor build @ Mon Aug 8 15:40:23 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/legacy/interceptor' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/legacy/interceptor' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-legacy-interceptor <<>>Recursively making logging build @ Mon Aug 8 15:40:23 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/logging' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/logging' Timing: 00001 seconds or 1s for make-com-sun-corba-se-spi-logging <<>>Recursively making monitoring build @ Mon Aug 8 15:40:24 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/monitoring' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/monitoring' Timing: 00000 seconds or 0s for make-com-sun-corba-se-spi-monitoring <<>>Recursively making copyobject build @ Mon Aug 8 15:40:24 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/copyobject' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/spi/copyobject' Timing: 00001 seconds or 1s for make-com-sun-corba-se-spi-copyobject <<>>Recursively making impl build @ Mon Aug 8 15:40:25 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl' Begin Processing SUBDIRS: oa naming activation interceptors logging monitoring >>>Recursively making oa build @ Mon Aug 8 15:40:25 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/oa' Begin Processing SUBDIRS: poa toa >>>Recursively making poa build @ Mon Aug 8 15:40:25 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/oa/poa' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/oa/poa' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-oa-poa <<>>Recursively making toa build @ Mon Aug 8 15:40:25 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/oa/toa' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/oa/toa' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-oa-toa <<>>Recursively making naming build @ Mon Aug 8 15:40:25 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming' Begin Processing SUBDIRS: namingutil cosnaming pcosnaming >>>Recursively making namingutil build @ Mon Aug 8 15:40:26 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/namingutil' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/namingutil' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-naming-namingutil <<>>Recursively making cosnaming build @ Mon Aug 8 15:40:26 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/cosnaming' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/cosnaming' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-naming-cosnaming <<>>Recursively making pcosnaming build @ Mon Aug 8 15:40:26 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/pcosnaming' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/naming/pcosnaming' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-naming-pcosnaming <<>>Recursively making activation build @ Mon Aug 8 15:40:26 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/activation' Begin Processing SUBDIRS: orbd servertool >>>Recursively making orbd build @ Mon Aug 8 15:40:26 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/activation/orbd' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/activation/orbd' Timing: 00001 seconds or 1s for make-com-sun-corba-se-impl-activation-orbd <<>>Recursively making servertool build @ Mon Aug 8 15:40:27 EDT 2011 ... make[10]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/activation/servertool' make[10]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/activation/servertool' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-activation-servertool <<>>Recursively making interceptors build @ Mon Aug 8 15:40:27 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/interceptors' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/interceptors' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-interceptors <<>>Recursively making logging build @ Mon Aug 8 15:40:27 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/logging' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/logging' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-logging <<>>Recursively making monitoring build @ Mon Aug 8 15:40:27 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/monitoring' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/impl/monitoring' Timing: 00000 seconds or 0s for make-com-sun-corba-se-impl-monitoring <<>>Recursively making rmi build @ Mon Aug 8 15:40:28 EDT 2011 ... make[8]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/rmi' Begin Processing SUBDIRS: rmic >>>Recursively making rmic build @ Mon Aug 8 15:40:28 EDT 2011 ... make[9]: Entering directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/rmi/rmic' make[9]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/corba/make/com/sun/corba/se/rmi/rmic' Timing: 00000 seconds or 0s for make-com-sun-corba-se-rmi-rmic <<.compareTo(ReferenceType) ---------- ---------- 2. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java (at line 29) public class ByteValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^ The type ByteValueImpl must implement the inherited abstract method Comparable.compareTo(ByteValue) ---------- 3. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type ByteValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 4. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java (at line 29) public class CharValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^ The type CharValueImpl must implement the inherited abstract method Comparable.compareTo(CharValue) ---------- 5. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type CharValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 6. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ClassTypeImpl.java (at line 34) public class ClassTypeImpl extends ReferenceTypeImpl ^^^^^^^^^^^^^ The type ClassTypeImpl must implement the inherited abstract method Comparable.compareTo(ReferenceType) ---------- ---------- 7. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConcreteMethodImpl.java (at line 40) public class ConcreteMethodImpl extends MethodImpl { ^^^^^^^^^^^^^^^^^^ The type ConcreteMethodImpl must implement the inherited abstract method Comparable.compareTo(Method) ---------- ---------- 8. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java (at line 29) public class DoubleValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^^^ The type DoubleValueImpl must implement the inherited abstract method Comparable.compareTo(DoubleValue) ---------- 9. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java (at line 48) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type DoubleValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 10. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java (at line 40) public class FieldImpl extends TypeComponentImpl implements Field { ^^^^^^^^^ The type FieldImpl must implement the inherited abstract method Comparable.compareTo(Field) ---------- 11. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java (at line 148) public int compareTo(Object object) { ^^^^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type FieldImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 12. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java (at line 29) public class FloatValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^^ The type FloatValueImpl must implement the inherited abstract method Comparable.compareTo(FloatValue) ---------- 13. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type FloatValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 14. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java (at line 29) public class IntegerValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^^^^ The type IntegerValueImpl must implement the inherited abstract method Comparable.compareTo(IntegerValue) ---------- 15. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type IntegerValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 16. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/InterfaceTypeImpl.java (at line 37) public class InterfaceTypeImpl extends ReferenceTypeImpl ^^^^^^^^^^^^^^^^^ The type InterfaceTypeImpl must implement the inherited abstract method Comparable.compareTo(ReferenceType) ---------- ---------- 17. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java (at line 28) public class LocalVariableImpl extends MirrorImpl ^^^^^^^^^^^^^^^^^ The type LocalVariableImpl must implement the inherited abstract method Comparable.compareTo(LocalVariable) ---------- 18. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java (at line 70) public int compareTo(Object object) { ^^^^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type LocalVariableImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 19. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java (at line 31) public class LocationImpl extends MirrorImpl implements Location { ^^^^^^^^^^^^ The type LocationImpl must implement the inherited abstract method Comparable.compareTo(Location) ---------- 20. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java (at line 81) public int compareTo(Object object) { ^^^^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type LocationImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 21. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java (at line 29) public class LongValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^ The type LongValueImpl must implement the inherited abstract method Comparable.compareTo(LongValue) ---------- 22. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type LongValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 23. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java (at line 203) public int compareTo(Object object) { ^^^^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type MethodImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 24. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/NonConcreteMethodImpl.java (at line 41) public class NonConcreteMethodImpl extends MethodImpl { ^^^^^^^^^^^^^^^^^^^^^ The type NonConcreteMethodImpl must implement the inherited abstract method Comparable.compareTo(Method) ---------- ---------- 25. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java (at line 102) public int compareTo(Object object) { ^^^^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type ReferenceTypeImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- ---------- 26. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java (at line 29) public class ShortValueImpl extends PrimitiveValueImpl ^^^^^^^^^^^^^^ The type ShortValueImpl must implement the inherited abstract method Comparable.compareTo(ShortValue) ---------- 27. ERROR in /sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java (at line 55) public int compareTo(Object obj) { ^^^^^^^^^^^^^^^^^^^^^ Name clash: The method compareTo(Object) of type ShortValueImpl has the same erasure as compareTo(T) of type Comparable but does not override it ---------- 27 problems (27 errors)make[8]: *** [/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product/../generated/sa-jdi.jar] Error 255 make[8]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product' make[7]: *** [all] Error 2 make[7]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product' make[6]: *** [sa_stuff] Error 2 make[6]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product' make[5]: *** [product] Error 2 make[5]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk.build-ecj/hotspot/outputdir' make[4]: *** [generic_build2] Error 2 make[4]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/make' make[3]: *** [product] Error 2 make[3]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj/hotspot/make' make[2]: *** [hotspot-build] Error 2 make[2]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj' make[1]: *** [build_product_image] Error 2 make[1]: Leaving directory `/sources/new/icedtea/icedtea6-1.9.7/openjdk-ecj' make: *** [stamps/icedtea-ecj.stamp] Error 2 From dbhole at redhat.com Tue Aug 30 11:28:13 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 30 Aug 2011 14:28:13 -0400 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830173926.GH32675@redhat.com> References: <20110830173615.GG32675@redhat.com> <20110830173926.GH32675@redhat.com> Message-ID: <20110830182812.GI32675@redhat.com> * Deepak Bhole [2011-08-30 13:40]: > * Deepak Bhole [2011-08-30 13:37]: > > Hi, > > > > Attached patch fixes PR779: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 > > > > It makes the jpi-version dynamic rather than static. > > > > Okay for HEAD and 1.1? > > > Doh. Missed updating x-java-applet and x-java-bean. New patch attached. It does it slightly differently so that it can be extended for 1.8 and up too. Cheers, Deepak -------------- next part -------------- diff -r 7afd916031fa Makefile.am --- a/Makefile.am Mon Aug 29 17:02:36 2011 -0400 +++ b/Makefile.am Tue Aug 30 14:27:19 2011 -0400 @@ -210,6 +210,7 @@ mkdir -p $(PLUGIN_DIR) && \ cd $(PLUGIN_DIR) && \ $(CXX) $(CXXFLAGS) \ + -DJDK_VERSION="$(JDK_VERSION)" \ -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ diff -r 7afd916031fa NEWS --- a/NEWS Mon Aug 29 17:02:36 2011 -0400 +++ b/NEWS Tue Aug 30 14:27:19 2011 -0400 @@ -17,6 +17,7 @@ * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow - RH718693: MindTerm SSH Applet doesn't work + - PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 Common - PR768: Signed applets/Web Start apps don't work with OpenJDK7 and up - PR771: IcedTea-Web certificate verification code does not use the right API diff -r 7afd916031fa acinclude.m4 --- a/acinclude.m4 Mon Aug 29 17:02:36 2011 -0400 +++ b/acinclude.m4 Tue Aug 30 14:27:19 2011 -0400 @@ -90,6 +90,17 @@ AC_SUBST(SYSTEM_JRE_DIR) ]) +AC_DEFUN_ONCE([IT_SET_JDK_VERSION], +[ + AC_REQUIRE([FIND_JAVAC]) + AC_MSG_CHECKING([version of java compiler]) + + JDK_VERSION=`$JAVAC -version 2>&1 | cut -d" " -f2 | cut -c3-3` + + AC_MSG_RESULT(${JDK_VERSION}) + AC_SUBST(JDK_VERSION) +]) + AC_DEFUN_ONCE([FIND_JAVAC], [ AC_REQUIRE([IT_CHECK_FOR_JDK]) diff -r 7afd916031fa configure.ac --- a/configure.ac Mon Aug 29 17:02:36 2011 -0400 +++ b/configure.ac Tue Aug 30 14:27:19 2011 -0400 @@ -36,6 +36,7 @@ AC_CONFIG_FILES([javac], [chmod +x javac]) IT_SET_VERSION +IT_SET_JDK_VERSION IT_CHECK_XULRUNNER_VERSION AC_CHECK_LIB(z, main,, [AC_MSG_ERROR("zlib not found - try installing zlib-devel")]) diff -r 7afd916031fa plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 29 17:02:36 2011 -0400 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Aug 30 14:27:19 2011 -0400 @@ -90,6 +90,18 @@ #define PLUGIN_FULL_NAME PLUGIN_NAME " (using " PLUGIN_VERSION ")" #define PLUGIN_DESC "The " PLUGIN_NAME " executes Java applets." +#if JDK_VERSION > 6 +#define X_JAVA_APPLET_17 "application/x-java-applet;version=1.7:class,jar:IcedTea;" +#define X_JAVA_BEAN_17 "application/x-java-bean;version=1.7:class,jar:IcedTea;" +#define X_JAVA_APPLET_JPI "application/x-java-applet;jpi-version=1.7.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" +#define X_JAVA_BEAN_JPI "application/x-java-bean;jpi-version=1.7.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" +#else +#define X_JAVA_APPLET_17 "" +#define X_JAVA_BEAN_17 "" +#define X_JAVA_APPLET_JPI "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" +#define X_JAVA_BEAN_JPI "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" +#endif + #define PLUGIN_MIME_DESC \ "application/x-java-vm:class,jar:IcedTea;" \ "application/x-java-applet:class,jar:IcedTea;" \ @@ -107,7 +119,8 @@ "application/x-java-applet;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ - "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ + X_JAVA_APPLET_17 \ + X_JAVA_APPLET_JPI \ "application/x-java-bean:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1.1:class,jar:IcedTea;" \ @@ -123,7 +136,8 @@ "application/x-java-bean;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ - "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ + X_JAVA_BEAN_17 \ + X_JAVA_BEAN_JPI \ "application/x-java-vm-npruntime::IcedTea;" #define PLUGIN_URL NS_INLINE_PLUGIN_CONTRACTID_PREFIX NS_JVM_MIME_TYPE From doko at ubuntu.com Tue Aug 30 11:49:09 2011 From: doko at ubuntu.com (Matthias Klose) Date: Tue, 30 Aug 2011 20:49:09 +0200 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830182812.GI32675@redhat.com> References: <20110830173615.GG32675@redhat.com> <20110830173926.GH32675@redhat.com> <20110830182812.GI32675@redhat.com> Message-ID: <4E5D30A5.400@ubuntu.com> On 08/30/2011 08:28 PM, Deepak Bhole wrote: > * Deepak Bhole [2011-08-30 13:40]: >> * Deepak Bhole [2011-08-30 13:37]: >>> Hi, >>> >>> Attached patch fixes PR779: >>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 >>> >>> It makes the jpi-version dynamic rather than static. >>> >>> Okay for HEAD and 1.1? >>> >> > > Doh. Missed updating x-java-applet and x-java-bean. > > New patch attached. It does it slightly differently so that it can be > extended for 1.8 and up too. thanks. this look ok. Matthias From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 13:16:10 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 30 Aug 2011 20:16:10 +0000 Subject: [Bug 778] jar download and server certificate verification deadlock In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=778 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com AssignedTo|omajid at redhat.com |ddadacha at redhat.com -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. From ahughes at redhat.com Tue Aug 30 16:48:36 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 00:48:36 +0100 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830173615.GG32675@redhat.com> References: <20110830173615.GG32675@redhat.com> Message-ID: <20110830234836.GA29544@rivendell.middle-earth.co.uk> On 13:36 Tue 30 Aug , Deepak Bhole wrote: > Hi, > > Attached patch fixes PR779: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 > > It makes the jpi-version dynamic rather than static. > > Okay for HEAD and 1.1? > > Cheers, > Deepak No, this patch is incorrect. There is no guarantee that the javac used to build will be of the same JDK version used at runtime, or even that it will be installed (your previous JRE patches allow IcedTea-Web to work without a JDK remember?) You should check the java.version property instead. As you hardcode the JRE into the binaries, that's a safer bet as to what will be used at runtime. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 30 19:27:33 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 03:27:33 +0100 Subject: icedtea6 cannot compile itself In-Reply-To: References: Message-ID: <20110831022733.GB29544@rivendell.middle-earth.co.uk> On 14:04 Tue 30 Aug , the mad doctor kaeding wrote: > I am trying to compile icedtea6 with itself, but get errors. > I tried 1.9.7, and 1.10.x, with same results, but different > numbers of errors. > > What am I doing wrong? > > Thank you > > Thomas > > ---------- > I don't know because you don't give enough information here. We at least need config.log and what is being used in bootstrap/jdk1.6.0. At a guess, it looks like you're using a bootstrap JDK that has newer classes than the one being built. The second stage of the build builds the JDK again with itself, so that is regularly tested. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 19:32:42 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 02:32:42 +0000 Subject: [Bug 755] Fatal Error on JUnit Test in Eclipse In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=755 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME --- Comment #2 from Andrew John Hughes 2011-08-31 02:32:42 --- Closing due to no response. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From ahughes at redhat.com Tue Aug 30 19:33:33 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 03:33:33 +0100 Subject: distcheck in IcedTea6 HEAD broken In-Reply-To: <20110830135856.GF32675@redhat.com> References: <20110830135856.GF32675@redhat.com> Message-ID: <20110831023333.GC29544@rivendell.middle-earth.co.uk> On 09:58 Tue 30 Aug , Deepak Bhole wrote: > Hi, > > distcheck is currently failing in IcedTea6 HEAD: > > config.status: executing depfiles commands > make: *** No rule to make target `arm_port', needed by `distdir'. Stop. > > Deepak It's never worked for IcedTea6 HEAD AFAIK. Ever. http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=719 It does for 7. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From andrew at icedtea.classpath.org Tue Aug 30 19:43:54 2011 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 31 Aug 2011 02:43:54 +0000 Subject: /hg/release/icedtea6-1.10: Correct backports section placement. Message-ID: changeset 4981a9f3be28 in /hg/release/icedtea6-1.10 details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=4981a9f3be28 author: Andrew John Hughes date: Wed Aug 31 03:43:27 2011 +0100 Correct backports section placement. 2011-08-31 Andrew John Hughes * NEWS: Correct backports section placement. diffstat: ChangeLog | 6 +++++- NEWS | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diffs (34 lines): diff -r d0a7b63adce9 -r 4981a9f3be28 ChangeLog --- a/ChangeLog Tue Aug 30 11:30:12 2011 -0400 +++ b/ChangeLog Wed Aug 31 03:43:27 2011 +0100 @@ -1,8 +1,12 @@ +2011-08-31 Andrew John Hughes + + * NEWS: Correct backports section placement. + 2011-08-30 Deepak Bhole S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog - * Makefile.am: Apply new patch for S6826104. + * Makefile.am: Apply new patch for S6826104. * NEWS: Updated. * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch: New patch that fixes S6826104. diff -r d0a7b63adce9 -r 4981a9f3be28 NEWS --- a/NEWS Tue Aug 30 11:30:12 2011 -0400 +++ b/NEWS Wed Aug 31 03:43:27 2011 +0100 @@ -11,11 +11,11 @@ New in release 1.10.4 (2011-XX-XX): +* Backports + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog * Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. -* Backports - - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog New in release 1.10.3 (2011-07-21): From ahughes at redhat.com Tue Aug 30 19:45:23 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 03:45:23 +0100 Subject: /hg/release/icedtea6-1.10: S6826104, RH730015: Getting a NullPoi... In-Reply-To: References: Message-ID: <20110831024523.GD29544@rivendell.middle-earth.co.uk> On 15:57 Tue 30 Aug , dbhole at icedtea.classpath.org wrote: > changeset d0a7b63adce9 in /hg/release/icedtea6-1.10 > details: http://icedtea.classpath.org/hg/release/icedtea6-1.10?cmd=changeset;node=d0a7b63adce9 > author: Deepak Bhole > date: Tue Aug 30 11:30:12 2011 -0400 > > S6826104, RH730015: Getting a NullPointer exception when clicked on > Application & Toolkit Modal dialog > > * Makefile.am: Apply new patch for S6826104. > * NEWS: Updated. > * patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.pa > tch: New patch that fixes S6826104. > > > diffstat: > > ChangeLog | 9 +++++ > Makefile.am | 3 +- > NEWS | 2 + > patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch | 16 ++++++++++ > 4 files changed, 29 insertions(+), 1 deletions(-) > snip... > diff -r 6fcb75989c4a -r d0a7b63adce9 NEWS > --- a/NEWS Wed Aug 24 11:58:13 2011 +0200 > +++ b/NEWS Tue Aug 30 11:30:12 2011 -0400 > @@ -14,6 +14,8 @@ > * Zero/Shark > - PR690: Shark fails to JIT using hs20. > - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. > +* Backports > + - S6826104, RH730015: Getting a NullPointer exception when clicked on Application & Toolkit Modal dialog > Backports should be first on the list above Zero/Shark (see previous entries) as these are changes useful to the majority of people. Committed as a trivial fix. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Tue Aug 30 20:02:21 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 04:02:21 +0100 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E5B71FC.9010403@redhat.com> References: <4E27FA9D.8060404@redhat.com> <20110721132112.GR32327@rivendell.middle-earth.co.uk> <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> <20110825181204.GD25395@redhat.com> <4E57A137.5060308@redhat.com> <20110828041010.GA31694@rivendell.middle-earth.co.uk> <4E5B71FC.9010403@redhat.com> Message-ID: <20110831030221.GE29544@rivendell.middle-earth.co.uk> On 13:03 Mon 29 Aug , Jiri Vanek wrote: snip... > > > > This would be a cleaner patch if the test was inverted i.e. #ifndef LEGACY_GLIB > > Although I do not see the point why it is cleaner - done. The point was that you wouldn't be changing the original code, just adding #ifndef etc. around it, but the point is negated now the function is separated out anyway. snip... > > The patch have shrunk a lot, and now I'm not absolutely sure that I did not broke something. My intentions for this were to touch the code I do not understand full as seldom as possible, but due to reviewing issues i made much more changes. > Please note that I have touched and reused $DEFS, and moved block of code in IcedTeaNPPlugin.cc into separate method. Although I have tested those binaries on rhel5,6 and f13 and everything seems to be working, I'm really not 100% sure. > Better to do it right IMHO. Comments below. > Best Regards > J. > diff -r 36270c76a533 Makefile.am > --- a/Makefile.am Wed Aug 24 15:17:46 2011 -0400 > +++ b/Makefile.am Mon Aug 29 12:43:24 2011 +0200 > @@ -210,6 +210,7 @@ > mkdir -p $(PLUGIN_DIR) && \ > cd $(PLUGIN_DIR) && \ > $(CXX) $(CXXFLAGS) \ > + $(DEFS) \ > -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ > -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ > -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ > diff -r 36270c76a533 acinclude.m4 > --- a/acinclude.m4 Wed Aug 24 15:17:46 2011 -0400 > +++ b/acinclude.m4 Mon Aug 29 12:43:24 2011 +0200 > @@ -484,6 +484,15 @@ > AC_SUBST(PKGVERSION) > ]) > > +AC_DEFUN_ONCE([IT_GET_GLIBVERSION], > +[ > +PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16], > +[],[ > +AC_DEFINE([GLIB214]) > +]) > +] > +) > + You can merge this all into much less space now: AC_DEFUN_ONCE([IT_GET_GLIBVERSION], [ PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16],[],[AC_DEFINE([GLIB214])]) ]) I think IT_CHECK_GLIB_VERSION would be a more accurate name. Also, the name GLIB214 makes no sense. As mentioned before, LEGACY_GLIB would be better. > AC_DEFUN([IT_CHECK_WITH_GCJ], > [ > AC_MSG_CHECKING([whether to compile ecj natively]) > diff -r 36270c76a533 configure.ac > --- a/configure.ac Wed Aug 24 15:17:46 2011 -0400 > +++ b/configure.ac Mon Aug 29 12:43:24 2011 +0200 > @@ -80,6 +80,7 @@ > IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil]) > IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) > IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE > +IT_GET_GLIBVERSION > > # > # Find optional depedencies > diff -r 36270c76a533 plugin/icedteanp/IcedTeaNPPlugin.cc > --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Aug 24 15:17:46 2011 -0400 > +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Aug 29 12:43:24 2011 +0200 > @@ -869,6 +869,31 @@ > PLUGIN_DEBUG ("ITNP_URLNotify return\n"); > } > > +#ifdef GLIB214 > +// Returns key from first item stored in hashtable > +gboolean > +find_first_item_in_hash_table(gpointer key, gpointer value, gpointer user_data) > +{ > + user_data = key; > + return (gboolean)TRUE; > +} > +#endif > + > +#if MOZILLA_VERSION_COLLAPSED >= 1090100 > +gpointer getFirtsTableInstance() > +{ > + gpointer id, instance; > + #ifndef GLIB214 > + GHashTableIter iter; > + g_hash_table_iter_init (&iter, instance_to_id_map); > + g_hash_table_iter_next (&iter, &instance, &id); > + #else > + g_hash_table_find(instance_to_id_map, (GHRFunc)find_first_item_in_hash_table, &instance); > + #endif > + return instance; > +} > +#endif > + Typo here: it should be getFirstTableInstance. I expected it to take arguments but I guess it isn't necessary. > NPError > get_cookie_info(const char* siteAddr, char** cookieString, uint32_t* len) > { > @@ -912,15 +937,9 @@ > // Fortunately, XULRunner does not care about the instance as long as it is > // valid. So we just pick the first valid one and use it. Proxy/Cookie > // information is not instance specific anyway, it is URL specific. > - > if (browser_functions.getvalueforurl) > { > - GHashTableIter iter; > - gpointer id, instance; > - > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > - > + gpointer instance=getFirtsTableInstance(); > return browser_functions.getvalueforurl((NPP) instance, NPNURLVCookie, siteAddr, cookieString, len); > } else > { > @@ -1363,21 +1382,19 @@ > > #else > > + > if (browser_functions.getvalueforurl) > { > > // As in get_cookie_info, we use the first active instance > - GHashTableIter iter; > - gpointer id, instance; > - > - g_hash_table_iter_init (&iter, instance_to_id_map); > - g_hash_table_iter_next (&iter, &instance, &id); > - > + gpointer instance=getFirtsTableInstance(); > browser_functions.getvalueforurl((NPP) instance, NPNURLVProxy, siteAddr, proxy, len); > } else > { > return NPERR_GENERIC_ERROR; > } > + > + > #endif > > return NPERR_NO_ERROR; > @@ -1403,6 +1420,17 @@ > return FALSE; > } > > +#ifdef GLIB214 > +int > +g_strcmp0(char *str1, char *str2) > +{ > + if (str1 != NULL) > + return str2 != NULL ? strcmp(str1, str2) : 1; > + else // str1 == NULL > + return str2 != NULL ? 1 : 0; > +} > +#endif > + This and the other #ifdef LEGACY_GLIB block would be better placed together at the beginning of the file, out of the way of the functions that do the real work. You could use one #ifdef then too. Deleting below this as it looks like duplication. Please post the next version in a new mail. Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 20:19:16 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 03:19:16 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahughes at redhat.com Severity|blocker |normal OS/Version|Windows |Linux Platform|all |x86_64 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 20:19:39 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 03:19:39 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #558|application/octet-stream |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 20:19:51 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 03:19:51 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #559|application/octet-stream |text/plain mime type| | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 20:20:48 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 03:20:48 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #7 from Andrew John Hughes 2011-08-31 03:20:47 --- This latest build log does not appear to be from IcedTea. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Tue Aug 30 22:48:46 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 05:48:46 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 Jon Barrilleaux changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #8 from Jon Barrilleaux 2011-08-31 05:48:45 --- This problem was resolved by including the jars that accompanied the native library build. Originally I had included jars, which I thought were common to all builds, and just the native libraries. BTW: Is there some way to generate a more meaningful exception message when such a situation occurs? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From xerxes at zafena.se Wed Aug 31 00:27:53 2011 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Wed, 31 Aug 2011 10:27:53 +0300 Subject: distcheck in IcedTea6 HEAD broken In-Reply-To: <20110830135856.GF32675@redhat.com> References: <20110830135856.GF32675@redhat.com> Message-ID: <4E5DE279.3030703@zafena.se> On Tuesday 30 August 2011 04:58 PM, Deepak Bhole wrote: > Hi, > > distcheck is currently failing in IcedTea6 HEAD: > > config.status: executing depfiles commands > make: *** No rule to make target `arm_port', needed by `distdir'. Stop. > > Deepak Sorry, I have missed to update distcheck after I removed the arm_port directory from HEAD. http://icedtea.classpath.org/hg/icedtea6/rev/aae82c1ccf7d Xerxes From bugzilla-daemon at icedtea.classpath.org Wed Aug 31 12:22:26 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 19:22:26 +0000 Subject: [Bug 780] New: eclipse helios SR2 J2EE on Fedora15 crashes on server configuration Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=780 Summary: eclipse helios SR2 J2EE on Fedora15 crashes on server configuration Product: IcedTea Version: 6-1.10.1 Platform: 32-bit OS/Version: Linux Status: NEW Severity: normal Priority: P5 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: krishna.venbakkam at gmail.com Created an attachment (id=565) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=565) this is the log file generated of the eclipse crash Hi,I am using the J2EE build of eclipse helios SR2 on FC15. I was trying to configure tomcat6 on eclipse(and then later tomcat 7), and each time eclipse crashed. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From bugzilla-daemon at icedtea.classpath.org Wed Aug 31 09:28:41 2011 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 31 Aug 2011 16:28:41 +0000 Subject: [Bug 773] OpenJDK 64-Bit Server VM : SIGSEGV (0xb) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=773 --- Comment #9 from Andrew John Hughes 2011-08-31 16:28:41 --- Difficult to say without seeing the code involved. The Java code should really check the availability of the classes before going down to the native layer IMHO. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. From dbhole at icedtea.classpath.org Wed Aug 31 11:38:31 2011 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 31 Aug 2011 18:38:31 +0000 Subject: /hg/release/icedtea-web-1.1: 3 new changesets Message-ID: changeset 4443143761db in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=4443143761db author: Deepak Bhole date: Wed Aug 31 14:16:20 2011 -0400 Prepare for 1.1.2 changeset 03d24216fa28 in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=03d24216fa28 author: Deepak Bhole date: Wed Aug 31 14:18:00 2011 -0400 Added tag icedtea-web-1.1.2 for changeset 4443143761db changeset cea1007c04db in /hg/release/icedtea-web-1.1 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.1?cmd=changeset;node=cea1007c04db author: Deepak Bhole date: Wed Aug 31 14:19:03 2011 -0400 Prepare for 1.1.3 diffstat: .hgtags | 1 + ChangeLog | 10 ++++++++++ NEWS | 4 +++- configure.ac | 2 +- 4 files changed, 15 insertions(+), 2 deletions(-) diffs (48 lines): diff -r 506fd0d95206 -r cea1007c04db .hgtags --- a/.hgtags Mon Aug 29 17:02:36 2011 -0400 +++ b/.hgtags Wed Aug 31 14:19:03 2011 -0400 @@ -1,3 +1,4 @@ 692d7e5b31039156aff1600fd7f5034fead2f258 icedtea-web-1.0-branchpoint ff05275397cad39391677d22a077a013a1203afa icedtea-web-1.1 44535ca475930d6f6a307b852ccb3f3aa97f0887 icedtea-web-1.1.1 +4443143761dbd3294bfd0d9096121ca55c035d1b icedtea-web-1.1.2 diff -r 506fd0d95206 -r cea1007c04db ChangeLog --- a/ChangeLog Mon Aug 29 17:02:36 2011 -0400 +++ b/ChangeLog Wed Aug 31 14:19:03 2011 -0400 @@ -1,3 +1,13 @@ +2011-08-31 Deepak Bhole + + * NEWS: Prepare for 1.1.3 + * configure.ac: Same + +2011-08-31 Deepak Bhole + + * NEWS: Prepare for 1.1.2 + * configure.ac: Same + 2011-08-29 Deepak Bhole RH734081: Javaws cannot use proxy settings from Firefox diff -r 506fd0d95206 -r cea1007c04db NEWS --- a/NEWS Mon Aug 29 17:02:36 2011 -0400 +++ b/NEWS Wed Aug 31 14:19:03 2011 -0400 @@ -8,7 +8,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.1.2 (2011-XX-XX): +New in release 1.1.3 (2011-XX-XX): + +New in release 1.1.2 (2011-08-31): * Plugin - PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow - RH718693: MindTerm SSH Applet doesn't work diff -r 506fd0d95206 -r cea1007c04db configure.ac --- a/configure.ac Mon Aug 29 17:02:36 2011 -0400 +++ b/configure.ac Wed Aug 31 14:19:03 2011 -0400 @@ -1,4 +1,4 @@ -AC_INIT([icedtea-web],[1.1.2pre],[distro-pkg-dev at openjdk.java.net], [icedtea-web], [http://icedtea.classpath.org/wiki/IcedTea-Web]) +AC_INIT([icedtea-web],[1.1.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]) From doko at ubuntu.com Wed Aug 31 03:46:27 2011 From: doko at ubuntu.com (Matthias Klose) Date: Wed, 31 Aug 2011 12:46:27 +0200 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830234836.GA29544@rivendell.middle-earth.co.uk> References: <20110830173615.GG32675@redhat.com> <20110830234836.GA29544@rivendell.middle-earth.co.uk> Message-ID: <4E5E1103.8010606@ubuntu.com> On 08/31/2011 01:48 AM, Dr Andrew John Hughes wrote: > On 13:36 Tue 30 Aug , Deepak Bhole wrote: >> Hi, >> >> Attached patch fixes PR779: >> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 >> >> It makes the jpi-version dynamic rather than static. >> >> Okay for HEAD and 1.1? >> >> Cheers, >> Deepak > > No, this patch is incorrect. There is no guarantee that the javac > used to build will be of the same JDK version used at runtime, > or even that it will be installed (your previous JRE patches allow > IcedTea-Web to work without a JDK remember?) No. There is nothing wrong with this approach. As long as you have the same version in SYSTEM_JDK_DIR and SYSTEM_JDK_DIR/jre, everthing is fine. Anything else is a broken configuration/installation anyway. From dbhole at redhat.com Wed Aug 31 10:05:37 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 31 Aug 2011 13:05:37 -0400 Subject: [openbsd] Remove gnuisms from icedtea-web's Makefile.in, and fix install calls In-Reply-To: <20110824235027.GX9583@rivendell.middle-earth.co.uk> References: <20110809220645.GX11994@dawn.rhaalovely.net> <20110824205128.GK16281@redhat.com> <20110824235027.GX9583@rivendell.middle-earth.co.uk> Message-ID: <20110831170537.GE14689@redhat.com> * Dr Andrew John Hughes [2011-08-24 19:50]: > On 16:51 Wed 24 Aug , Deepak Bhole wrote: > > * Landry Breuil [2011-08-23 08:14]: > > > Hi, > > > > > > just a quick note to let you know that icedtea-web 1.1.1 works fine on > > > OpenBSD with sun's openjdk 1.7 (with the applet_hole.patch). I just had > > > to apply a little (attached patch) : > > > - cp -a is a gnu cp option, don't use it > > > - install -D is a gnu install option, add a plain install -d call to > > > create the parent dirs > > > - on OpenBSD, INSTALL_DATA is set by the ports infrastructure and uses > > > -o/-g by default, as it's supposed to be used during make install > > > (which is run as root). For the 'stamp files', icedtea-web calls > > > INSTALL_DATA during make step, which is run as regular user, thus > > > install -o/-g fails. Hence, use a plain install -c -m 644 command > > > instead of relying on INSTALL_DATA. > > > > > > There are more hunks in that patch, but they're openbsd-specific so i'm > > > not pushing them. We'll soon ship icedtea-web in our ports-tree. > > > > > > Landry > > > > Thanks for the patch! > > > > I assume you meant to make the changes to Makefile.am? Anyway, I made it > > so but I found some issues on Linux. Specifically, the doc dirs don't > > get created without the -D. > > > > Well, yes because -d just creates directories while -D installs files, > creating any directories needed. > > Are you sure the patch below works by just removing -D? Are you trying > the install on a clean tree? It's not obvious to me how netx gets > created. > Bare install shouldn't be used; use ${INSTALL}. Fixed. > Also you seem to be removing all the INSTALL_DATA targets whereas it's > just the usage in each of netx and extra-class-files that's at > issue. > It is only removed where -D is used (4 places). > cp -p is closer to the status quo than just reverting to cp. > Fixed. > Have you tested this with make distcheck? > It is broken in HEAD, but not as a consequence of this patch. It works for 1.1. Thanks for reviewing! New patch attached. Okay for commit? Cheers, Deepak -------------- next part -------------- diff -r 7afd916031fa Makefile.am --- a/Makefile.am Mon Aug 29 17:02:36 2011 -0400 +++ b/Makefile.am Wed Aug 31 12:59:17 2011 -0400 @@ -168,13 +168,15 @@ (cd ${abs_top_builddir}/docs/netx; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ + ${INSTALL} -d $$(dirname "$(DESTDIR)$(htmldir)/netx/$${files}"); \ + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/netx/$${files}; \ done) if ENABLE_PLUGIN (cd ${abs_top_builddir}/docs/plugin; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ + ${INSTALL} -d $$(dirname "$(DESTDIR)$(htmldir)/plugin/$${files}"); \ + ${INSTALL_DATA} $${files} $(DESTDIR)$(htmldir)/plugin/$${files}; \ done) endif endif @@ -304,14 +306,15 @@ -bootclasspath $(RUNTIME) \ @netx-source-files.txt (cd $(NETX_RESOURCE_DIR); \ + ${INSTALL} -d $(NETX_DIR)/net/sourceforge/jnlp/resources/ ; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} \ + ${INSTALL} -c -m 644 $${files} \ $(NETX_DIR)/net/sourceforge/jnlp/resources/$${files}; \ done) - cp -a $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ + cp -p $(NETX_SRCDIR)/net/sourceforge/jnlp/runtime/pac-funcs.js \ $(NETX_DIR)/net/sourceforge/jnlp/runtime - cp -a build.properties $(NETX_DIR)/net/sourceforge/jnlp/ + cp -p build.properties $(NETX_DIR)/net/sourceforge/jnlp/ mkdir -p stamps touch $@ @@ -347,9 +350,10 @@ -sourcepath $(abs_top_srcdir)/extra -cp netx.build \ -bootclasspath $(RUNTIME) @extra-source-files.txt (cd $(NETX_EXTRA_DIR); \ + ${INSTALL} -d $(NETX_EXTRA_DIST_DIR) ; \ for files in $$(find . -type f); \ do \ - ${INSTALL_DATA} -D $${files} \ + ${INSTALL} -c -m 644 $${files} \ $(NETX_EXTRA_DIST_DIR)/$${files}; \ done) mkdir -p stamps From dbhole at redhat.com Wed Aug 31 07:07:11 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 31 Aug 2011 10:07:11 -0400 Subject: [icedtea-web] RFC: Fix for PR779: IcedTea-Web plug-in hardcodes jpi-version to 1.6.0 In-Reply-To: <20110830234836.GA29544@rivendell.middle-earth.co.uk> References: <20110830173615.GG32675@redhat.com> <20110830234836.GA29544@rivendell.middle-earth.co.uk> Message-ID: <20110831140711.GR32675@redhat.com> * Dr Andrew John Hughes [2011-08-30 19:48]: > On 13:36 Tue 30 Aug , Deepak Bhole wrote: > > Hi, > > > > Attached patch fixes PR779: > > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=779 > > > > It makes the jpi-version dynamic rather than static. > > > > Okay for HEAD and 1.1? > > > > Cheers, > > Deepak > > No, this patch is incorrect. There is no guarantee that the javac > used to build will be of the same JDK version used at runtime, > or even that it will be installed (your previous JRE patches allow > IcedTea-Web to work without a JDK remember?) > > You should check the java.version property instead. As you hardcode > the JRE into the binaries, that's a safer bet as to what will be > used at runtime. Doh. Okay, I will have to push this to 1.1.2+ then. Checking against java.version will require a fair bit of rework. I will look into it. Thanks! Deepak > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and IcedTea > http://www.gnu.org/software/classpath > http://icedtea.classpath.org > PGP Key: F5862A37 (https://keys.indymedia.org/) > Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From ahughes at redhat.com Wed Aug 31 09:24:36 2011 From: ahughes at redhat.com (Dr Andrew John Hughes) Date: Wed, 31 Aug 2011 17:24:36 +0100 Subject: [RFC]: make IcedTea-web to be compatible with RHEL5 libraries In-Reply-To: <4E5E0421.9090800@redhat.com> References: <4E5256BF.20000@redhat.com> <20110822205504.GI3298@redhat.com> <4E539007.7040607@redhat.com> <4E561AE9.2000908@redhat.com> <20110825181204.GD25395@redhat.com> <4E57A137.5060308@redhat.com> <20110828041010.GA31694@rivendell.middle-earth.co.uk> <4E5B71FC.9010403@redhat.com> <20110831030221.GE29544@rivendell.middle-earth.co.uk> <4E5E0421.9090800@redhat.com> Message-ID: <20110831162436.GI29544@rivendell.middle-earth.co.uk> On 11:51 Wed 31 Aug , Jiri Vanek wrote: snip... > Hi! > Quite nitpick isn't it? :) Yeah :-) But may as well get it right first time. > But I'm getting to like the patch. > > Mostly cosmetic changes: > Acinclude code shrunken to two lines > IT_GET_GLIBVERSION rename top IT_CHECK_GLIB_VERSION > GLIB214 renamed to LEGACY_GLIB. > getFirtsTableInstance renamed to getFirstInTableInstance > all #ifdef LEGACY_GLIB support functions moved to the block on the start of the file. > > I have refactored getFirstInTableInstance function, so it do not need "ifdef mozzila" block (I hope) and is taking argument of GHashTable*, so it can work with any table. When called (on same places as before) it is called with instance_to_id_map parameter so it search in the same table as before. This approach seems much more clearer to me then before. > Looks great now. Thanks for all your hard work. Approved. [Only problem is you don't seem to have sent this to distro-pkg-dev. Bringing the list back in on the loop.] -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: F5862A37 (https://keys.indymedia.org/) Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37 From dbhole at redhat.com Wed Aug 31 11:36:06 2011 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 31 Aug 2011 14:36:06 -0400 Subject: IcedTea-Web 1.1.2 released! Message-ID: <20110831183605.GG14689@redhat.com> IcedTea-Web 1.1.2 has been released and is available for download now! This is a maintenance release and contains bug fixes. Furthermore, this release also adds support for use with Java 7 (IcedTea7). Fixes include: Plug-in: PR749: sun.applet.PluginStreamHandler#handleMessage(String) really slow RH718693: MindTerm SSH Applet doesn?t work Common: PR768: Signed applets/Web Start apps don?t work with OpenJDK7 and up PR769: IcedTea-Web does not work with some ssl sites with OpenJDK7 RH734081: Javaws cannot use proxy settings from Firefox New (--with-jre-home=) option to allow use with only JRE installed Available for download here: http://icedtea.classpath.org/download/source/icedtea-web-1.1.2.tar.gz Build instructions are here: http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web SHA256 sum: 3051f3bf1e1d07ad7aaa28b204821a7c0631848d20ba7942fc23440e774649e4 icedtea-web-1.1.2.tar.gz Thanks to Omair Majid for help with this release! Cheers, Deepak