> String>(3);
>> @@ -226,7 +241,7 @@
>>
>> writeElement(TEST_ERROR_ELEMENT, testFailed.getTrace(),
>> errorAtts);
>> } else {
>> - if (k2f != null) {
>> + if (knownToFailInThisBrowser) {
>> if (ignored) {
>> ignoredK2F++;
>> } else {
>> @@ -265,25 +280,25 @@
>> classStats.put(description.getClassName(), classStat);
>> }
>> classStat.total++;
>> - if (k2f != null) {
>> + if (knownToFailInThisBrowser) {
>> classStat.totalK2F++;
>> }
>> classStat.time += testTime;
>> if (testFailed == null) {
>> if (ignored) {
>> classStat.ignored++;
>> - if (k2f != null) {
>> + if (knownToFailInThisBrowser) {
>> classStat.ignoredK2F++;
>> }
>> } else {
>> classStat.passed++;
>> - if (k2f != null) {
>> + if (knownToFailInThisBrowser) {
>> classStat.passedK2F++;
>> }
>> }
>> } else {
>> classStat.failed++;
>> - if (k2f != null) {
>> + if (knownToFailInThisBrowser) {
>> classStat.failedK2F++;
>> }
>> }
>> diff --git a/tests/junit-runner/LessVerboseTextListener.java
>> b/tests/junit-runner/LessVerboseTextListener.java
>> --- a/tests/junit-runner/LessVerboseTextListener.java
>> +++ b/tests/junit-runner/LessVerboseTextListener.java
>> @@ -10,6 +10,7 @@
>> import java.lang.reflect.Method;
>> import net.sourceforge.jnlp.annotations.KnownToFail;
>> import net.sourceforge.jnlp.annotations.Remote;
>> +import net.sourceforge.jnlp.browsertesting.Browsers;
>>
>> import org.junit.internal.JUnitSystem;
>> import org.junit.runner.Description;
>> @@ -74,24 +75,39 @@
>> private void printK2F(PrintStream writer, Boolean failed,
>> Description description) {
>> try {
>> KnownToFail k2f = getK2F(description);
>> - if (k2f != null) {
>> - totalK2F++;
>> - if (failed != null) {
>> - if (failed) {
>> - failedK2F++;
>> - } else {
>> - passedK2F++;
>> - }
>> - } else {
>> - ignoredK2F++;
>> - }
>> - if (failed != null && !failed) {
>> - writer.println(" - WARNING This test is known to
>> fail, but have passed!");
>> - } else {
>> - writer.println(" - This test is known to fail");
>> - }
>> + boolean knownToFailInThisBrowser = false;
>
> again.
>> + if (k2f != null){
>> + //determine if k2f in the current browser
>> + Browsers[] br = k2f.failsIn();
>> + if(0 == br.length){ //@KnownToFail with default
>> optional parameter failsIn={}
>> + knownToFailInThisBrowser = true;
>> + }else{
>> + for(Browsers b : br){
>> +
>> if(description.toString().contains(b.toString())){
>> + knownToFailInThisBrowser = true;
>> + }
>> + }
>> + }
>> }
>>
>> + if( knownToFailInThisBrowser ){
>> + totalK2F++;
>> + if (failed != null) {
>> + if (failed) {
>> + failedK2F++;
>> + } else {
>> + passedK2F++;
>> + }
>> + } else {
>> + ignoredK2F++;
>> + }
>> + if (failed != null && !failed) {
>> + writer.println(" - WARNING This test is known to
>> fail, but have passed!");
>> + } else {
>> + writer.println(" - This test is known to fail");
>> + }
>> + }
>> +
>>
>> } catch (Exception ex) {
>> ex.printStackTrace();
>>
>> diff --git
>> a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
>> b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
>> ---
>> a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
>> +++
>> b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
>> @@ -41,6 +41,7 @@
>> import java.lang.annotation.Retention;
>> import java.lang.annotation.RetentionPolicy;
>> import java.lang.annotation.Target;
>> +import net.sourceforge.jnlp.browsertesting.Browsers;
>>
>> /**
>> *
>> @@ -52,10 +53,15 @@
>> * This annotation is meant for adding tests for bugs before the fix is
>> * implemented.
>> *
>> + *
>> + * The meaning of optional parameter failsIn is either a list of
>> + * browsers where the test fails, or a default value - an empty array
>> {},
>> + * default value means that the test fails always.
>> + *
>> */
>>
>> @Target({ElementType.METHOD,ElementType.TYPE})
>> @Retention(RetentionPolicy.RUNTIME)
>> public @interface KnownToFail {
>> -
>> + public Browsers[] failsIn() default {};
>> }
>>
>>
>> index_reproducers.html
>>
>>
>> Date:
>>
>> Mon Mar 18 15:35:34 CET 2013
>>
>>
>> Result: (88s)
>>
>>
>> In brackets are KnownToFail values if any
>>
>> TOTAL:
>> 15 (8)
>> passed:
>> 8 (2)
>> failed:
>> 7 (6)
>> ignored:
>> 0
>>
>>
>> Classes: show/hide
>>
>> JToJSEvalTest (88272ms):
>>
>>
>>
>> TOTAL:
>> 15 (8)
>> passed:
>> 8 (2)
>> failed:
>> 7 (6)
>> ignored:
>> 0
>>
>> ----------------------------------------------------------------------------------------------------
>>
>>
>>
>> Individual results:
>>
>> NoneTraceAllTraces
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - opera
>> PASSED (4.9260s) *- This test is known to fail*
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - midori
>> FAILED (4.5260s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test - epiphany
>> FAILED (4.5160s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_AnnotatedAsFailsInAll_1plus1_Test(JToJSEvalTest.java:102)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - opera
>> PASSED (5.1110s) *- This test is known to fail*
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - midori
>> FAILED (4.7250s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test - epiphany
>> FAILED (4.7180s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_AnnotatedAsDefaultFailsInAll_1plus1_Test(JToJSEvalTest.java:110)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - opera
>> PASSED (5.3160s)
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - midori
>> FAILED (4.5170s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test - epiphany
>> FAILED (4.6170s) *- This test is known to fail*
>> java.lang.AssertionError - JToJSEval: the J and JS outputs are not
>> equal!StackTrace
>>
>> java.lang.AssertionError: JToJSEval: the J and JS outputs are not equal!
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:80)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at
>> JToJSEvalTest.AppletJToJSEval_FailsInSomeBrowsers_1plus1_Test(JToJSEvalTest.java:118)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_typeof_Test - opera
>> FAILED (21.6470s)
>> java.lang.AssertionError - JToJSEvalTest stdout should contain
>> JToJSEval applet initialized. but it
>> didnt.StackTrace
>>
>> java.lang.AssertionError: JToJSEvalTest stdout should contain
>> JToJSEval applet initialized. but it didnt.
>> at org.junit.Assert.fail(Assert.java:91)
>> at org.junit.Assert.assertTrue(Assert.java:43)
>> at JToJSEvalTest.evaluateStdoutContents(JToJSEvalTest.java:68)
>> at JToJSEvalTest.javaToJSEvalTest(JToJSEvalTest.java:87)
>> at JToJSEvalTest.AppletJToJSEval_typeof_Test(JToJSEvalTest.java:125)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:601)
>> at
>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>>
>> at
>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>>
>> at
>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>>
>> at
>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:96)
>>
>> at
>> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
>> at CommandLine.runMain(CommandLine.java:49)
>> at CommandLine.runMainAndExit(CommandLine.java:28)
>> at CommandLine.main(CommandLine.java:24)
>>
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_typeof_Test - midori
>> PASSED (4.5120s)
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_typeof_Test - epiphany
>> PASSED (4.6080s)
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_location_Test - opera
>> PASSED (5.1070s)
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_location_Test - midori
>> PASSED (4.7130s)
>> JToJSEvalTest
>>
>>
>> -
>> AppletJToJSEval_location_Test - epiphany
>> PASSED (4.7130s)
>> STD-OUT - Show/hide
>>
>> @sout@
>>
>> STD-ERR - Show/hide
>>
>> @serr@
>>
>>
>> screenshot1.png
>>
>>
>>
>> screenshot2.png
>>
>>
> So assuming this apply, build, and output is correct, and knwntofail for
> browser are really errors on browser side, thanx and go on :)
>
> J.
From jfabriko at redhat.com Wed Apr 3 11:36:08 2013
From: jfabriko at redhat.com (Jana Fabrikova)
Date: Wed, 03 Apr 2013 20:36:08 +0200
Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function return
types" tests
In-Reply-To: <50FE6C4C.4040902@redhat.com>
References: <50FE6C4C.4040902@redhat.com>
Message-ID: <515C7698.8020708@redhat.com>
Hi, I am resending last of the JS->J reproducers that was maybe lost in
the big amount of [rfc][icedtea-web] mail,
thank you for any comments,
Jana
On 01/22/2013 11:39 AM, Jana Fabrikova wrote:
> Hello,
>
> I have rewritten also the JSToJFuncReturn reproducer with respect to
> Adam's comments, its structure is very similar to JSToJFuncParam, please
> find the patch attached,
>
> Jana
>
>
> 2013-01-15 Jana Fabrikova
>
> *
> /tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java:
>
> adding 22 testcases - 21 based on the interactive Liveconnect JS->Java
> function return types tests, 1 additional testcase for returning
> JSObject (calling a Java method from JS)
>
> * /tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java:
> the applet whose methods are invoked from JS during the tests
>
> *
> /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js:
> the JavaScript code for calling the applet methods from JS
>
> *
> /tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp:
> java network launch protocol file for displaying applet in the html page
>
> * /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html:
> the html page with java applet embedded, displayed in browser during the
> tests
-------------- next part --------------
A non-text attachment was scrubbed...
Name: JSToJFuncReturn_modification.patch
Type: text/x-patch
Size: 15290 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130403/19581c29/JSToJFuncReturn_modification.patch
From ptisnovs at icedtea.classpath.org Thu Apr 4 01:11:29 2013
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 08:11:29 +0000
Subject: /hg/rhino-tests: Added following tests into the ScriptEngineFact...
Message-ID:
changeset 45ce30265490 in /hg/rhino-tests
details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=45ce30265490
author: Pavel Tisnovsky
date: Thu Apr 04 10:14:43 2013 +0200
Added following tests into the ScriptEngineFactoryClassTest:
getAnnotation, getComponentType, getClasses, getDeclaredClasses,
getDeclaringClass, getEnclosingClass, getEnclosingConstructor and
getEnclosingMethod.
diffstat:
ChangeLog | 8 +
src/org/RhinoTests/ScriptEngineFactoryClassTest.java | 81 ++++++++++++++++++++
2 files changed, 89 insertions(+), 0 deletions(-)
diffs (106 lines):
diff -r 102a062e2ee2 -r 45ce30265490 ChangeLog
--- a/ChangeLog Wed Apr 03 09:57:50 2013 +0200
+++ b/ChangeLog Thu Apr 04 10:14:43 2013 +0200
@@ -1,3 +1,11 @@
+2013-04-04 Pavel Tisnovsky
+
+ * src/org/RhinoTests/ScriptEngineFactoryClassTest.java:
+ Added following tests into the ScriptEngineFactoryClassTest:
+ getAnnotation, getComponentType, getClasses, getDeclaredClasses,
+ getDeclaringClass, getEnclosingClass, getEnclosingConstructor and
+ getEnclosingMethod.
+
2013-04-03 Pavel Tisnovsky
* src/org/RhinoTests/ScriptEngineManagerClassTest.java:
diff -r 102a062e2ee2 -r 45ce30265490 src/org/RhinoTests/ScriptEngineFactoryClassTest.java
--- a/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Wed Apr 03 09:57:50 2013 +0200
+++ b/src/org/RhinoTests/ScriptEngineFactoryClassTest.java Thu Apr 04 10:14:43 2013 +0200
@@ -753,6 +753,87 @@
}
/**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getAnnotation()
+ */
+ protected void testGetAnnotation() {
+ Annotation annotation;
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Annotation.class);
+ assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Documented.class);
+ assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Inherited.class);
+ assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Retention.class);
+ assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.annotation.Target.class);
+ assertNull(annotation, "annotation java.lang.annotation.Target should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.Deprecated.class);
+ assertNull(annotation, "annotation java.lang.Deprecated should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.Override.class);
+ assertNull(annotation, "annotation java.lang.Override should not be returned");
+ annotation = this.scriptEngineFactoryClass.getAnnotation(java.lang.SuppressWarnings.class);
+ assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getComponentType()
+ */
+ protected void testGetComponentType() {
+ Class> cls = this.scriptEngineFactoryClass.getComponentType();
+ assertNull(cls, "getComponentType() should returns null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getClasses()
+ */
+ protected void testGetClasses() {
+ Class>[] cls = this.scriptEngineFactoryClass.getClasses();
+ assertNotNull(cls, "getClasses() returns null");
+ assertEquals(cls.length, 0, "getClasses() returns wrong value!");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaredClasses()
+ */
+ protected void testGetDeclaredClasses() {
+ Class>[] cls = this.scriptEngineFactoryClass.getDeclaredClasses();
+ assertNotNull(cls, "getDeclaredClasses() returns null");
+ assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getDeclaringClass()
+ */
+ protected void testGetDeclaringClass() {
+ Class> cls = this.scriptEngineFactoryClass.getDeclaringClass();
+ assertNull(cls, "getDeclaringClass() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingClass()
+ */
+ protected void testGetEnclosingClass() {
+ Class> cls = this.scriptEngineFactoryClass.getEnclosingClass();
+ assertNull(cls, "getEnclosingClass() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingConstructor()
+ */
+ protected void testGetEnclosingConstructor() {
+ Constructor> cons = this.scriptEngineFactoryClass.getEnclosingConstructor();
+ assertNull(cons, "getEnclosingConstructor() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineFactory.getClass().getEnclosingMethod()
+ */
+ protected void testGetEnclosingMethod() {
+ Method m = this.scriptEngineFactoryClass.getEnclosingMethod();
+ assertNull(m, "getEnclosingMethod() does not return null");
+ }
+
+ /**
* Test for instanceof operator applied to a class javax.script.ScriptEngineFactory
*/
@SuppressWarnings("cast")
From jvanek at redhat.com Thu Apr 4 01:27:09 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Thu, 04 Apr 2013 10:27:09 +0200
Subject: [RFC][icedtea-web]: Set plugin JVM options in itw-settings
In-Reply-To: <515C59AD.5040204@redhat.com>
References: <508ED961.4070705@redhat.com> <509130B7.8090508@redhat.com>
<50AD1CC6.2060103@redhat.com> <50AD442B.1050903@redhat.com>
<50BD206B.8020209@redhat.com> <50BE4E34.6000201@redhat.com>
<50BE6A33.5010909@redhat.com> <50BF59A0.1030500@redhat.com>
<50BF91E5.8080500@redhat.com> <515C59AD.5040204@redhat.com>
Message-ID: <515D395D.8000801@redhat.com>
On 04/03/2013 06:32 PM, Adam Domurad wrote:
> On 12/05/2012 01:26 PM, Saad Mohammad wrote:
>> On 12/05/2012 09:26 AM, Adam Domurad wrote:
>>> On 12/04/2012 04:25 PM, Saad Mohammad wrote:
>>>> Hi Adam,
>>>>
>>>> Thanks for all the tips and tricks around C++. Updated patch is attached!
>>>> I'm starting to enjoy C++ as things start working more correctly now. :)
>>> Good to hear :)
>>>
>>>> [..snip..]
>>>> + }
>>>> +
>>>> + tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n");
>>>> +
>>>> + if (!tokenOutput->empty() && *tokenOutput->at(0) =="null")
>>>> + {
>>>> + delete tokenOutput->at(0);
>>>> + tokenOutput->erase(tokenOutput->begin());
>>>> + }
>>> A comment here about why you're deleting this token would be nice.
>>>
>>> Otherwise, I have no further torture to inflict on you :) Looks good to me now.
>>> If you have tested it to your satisfaction, OK for HEAD.
>>>
>>> Thanks,
>>> -Adam
>>>
>>>
>> Thanks again for all the feedback!
>> Pushed:
>>
>
> I would like to propose the patch + some clean-up that was eventually done for back-port to 1.3.
> The clean-up simply extracted common elements from an if block and the else block. It was done as a
> part of Jiri's code-coverage instrumentation patch.
>
> Some basic testing verifies that the jvm arguments are applied (putting gibberish is easiest). I
> have also read over the resulting code, and it checks out to me.
>
> Thanks,
> -Adam
Oh how I wish an reproducer for this in head... When there will be time it would be nice to have
working reproducer in suite for for RHU issue.
Anyway ok for 1.3
Thanx for it,
j.
From ptisnovs at icedtea.classpath.org Thu Apr 4 01:55:30 2013
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 08:55:30 +0000
Subject: /hg/gfx-test: Added ten new tests to the test suite ClippingCirc...
Message-ID:
changeset e3f6ec64979e in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=e3f6ec64979e
author: Pavel Tisnovsky
date: Thu Apr 04 10:58:44 2013 +0200
Added ten new tests to the test suite ClippingCircleByConcavePolygonalShape.
Added two new static helper methods used by some test cases.
diffstat:
ChangeLog | 7 +
src/org/gfxtest/framework/CommonRenderingStyles.java | 28 +
src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java | 230 ++++++++++
3 files changed, 265 insertions(+), 0 deletions(-)
diffs (320 lines):
diff -r 2ac0d3616507 -r e3f6ec64979e ChangeLog
--- a/ChangeLog Wed Apr 03 09:40:52 2013 +0200
+++ b/ChangeLog Thu Apr 04 10:58:44 2013 +0200
@@ -1,3 +1,10 @@
+2013-04-04 Pavel Tisnovsky
+
+ * src/org/gfxtest/framework/CommonRenderingStyles.java:
+ Added two new static helper methods used by some test cases.
+ * src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java:
+ Added ten new tests to this test suite.
+
2013-04-03 Pavel Tisnovsky
* src/org/gfxtest/testsuites/BitBltBasicTests.java:
diff -r 2ac0d3616507 -r e3f6ec64979e src/org/gfxtest/framework/CommonRenderingStyles.java
--- a/src/org/gfxtest/framework/CommonRenderingStyles.java Wed Apr 03 09:40:52 2013 +0200
+++ b/src/org/gfxtest/framework/CommonRenderingStyles.java Thu Apr 04 10:58:44 2013 +0200
@@ -182,6 +182,20 @@
}
/**
+ * Set transparent black color.
+ *
+ * @param graphics
+ * graphics context for image
+ * @param transparency
+ * color transparency represented in percents (0..100)
+ */
+ public static void setTransparentFillBlackColor(Graphics2D graphics, int transparency)
+ {
+ float value = transparencyToBounds(transparency / 100.0f);
+ graphics.setPaint(new Color(0.0f, 0.0f, 0.0f, value));
+ }
+
+ /**
* Set transparent red color.
*
* @param graphics
@@ -252,6 +266,20 @@
}
/**
+ * Set transparent yellow color.
+ *
+ * @param graphics
+ * graphics context for image
+ * @param transparency
+ * color transparency represented in percents (0..100)
+ */
+ public static void setTransparentFillYellowColor(Graphics2D graphics, int transparency)
+ {
+ float value = transparencyToBounds(transparency / 100.0f);
+ graphics.setPaint(new Color(1.0f, 1.0f, 0.0f, value));
+ }
+
+ /**
* Set horizontal gradient fill for given graphics context.
*
* @param image
diff -r 2ac0d3616507 -r e3f6ec64979e src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java
--- a/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Wed Apr 03 09:40:52 2013 +0200
+++ b/src/org/gfxtest/testsuites/ClippingCircleByConcavePolygonalShape.java Thu Apr 04 10:58:44 2013 +0200
@@ -120,6 +120,31 @@
/**
* Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha
+ * paint with black color and selected transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @param transparency
+ * selected transparency (0..100 percent)
+ */
+ private void drawCircleClippedByPolygonalShapeAlphaPaintBlack(TestImage image, Graphics2D graphics2d, int transparency)
+ {
+ // render clip polygon
+ CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d);
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTransparentFillBlackColor(graphics2d, transparency);
+ // create clip area
+ CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d);
+ // fill the shape
+ CommonShapesRenderer.drawFilledCircle(image, graphics2d);
+ }
+
+ /**
+ * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha
* paint with red color and selected transparency.
*
* @param image
@@ -244,6 +269,31 @@
}
/**
+ * Draw circle clipped by a concave polygonal shape. Circle is drawn using alpha
+ * paint with yellow color and selected transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @param transparency
+ * selected transparency (0..100 percent)
+ */
+ private void drawCircleClippedByPolygonalShapeAlphaPaintYellow(TestImage image, Graphics2D graphics2d, int transparency)
+ {
+ // render clip polygon
+ CommonClippingOperations.renderConcaveClipPolygon(image, graphics2d);
+ // set stroke color
+ CommonRenderingStyles.setStrokeColor(graphics2d);
+ // set fill color
+ CommonRenderingStyles.setTransparentFillYellowColor(graphics2d, transparency);
+ // create clip area
+ CommonClippingOperations.createClipUsingConcavePolygonalShape(image, graphics2d);
+ // fill the shape
+ CommonShapesRenderer.drawFilledCircle(image, graphics2d);
+ }
+
+ /**
* Check if circle shape could be clipped by a concave polygonal shape. Circle is
* rendered using stroke paint.
*
@@ -355,6 +405,96 @@
/**
* Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with black color at 0% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack000(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintBlack(image, graphics2d, 0);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with black color at 25% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack025(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintBlack(image, graphics2d, 25);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with black color at 50% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack050(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintBlack(image, graphics2d, 50);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with black color at 75% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack075(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintBlack(image, graphics2d, 75);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with black color at 100% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintBlack100(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintBlack(image, graphics2d, 100);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
* rendered using alpha paint with red color at 0% transparency.
*
* @param image
@@ -805,6 +945,96 @@
/**
* Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with yellow color at 0% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow000(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 0% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 0);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with yellow color at 25% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow025(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 25% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 25);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with yellow color at 50% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow050(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 50% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 50);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with yellow color at 75% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow075(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 75% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 75);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
+ * rendered using alpha paint with yellow color at 100% transparency.
+ *
+ * @param image
+ * work image
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testClipCircleByPolygonalShapeAlphaPaintYellow100(TestImage image, Graphics2D graphics2d)
+ {
+ // draw circle clipped by concave polygonal shape using alpha paint with 100% transparency
+ drawCircleClippedByPolygonalShapeAlphaPaintYellow(image, graphics2d, 100);
+ // test result
+ return TestResult.PASSED;
+ }
+
+ /**
+ * Check if circle shape could be clipped by a concave polygonal shape. Circle is
* rendered using horizontal gradient paint.
*
* @param image
From jvanek at icedtea.classpath.org Thu Apr 4 02:21:08 2013
From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 09:21:08 +0000
Subject: /hg/icedtea-web: 2 new changesets
Message-ID:
changeset 0f12ec95deb0 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0f12ec95deb0
author: Jiri Vanek
date: Thu Apr 04 11:20:09 2013 +0200
Plugin is now honoring the custom jre
changeset fbb6b3605538 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fbb6b3605538
author: Jiri Vanek
date: Thu Apr 04 11:21:04 2013 +0200
Fixing typo in changelog annotion -> annotation
diffstat:
ChangeLog | 12 +++++++++++-
launcher/itweb-settings.in | 9 +++++++--
launcher/javaws.in | 13 +++++++++----
plugin/icedteanp/IcedTeaNPPlugin.cc | 28 ++++++++++++++++++++++++----
4 files changed, 51 insertions(+), 11 deletions(-)
diffs (137 lines):
diff -r 8f99fc51187e -r fbb6b3605538 ChangeLog
--- a/ChangeLog Wed Apr 03 20:17:10 2013 +0200
+++ b/ChangeLog Thu Apr 04 11:21:04 2013 +0200
@@ -1,3 +1,13 @@
+2013-04-04 Jiri Vanek
+
+ Plugin is now honoring the custom jre
+ * launcher/itweb-settings.in :
+ * launcher/javaws.in:
+ In case that custom jre do not exists, complains, and use default rather
+ * plugin/icedteanp/IcedTeaNPPlugin.cc: (get_plugin_executable) and
+ (get_plugin_rt_jar) now tries to return custom values before returning the
+ default one.
+
2013-04-03 Jana Fabrikova
* /test/reproducers/simple/JavascriptFuncParam/testcases/JavascriptFuncParamTest.java:
@@ -18,7 +28,7 @@
current browser are detected in addition to the tests that are
k2f in all browsers
* /tests/junit-runner/LessVerboseTextListener.java:
- added method (getK2FinB) reading the annotion,
+ added method (getK2FinB) reading the annotation,
in method (printK2F) the testcases that are known to fail in
current browser are detected in addition to the tests that are
k2f in all browsers
diff -r 8f99fc51187e -r fbb6b3605538 launcher/itweb-settings.in
--- a/launcher/itweb-settings.in Wed Apr 03 20:17:10 2013 +0200
+++ b/launcher/itweb-settings.in Thu Apr 04 11:21:04 2013 +0200
@@ -7,13 +7,18 @@
BINARY_LOCATION=@ITWEB_SETTINGS_BIN_LOCATION@
PROGRAM_NAME=itweb-settings
-CUSTOM_JRE_REGEX="^deployment.jre.dir *= *"
+PROPERTY_NAME=deployment.jre.dir
+CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *"
CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"`
if [ "x$CUSTOM_JRE" = "x" ] ; then
CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"`
fi;
if [ "x$CUSTOM_JRE" != "x" ] ; then
- JAVA=$CUSTOM_JRE/bin/java
+ if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" ] ; then
+ JAVA=$CUSTOM_JRE/bin/java
+ else
+ echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA) in attempt to start. Please fix this."
+ fi
fi;
${JAVA} ${LAUNCHER_BOOTCLASSPATH} ${LAUNCHER_FLAGS} \
diff -r 8f99fc51187e -r fbb6b3605538 launcher/javaws.in
--- a/launcher/javaws.in Wed Apr 03 20:17:10 2013 +0200
+++ b/launcher/javaws.in Thu Apr 04 11:21:04 2013 +0200
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
JAVA=@JAVA@
LAUNCHER_BOOTCLASSPATH=@LAUNCHER_BOOTCLASSPATH@
@@ -9,14 +9,19 @@
PROGRAM_NAME=javaws
CP=@JRE@/lib/rt.jar
-CUSTOM_JRE_REGEX="^deployment.jre.dir *= *"
+PROPERTY_NAME=deployment.jre.dir
+CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *"
CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"`
if [ "x$CUSTOM_JRE" = "x" ] ; then
CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null | sed "s/$CUSTOM_JRE_REGEX//g"`
fi;
if [ "x$CUSTOM_JRE" != "x" ] ; then
- JAVA=$CUSTOM_JRE/bin/java
- CP=$CUSTOM_JRE/lib/rt.jar
+ if [ -d "$CUSTOM_JRE" -a -f "$CUSTOM_JRE/bin/java" -a -f "$CUSTOM_JRE/lib/rt.jar" ] ; then
+ JAVA=$CUSTOM_JRE/bin/java
+ CP=$CUSTOM_JRE/lib/rt.jar
+ else
+ echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this."
+ fi
fi;
JAVA_ARGS=( )
diff -r 8f99fc51187e -r fbb6b3605538 plugin/icedteanp/IcedTeaNPPlugin.cc
--- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Apr 03 20:17:10 2013 +0200
+++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 04 11:21:04 2013 +0200
@@ -48,6 +48,9 @@
#include
#include
+//IcedTea-plugin includes
+#include "IcedTeaPluginUtils.h"
+#include "IcedTeaParseProperties.h"
// Liveconnect extension
#include "IcedTeaScriptablePluginObject.h"
#include "IcedTeaNPPlugin.h"
@@ -74,6 +77,7 @@
#include
#endif
+
// Error reporting macros.
#define PLUGIN_ERROR(message) \
g_printerr ("%s:%d: thread %p: Error: %s\n", __FILE__, __LINE__, \
@@ -287,13 +291,29 @@
#endif
static std::string get_plugin_executable(){
- return std::string (appletviewer_default_executable);
-
+ std::string custom_jre;
+ bool custom_jre_defined = find_custom_jre(custom_jre);
+ if (custom_jre_defined) {
+ if (IcedTeaPluginUtilities::file_exists(custom_jre+"/bin/java")){
+ return custom_jre+"/bin/java";
+ } else {
+ fprintf(stderr, "Your custom jre (/bin/java check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str());
+ }
+ }
+ return appletviewer_default_executable;
}
static std::string get_plugin_rt_jar(){
- return std::string (appletviewer_default_rtjar);
-
+ std::string custom_jre;
+ bool custom_jre_defined = find_custom_jre(custom_jre);
+ if (custom_jre_defined) {
+ if (IcedTeaPluginUtilities::file_exists(custom_jre+"/lib/rt.jar")){
+ return custom_jre+"/lib/rt.jar";
+ } else {
+ fprintf(stderr, "Your custom jre (/lib/rt.jar check) %s is not valid. Please fix %s in your %s. In attempt to run using default one. \n", custom_jre.c_str(), custom_jre_key.c_str(), default_file_ITW_deploy_props_name.c_str());
+ }
+ }
+ return appletviewer_default_rtjar;
}
From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 02:35:50 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 09:35:50 +0000
Subject: [Bug 1384] New: Crash with importing project in eclipse on OpenSuSE
x64
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384
Bug ID: 1384
Summary: Crash with importing project in eclipse on OpenSuSE
x64
Classification: Unclassified
Product: IcedTea
Version: unspecified
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: IcedTea
Assignee: gnu.andrew at redhat.com
Reporter: christof.donat at adfinis-sygroup.ch
CC: unassigned at icedtea.classpath.org
Created attachment 847
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=847&action=edit
crash report of vm
I don't know if this is more an issue of the vm, or of eclipse.
What I did is, I tried to import an existing project, which is in a
subdirectory of a git repository into eclipse. obviously the import did
succeed. The project was available as expected after I restarted eclipse. But
before that it crashed with the attached report.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/6a327d06/attachment.html
From jvanek at redhat.com Thu Apr 4 03:18:26 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Thu, 04 Apr 2013 12:18:26 +0200
Subject: [rfc][icedtea-web] dialogue for set jre dir
In-Reply-To: <515C2CAF.1010408@redhat.com>
References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com>
<514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com>
<515C2CAF.1010408@redhat.com>
Message-ID: <515D5372.1070204@redhat.com>
On 04/03/2013 03:20 PM, Adam Domurad wrote:
> On 03/29/2013 11:49 AM, Jiri Vanek wrote:
> > On 03/21/2013 04:27 PM, Adam Domurad wrote:
> >> On 03/20/2013 06:54 AM, Jiri Vanek wrote:
> >>>
> >>> ping?
> >>>
> >>> -------- Original Message --------
> >>> Subject: [rfc][icedtea-web] dialogue for set jre dir
> >>> Date: Fri, 22 Feb 2013 15:01:17 +0100
> >>> From: Jiri Vanek
> >>> To: IcedTea Distro List
> >>>
> >>> This is only java part of "make-jredir-configurable after install effort"
> >>> To jvm settings pane it adds text-field to allow to write path to jre, whih is then saved to
> >>> properties. There is also button which fill launch jfilechooser (with correct default location) to
> >>> allow to choose the jre directory
> >>> And one funny button to validate his effort (with funny colourful messages;). As if the user will
> >>> add wrong location, he will not even start itw-settings (later).
> >>>
> >>>
> >>> J.
> >>>
> >>>
> >>
> >> It looked quite well done. I liked the visual validation a lot. General comments:
> >>
> >> - We should validate as soon as the user picks a path, and we should not let the user accept a
> >> configuration that couldn't possibly work. (itweb-settings will not be able to save them from a
> >> broken jre dir, correct?)
> > Ok. Although I don like it, added (added checkbox to disable type-time validation)
> >> - I would like a message here stating that misconfiguration of the JRE will require manual editing
> >> of the properties file.
> > God idea. added. Can also cancel closing of dialogue with invalid value.
> >>
> >> - I liked the colourful checking, however note that as it stands we currently only support
> >> *IcedTea*,
> >
> > Not true. We support OpenJdk.
>
> Discussed on IRC, we don't for the plugin. But at least javaws, which is better than I expected (I
> guess NetxPanel can be in the jar as long as it's never used?).
> >>> +
> >>> + private String resetValidationResult(final String value, String result, String headerKey) {
> >>> + return "" + Translator.R(headerKey) + ":
"+value+"
"+result+"
>>> />";
> >>> + }
> >>> }
> >>
> >>
> >> The Swing code looked otherwise fine to me, although I tend to not like to stare at Swing code too
> >> long :-).
> >>> diff -r 125c427b7a42 netx/net/sourceforge/jnlp/resources/Messages.properties
> >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Feb 14 15:48:21 2013 -0500
> >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Feb 22 09:45:06 2013 +0100
> >>> @@ -301,6 +301,25 @@
> >>> CPDebuggingDescription=Enable options here to help with debugging
> >>> CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut.
> >>> CPJVMPluginArguments=Set JVM arguments for plugin.
> >>> +CPJVMPluginExec=Set JVM for icedtea-web
> >>
> >> The difference between 'plugin' and 'icedtea-web' setting may not be clear, I'd like to see 'Set
> JVM
> >> for icedtea-web (plugin and javaws)'
> >
> > If you are refering to CPJVMPluginExec and CPJVMPluginExecValidationthen you are right.
> >
> > If you are referring to CPJVMPluginArguments, then I'm afraid javaws do not read this. But should!
> > Worthy of another, simple patch?
> > Or add CPJVMJavawsArguments ?
> >>> +CPJVMPluginExecValidation=Validate JVM for icedtea-web
> >>> +CPJVMPluginSelectExec=Select JVM for icedtea-web
> >>> +CPJVMnone=None validation result for
> >>
> >> I'm sorry, I have no clue what 'None validation result' means or why it is needed. From when I saw
> >> it occur, it seems nothing be outputted would suffice.
> >
> > It is used whn there is no valid result (eg erro during processing or no invocation of validation)
> > kept.
>
> I saw it occur just from switching to the JVM settings panel inside ITW-settings, I think.
>
> >>> +CPJVMvalidated=Validation result for
> >>> +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used
> >>> +CPJVMnotLaunched=Error, process was not launched, see console outputs for more info
> >>
> >> s/outputs/output/
> >>> +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java
> >>> is not set correctly
> >>
> >> It's a nit, but I'd like these all to end with periods. Especially the messages with more than one
> >> sentence.
> >>> +CPJVMopenJdkFound=Excellent, OpenJDK detected
> >>> +CPJVMoracleFound=Great, Oracle java detected
> >>> +CPJVMibmFound=Good, IBM java detected
> >>> +CPJVMgijFound=Warning, gij detected
> >>
> >> These messages are a little too 'funny' IMHO. Anyway as stated, we should have exactly one correct
> >> state, 'Valid JRE, IcedTea was successfully detected'. You should really just have one message
> >> 'Valid JRE, {0} was successfully detected', to ease translation efforts. GIJ never got past java5,
> >> there's no need to do anything but fail on it (although we can say why).
> >
> > Not mentioned to be funny. Little bit reworded and hints leading to OpenJDK added.
>
> General comments:
> - I like the validate-as-you-type :-)
> [nit], the validate button could be greyed out when you are on 'auto-validate' mode
> - I got the error "java.io.IOException: Cannot run program "/usr/java/latest/bi/bin/java"" when
> validating Oracle JDK. Not sure why. It correctly said my directory (/usr/java/latest/) had
> bin/java, but got that error while running it.
>
> Patch comments:
>
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/Defaults.java
> > --- a/netx/net/sourceforge/jnlp/config/Defaults.java Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Fri Mar 29 16:49:02 2013 +0100
> > @@ -391,6 +391,12 @@
> > DeploymentConfiguration.KEY_SECURITY_LEVEL,
> > new SecurityValueValidator(),
> > null
> > + },
> > + //JVM executable for itw
> > + {
> > + DeploymentConfiguration.KEY_JRE_DIR,
> > + null,
> > + null
> > }
> > };
> >
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
> > --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Mar 29 16:49:02 2013 +0100
> > @@ -166,6 +166,7 @@
> > * JVM arguments for plugin
> > */
> > public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments";
> > + public static final String KEY_JRE_DIR= "deployment.jre.dir";
> >
> > public enum ConfigType {
> > System, User
> > @@ -178,6 +179,10 @@
> > private File systemPropertiesFile = null;
> > /** The user's deployment.config file */
> > private File userPropertiesFile = null;
> > +
> > + /*default user file*/
> > + public static final File USER_DEPLOYMENT_PROPERTIES_FILE = new
> File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR
> > + + File.separator + DEPLOYMENT_PROPERTIES);
> >
> > /** the current deployment properties */
> > private Map> currentConfiguration;
> > @@ -221,8 +226,7 @@
> > */
> > public void load(boolean fixIssues) throws ConfigurationException {
> > // make sure no state leaks if security check fails later on
> > - File userFile = new File(System.getProperty("user.home") + File.separator + DEPLOYMENT_DIR
> > - + File.separator + DEPLOYMENT_PROPERTIES);
> > + File userFile = new File(USER_DEPLOYMENT_PROPERTIES_FILE.getAbsolutePath());
> >
> > SecurityManager sm = System.getSecurityManager();
> > if (sm != null) {
> > @@ -415,8 +419,25 @@
> > return etcFile;
> > }
> >
> > - File jreFile = new File(System.getProperty("java.home") + File.separator + "lib"
> > - + File.separator + DEPLOYMENT_CONFIG);
> > + String jrePath = null;
> > + try {
> > + Map> tmpProperties =
> parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE);
> > + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR);
> > + if (jreSetting != null) {
> > + jrePath = jreSetting.getValue();
> > + }
> > + } catch (Exception ex) {
> > + ex.printStackTrace();
> > + }
> > +
> > + File jreFile;
> > + if (jrePath != null) {
> > + jreFile = new File(jrePath + File.separator + "lib"
> > + + File.separator + DEPLOYMENT_CONFIG);
> > + } else {
> > + jreFile = new File(System.getProperty("java.home") + File.separator + "lib"
> > + + File.separator + DEPLOYMENT_CONFIG);
> > + }
>
> Looks OK
>
> > if (jreFile.isFile()) {
> > return jreFile;
> > }
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java
> > --- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Mar 29 16:49:02 2013 +0100
> > @@ -53,6 +53,7 @@
> > import javax.swing.event.ListSelectionListener;
> >
> > import net.sourceforge.jnlp.config.DeploymentConfiguration;
> > +import net.sourceforge.jnlp.controlpanel.JVMPanel.JvmValidationResult;
> > import net.sourceforge.jnlp.runtime.Translator;
> > import net.sourceforge.jnlp.security.KeyStores;
> > import net.sourceforge.jnlp.security.viewer.CertificatePane;
> > @@ -157,6 +158,20 @@
> > topPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > return topPanel;
> > }
> > +
> > + private int validateJdk() {
> > + String s = ControlPanel.this.config.getProperty(DeploymentConfiguration.KEY_JRE_DIR);
> > + JvmValidationResult validationResult = JVMPanel.validateJvm(s);
> > + if (validationResult.id == JvmValidationResult.ID.NOT_DIR
> > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_DIR
> > + || validationResult.id == JvmValidationResult.ID.NOT_VALID_JDK) {
> > + return JOptionPane.showConfirmDialog(ControlPanel.this,
> > + ""+Translator.R("CPJVMNotokMessage1", s)+"
"
> > + + validationResult.formatedText+"
"
> > + + Translator.R("CPJVMNotokMessage2", DeploymentConfiguration.KEY_JRE_DIR,
> DeploymentConfiguration.USER_DEPLOYMENT_PROPERTIES_FILE)+"");
> > + }
> > + return JOptionPane.OK_OPTION;
> > + }
> >
> > /**
> > * Creates the "ok" "apply" and "cancel" buttons.
> > @@ -173,6 +188,10 @@
> > @Override
> > public void actionPerformed(ActionEvent e) {
> > ControlPanel.this.saveConfiguration();
> > + int i = validateJdk();
>
> [nit] 'i' could be better named
>
> > + if (i!= JOptionPane.OK_OPTION){
> > + return;
> > + }
> > ControlPanel.this.dispose();
> > }
> > });
> > @@ -183,6 +202,7 @@
> > @Override
> > public void actionPerformed(ActionEvent e) {
> > ControlPanel.this.saveConfiguration();
> > + validateJdk();
> > }
> > });
> > buttons.add(applyButton);
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java
> > --- a/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Fri Mar 29 16:49:02 2013 +0100
> > @@ -40,17 +40,44 @@
> > import java.awt.Dimension;
> > import java.awt.GridBagConstraints;
> > import java.awt.GridBagLayout;
> > -
> > +import java.awt.Insets;
> > +import java.awt.event.ActionEvent;
> > +import java.awt.event.ActionListener;
> > +import java.io.File;
> > import javax.swing.Box;
> > +import javax.swing.JButton;
> > +import javax.swing.JCheckBox;
> > +import javax.swing.JFileChooser;
> > import javax.swing.JLabel;
> > import javax.swing.JTextField;
> > -
> > +import javax.swing.event.DocumentEvent;
> > +import javax.swing.event.DocumentListener;
> > +import javax.swing.text.Document;
> > import net.sourceforge.jnlp.config.DeploymentConfiguration;
> > import net.sourceforge.jnlp.runtime.Translator;
> > +import net.sourceforge.jnlp.util.StreamUtils;
> >
> > @SuppressWarnings("serial")
> > public class JVMPanel extends NamedBorderPanel {
> > - private DeploymentConfiguration config;
> > +
> > + public static class JvmValidationResult {
> > +
> > + public static enum ID{
>
> [nit] space here after ID
> Why is this called ID ? It doesn't identify anything, it's a result.
>
> > + EMPTY, NOT_DIR, NOT_VALID_DIR, NOT_VALID_JDK, VALID_JDK;
> > + }
> > + public final String formatedText;
>
> s/formatedText/formattedText/
>
> > + public final ID id;
> > +
> > + public JvmValidationResult(String formatedText, ID id) {
> > + this.id = id;
> > + this.formatedText = formatedText;
>
> Indent this please.
>
> > + }
> > +
> > +
> > + }
> > +
> > + private DeploymentConfiguration config;
> > + private File lastPath = new File("/usr/lib/jvm/java/jre/");
> >
> > JVMPanel(DeploymentConfiguration config) {
> > super(Translator.R("CPHeadJVMSettings"), new GridBagLayout());
> > @@ -59,22 +86,130 @@
> > }
> >
> > private void addComponents() {
> > - JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
/>");
> > - JTextField testFieldArguments = new JTextField(25);
> > + final JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") +
> "
");
> > + final JTextField testFieldArguments = new JTextField(25);
> >
> > testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config,
> DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS));
> > testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS));
> >
> > +
> > + final JLabel descriptionExec = new JLabel("" + Translator.R("CPJVMitwExec") + "
/>");
> > + final JTextField testFieldArgumentsExec = new JTextField(100);
> > + final JLabel validationResult = new
> JLabel(resetValidationResult(testFieldArgumentsExec.getText(), "", "CPJVMnone"));
> > + final JCheckBox allowTypoTimeValidation = new
> JCheckBox(Translator.R("CPJVMPluginAllowTTValidation"), true);
> > + allowTypoTimeValidation.addActionListener(new ActionListener() {
> > + @Override
> > + public void actionPerformed(ActionEvent e) {
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "",
> "CPJVMnone"));
> > + }
> > + });
> > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentListener() {
> > + String last = "";
> > + int c = 0;
>
> Am I missing something ? Where are last & c used ?
>
> > +
> > + private String documentToString(Document d) {
> > + try {
> > + return d.getText(0, d.getLength());
> > + } catch (Exception ex) {
> > + return "";
> > + }
> > + }
> > +
> > + @Override
> > + public void insertUpdate(DocumentEvent e) {
> > + if (allowTypoTimeValidation.isSelected()) {
> > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText());
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(),
> s.formatedText, "CPJVMvalidated"));
> > + }
> > + }
> > +
> > + @Override
> > + public void removeUpdate(DocumentEvent e) {
> > + if (allowTypoTimeValidation.isSelected()) {
> > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText());
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(),
> s.formatedText, "CPJVMvalidated"));
> > + }
> > + }
> > +
> > + @Override
> > + public void changedUpdate(DocumentEvent e) {
> > + if (allowTypoTimeValidation.isSelected()) {
> > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText());
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(),
> s.formatedText, "CPJVMvalidated"));
> > + }
> > + }
> > + });
> > +
> > + testFieldArgumentsExec.getDocument().addDocumentListener(new DocumentAdapter(config,
> DeploymentConfiguration.KEY_JRE_DIR));
> > + testFieldArgumentsExec.setText(config.getProperty(DeploymentConfiguration.KEY_JRE_DIR));
> > +
> > + final JButton selectJvm = new JButton(Translator.R("CPJVMPluginSelectExec"));
> > + selectJvm.addActionListener(new ActionListener() {
> > + @Override
> > + public void actionPerformed(ActionEvent e) {
> > + JFileChooser jfch;
> > + if (lastPath != null && lastPath.exists()) {
> > + jfch = new JFileChooser(lastPath);
> > + } else {
> > + jfch = new JFileChooser();
> > + }
> > + jfch.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
> > + int i = jfch.showOpenDialog(JVMPanel.this);
> > + if (i == JFileChooser.APPROVE_OPTION && jfch.getSelectedFile() != null) {
> > + lastPath = jfch.getSelectedFile().getParentFile();
> > + String nws = jfch.getSelectedFile().getAbsolutePath();
> > + String olds = testFieldArgumentsExec.getText();
> > + if (!nws.equals(olds)) {
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(), "",
> "CPJVMnone"));
> > + }
> > + testFieldArgumentsExec.setText(nws);
> > + }
> > +
> > + }
> > + });
> > + final JButton validateJvm = new JButton(Translator.R("CPJVMitwExecValidation"));
> > + validateJvm.addActionListener(new ActionListener() {
> > + @Override
> > + public void actionPerformed(ActionEvent e) {
> > + JvmValidationResult s = validateJvm(testFieldArgumentsExec.getText());
> > + validationResult.setText(resetValidationResult(testFieldArgumentsExec.getText(),
> s.formatedText, "CPJVMvalidated"));
> > +
> > + }
> > + });
> > +
> > // Filler to pack the bottom of the panel.
> > GridBagConstraints c = new GridBagConstraints();
> > c.fill = GridBagConstraints.BOTH;
> > c.weightx = 1;
> > + c.gridwidth = 4;
> > c.gridx = 0;
> > c.gridy = 0;
> > + c.insets = new Insets(2, 2, 4, 4);
> >
> > this.add(description, c);
> > c.gridy++;
> > this.add(testFieldArguments, c);
> > + c.gridy++;
> > + this.add(descriptionExec, c);
> > + c.gridy++;
> > + this.add(testFieldArgumentsExec, c);
> > + c.gridy++;
> > + GridBagConstraints cb1 = (GridBagConstraints) c.clone();
> > + cb1.fill = GridBagConstraints.NONE;
> > + cb1.gridwidth = 1;
> > + this.add(selectJvm, cb1);
> > + GridBagConstraints cb3 = (GridBagConstraints) c.clone();
> > + cb3.fill = GridBagConstraints.NONE;
> > + cb3.gridx = 2;
> > + cb3.gridwidth = 1;
> > + this.add(allowTypoTimeValidation, cb3);
> > + GridBagConstraints cb2 = (GridBagConstraints) c.clone();
> > + cb2.fill = GridBagConstraints.NONE;
> > + cb2.gridx = 3;
> > + cb2.gridwidth = 1;
> > + this.add(validateJvm, cb2);
> > + c.gridy++;
> > + this.add(validationResult, c);
> >
> > // This is to keep it from expanding vertically if resized.
> > Component filler = Box.createRigidArea(new Dimension(1, 1));
> > @@ -82,4 +217,104 @@
> > c.weighty++;
> > this.add(filler, c);
> > }
> > +
> > + public static JvmValidationResult validateJvm(String cmd) {
> > + if (cmd == null || cmd.trim().equals("")) {
> > + return new JvmValidationResult("" +
> Translator.R("CPJVMvalueNotSet") + "",
> > + JvmValidationResult.ID.EMPTY);
> > + }
> > + String validationResult = "";
> > + File jreDirFile = new File(cmd);
> > + JvmValidationResult.ID latestOne = JvmValidationResult.ID.EMPTY;
> > + if (jreDirFile.isDirectory()) {
> > + validationResult += "" + Translator.R("CPJVMisDir") +
> "
";
> > + } else {
> > + validationResult += "" + Translator.R("CPJVMnotDir") +
> "
";
> > + latestOne = JvmValidationResult.ID.NOT_DIR;
> > + }
> > + File javaFile = new File(cmd + File.separator + "bin" + File.separator + "java");
> > + if (javaFile.isFile()) {
> > + validationResult += "" + Translator.R("CPJVMjava") +
> "
";
> > + } else {
> > + validationResult += "" + Translator.R("CPJVMnoJava") +
> "
";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + }
> > + File rtFile = new File(cmd + File.separator + "lib" + File.separator + "rt.jar");
> > + if (javaFile.isFile()) {
> > + validationResult += "" + Translator.R("CPJVMrtJar") +
> "
";
> > + } else {
> > + validationResult += "" + Translator.R("CPJVMnoRtJar") +
> "
";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + }
> > + ProcessBuilder sb = new ProcessBuilder(javaFile.getAbsolutePath(), "-version");
> > + Process p = null;
> > + String processErrorStream = "";
> > + String processStdOutStream = "";
> > + Integer r = null;
> > + try {
> > + p = sb.start();
> > + p.waitFor();
> > + processErrorStream = StreamUtils.readStreamAsString(p.getErrorStream());
> > + processStdOutStream = StreamUtils.readStreamAsString(p.getInputStream());
> > + r = p.exitValue();
> > + //System.err.println(processErrorStream);
> > + //System.out.println(processStdOutStream);
> > + processErrorStream = processErrorStream.toLowerCase();
> > + processStdOutStream = processStdOutStream.toLowerCase();
> > + } catch (Exception ex) {;
> > + ex.printStackTrace();
> > +
> > + }
> > + if (r == null) {
> > + validationResult += "" + Translator.R("CPJVMnotLaunched") +
> "";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + return new JvmValidationResult(validationResult, latestOne);
> > + }
> > + if (r.intValue() != 0) {
> > + validationResult += "" + Translator.R("CPJVMnoSuccess") +
> "";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + return new JvmValidationResult(validationResult, latestOne);
> > + }
> > + if (processErrorStream.contains("openjdk") || processStdOutStream.contains("openjdk")) {
> > + validationResult += "" + Translator.R("CPJVMopenJdkFound") +
> "";
> > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.VALID_JDK);
> > + }
> > + if (processErrorStream.contains("ibm") || processStdOutStream.contains("ibm")) {
> > + validationResult += "" + Translator.R("CPJVMibmFound") +
> "";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + return new JvmValidationResult(validationResult, latestOne);
> > + }
> > + if (processErrorStream.contains("gij") || processStdOutStream.contains("gij")) {
> > + validationResult += "" + Translator.R("CPJVMgijFound") +
> "";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + return new JvmValidationResult(validationResult, latestOne);
> > + }
> > + if (processErrorStream.contains("oracle") || processStdOutStream.contains("oracle")
> > + || processErrorStream.contains("Java(TM)") ||
> processStdOutStream.contains("Java(TM)")) {
> > + validationResult += "" + Translator.R("CPJVMoracleFound") +
> "";
> > + if (latestOne != JvmValidationResult.ID.NOT_DIR) {
> > + latestOne = JvmValidationResult.ID.NOT_VALID_JDK;
> > + }
> > + return new JvmValidationResult(validationResult, latestOne);
> > + }
> > + validationResult += "" + Translator.R("CPJVMstrangeProcess") +
> "";
> > + return new JvmValidationResult(validationResult, JvmValidationResult.ID.NOT_VALID_JDK);
> > +
> > + }
> > +
> > + private String resetValidationResult(final String value, String result, String headerKey) {
> > + return "" + Translator.R(headerKey) + ":
" + value + "
" + result +
> "
";
> > + }
> > }
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/resources/Messages.properties
> > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 29 16:49:02 2013 +0100
> > @@ -310,6 +310,29 @@
> > CPDebuggingDescription=Enable options here to help with debugging
> > CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut.
> > CPJVMPluginArguments=Set JVM arguments for plugin.
> > +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK
> > +CPJVMitwExecValidation=Validate JVM for icedtea-web
> > +CPJVMPluginSelectExec=Select JVM for icedtea-web
> > +CPJVMnone=None validation result for
>
> s/None/No/
>
> > +CPJVMvalidated=Validation result for
> > +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used.
> > +CPJVMnotLaunched=Error, process was not launched, see console output for more info.
> > +CPJVMnoSuccess=Error, process have not ended successfully, see output for details, but your java
> is not set correctly.
> > +CPJVMopenJdkFound=Excellent, OpenJDK detected
> > +CPJVMoracleFound=Great, Oracle java detected
> > +CPJVMibmFound=Good, IBM java detected
> > +CPJVMgijFound=Warning, gij detected
> > +CPJVMstrangeProcess=Your path had an executable process, but it was not recognized. Verify the
> Java version in the console output.
> > +CPJVMnotDir=Error, The path you chose is not a directory.
> > +CPJVMisDir=Ok, the path you chose is a directory.
> > +CPJVMnoJava=Error, the directory you chose does not contain bin/java.
> > +CPJVMjava=Ok, the directory you chose contains bin/java.
> > +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar
> > +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar.
> > +CPJVMPluginAllowTTValidation=Allow type-time validation
> > +CPJVMNotokMessage1=You have entered invalid JDK value ({0}) with following error message:
> > +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not able to start.
You will
> have to modify or remove {0} property in your configuration file {1}.
You should
> try to search for OpenJDK in your system or be sure you know what you are doing.
>
> Looks OK, although I haven't see this 'CPJVMNotokMessage2'.
>
> > +
> >
> > # Control Panel - Buttons
> > CPButAbout=About...
> > diff -r 3405d5fc4339 netx/net/sourceforge/jnlp/util/StreamUtils.java
> > --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Mar 28 14:40:11 2013 -0400
> > +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Fri Mar 29 16:49:02 2013 +0100
> > @@ -37,9 +37,11 @@
> >
> > package net.sourceforge.jnlp.util;
> >
> > +import java.io.BufferedReader;
> > import java.io.Closeable;
> > import java.io.IOException;
> > import java.io.InputStream;
> > +import java.io.InputStreamReader;
> >
> > public class StreamUtils {
> >
> > @@ -71,4 +73,21 @@
> > }
> > }
> > }
> > +
> > +
> > + public static String readStreamAsString(InputStream stream) throws IOException {
> > + InputStreamReader is = new InputStreamReader(stream);
> > + StringBuilder sb = new StringBuilder();
> > + BufferedReader br = new BufferedReader(is);
> > + while (true) {
> > + String read = br.readLine();
> > + if (read == null) {
> > + break;
> > + }
> > + sb.append(read);
> > +
> > + }
> > +
> > + return sb.toString();
> > + }
> > }
Nits fixed...
>
> Looks good overall! Only really thing is I still don't have it detecting Oracle JDK =/
I do not have issues with oracle jvm :(( Today verified aon jre, jdk
> As well as we discussed, it should perhaps indicate that only javaws works with non-icedtea JVM's.
It does:) It expalins why you have never seen CPJVMNotokMessage2.
When you click ok/apply, then there is one more validation. And if there is something else then
openjdk, then user is warned about troubles (CPJVMNotokMessage2:) )
J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setupaAbleJVM-itwsettings_3.diff
Type: text/x-patch
Size: 22089 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/e9006f06/setupaAbleJVM-itwsettings_3.diff
From adomurad at redhat.com Thu Apr 4 08:43:27 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Thu, 04 Apr 2013 11:43:27 -0400
Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function return
types" tests
In-Reply-To: <515C7698.8020708@redhat.com>
References: <50FE6C4C.4040902@redhat.com> <515C7698.8020708@redhat.com>
Message-ID: <515D9F9F.1030505@redhat.com>
On 04/03/2013 02:36 PM, Jana Fabrikova wrote:
> Hi, I am resending last of the JS->J reproducers that was maybe lost
> in the big amount of [rfc][icedtea-web] mail,
Sorry, yes it was. Thanks for the ping! I don't know how I feel about
reproducers being this in-depth. In theory, the conversion code for Java
-> Javascript should be shared, and does not need to be tested yet again
just because it is a function return value. But as it is already
written, I suppose we shouldn't remove tests.
>
> thank you for any comments,
>
> Jana
>
> On 01/22/2013 11:39 AM, Jana Fabrikova wrote:
>> Hello,
>>
>> I have rewritten also the JSToJFuncReturn reproducer with respect to
>> Adam's comments, its structure is very similar to JSToJFuncParam, please
>> find the patch attached,
>>
>> Jana
>>
>>
>> 2013-01-15 Jana Fabrikova
>>
>> *
>> /tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java:
>>
>>
>> adding 22 testcases - 21 based on the interactive Liveconnect JS->Java
>> function return types tests, 1 additional testcase for returning
>> JSObject (calling a Java method from JS)
>>
>> * /tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java:
>> the applet whose methods are invoked from JS during the tests
>>
>> *
>> /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js:
>>
>> the JavaScript code for calling the applet methods from JS
>>
>> *
>> /tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp:
>>
>> java network launch protocol file for displaying applet in the html page
>>
>> *
>> /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html:
>> the html page with java applet embedded, displayed in browser during the
>> tests
>
> diff --git a/JSToJFuncReturn_modification.patch
> b/JSToJFuncReturn_modification.patch
> new file mode 100644
> diff --git
> a/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html
> b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html
> new file mode 100644
> --- /dev/null
> +++
> b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html
> @@ -0,0 +1,26 @@
> +
> +
> +
> + JavaScript to Java LiveConnect - Function return values from
> applet
> +
> +
> +
> +
> +
> +
> +
> + The JSToJFuncReturn html page
> +
> +
> +
> +
> +
> +
> +
> +
> +
> +
> diff --git
> a/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js
> b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js
> new file mode 100644
> --- /dev/null
> +++
> b/tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js
> @@ -0,0 +1,17 @@
> +function doFuncReturnTests(){
> + var urlArgs = document.URL.split("?");
> + var applet = document.getElementById('jstojFuncReturnApplet');
> + var method = urlArgs[1];
> +
> + eval('var value = applet.' + method + '()');
> +
> + var checked_string = typeof(value)+' ';
> + if( method === '_JSObject'){
> + checked_string = checked_string +value.key1;
> + }else{
> + checked_string = checked_string +value;
> + }
> +
> + applet.printStringAndFinish(checked_string);
> +}
> +
> diff --git
> a/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp
> b/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp
> new file mode 100644
> --- /dev/null
> +++
> b/tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp
> @@ -0,0 +1,23 @@
> +
> +
> +
> +
> + JavaScript to Java LiveConnect - FuncReturn
> + RedHat
> + href="http://icedtea.classpath.org/wiki/IcedTea-Web#Testing_IcedTea-Web"/>
> + LiveConnect - tests to process various return types
> from Java side function calls.
> +
> +
> +
> + + href="http://java.sun.com/products/autodl/j2se"/>
> +
> +
> +
> + + name="JS to J FuncReturn"
> + main-class="JSToJFuncReturn"
> + width="1000"
> + height="100">
> +
> +
> diff --git
> a/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java
> b/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java
> new file mode 100644
> --- /dev/null
> +++ b/tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java
> @@ -0,0 +1,158 @@
> +import java.applet.Applet;
> +import java.awt.Label;
> +import java.awt.BorderLayout;
> +import netscape.javascript.JSObject;
> +
> +public class JSToJFuncReturn extends Applet {
> +
> + private Label statusLabel;
> +
> + public int _int() {
> + int i = 1;
> + return i;
> + }
> +
> + public double _double() {
> + double d = 1.1;
> + return d;
> + }
> +
> + public float _float() {
> + float f = 1.1F;
> + return f;
> + }
> +
> + public long _long() {
> + long l = 10000L;
> + return l;
> + }
> +
> + public boolean _boolean() {
> + boolean b = true;
> + return b;
> + }
> +
> + public char _char() {
> + char c = 'a';
> + return c;
> + }
> +
> + public byte _byte() {
> + byte by = 10;
> + return by;
> + }
> +
> + public char _charArrayElement(){
> + char[] ca = new char[3];
char[] ca = new char[]{'a', 'b', 'c'}); is simpler
> +
> + ca[0] = 'a';
> + ca[1] = 'b';
> + ca[2] = 'c';
> +
> + return ca[0];
> + }
> +
> + public char[] _charArray() {
> + char[] ca = new char[3];
return new char[]{'a', 'b', 'c'}; is simpler
> +
> + ca[0] = 'a';
> + ca[1] = 'b';
> + ca[2] = 'c';
> +
> + return ca;
> + }
> +
> + public String _regularString() {
> + String rs = "test";
> + return rs;
> + }
> +
> + public String _specialString() {
> + String ss = "????$????";
> + return ss;
> + }
> +
> + public void _void() {
> + }
> +
> + public Object _null() {
> + return null;
> + }
> +
> + public Integer _Integer() {
> + Integer I = 1;
> + return I;
> + }
> +
> + public Double _Double() {
> + Double D = 1.1;
> + return D;
> + }
> +
> + public Float _Float() {
> + Float F = 1.1F;
> + return F;
> + }
> +
> + public Long _Long() {
> + Long L = 10000L;
> + return L;
> + }
> +
> + public Boolean _Boolean() {
> + Boolean B = true;
> + return B;
> + }
> +
> + public Character _CharacterArrayElement(){
> + Character[] Ca = new Character[3];
You should be able to define this array on one line.
> +
> + Ca[0] = 'A';
> + Ca[1] = 'B';
> + Ca[2] = 'C';
> +
> + return Ca[0];
> + }
> +
> + public Character _Character() {
> + Character C = 'A';
> + return C;
> + }
> +
> + public Byte _Byte() {
> + Byte By = 10;
> + return By;
> + }
> +
> + public Character[] _CharacterArray() {
> + Character[] Ca = new Character[3];
You should be able to define this array on one line.
> +
> + Ca[0] = 'A';
> + Ca[1] = 'B';
> + Ca[2] = 'C';
> +
> + return Ca;
> + }
> +
> + public JSObject _JSObject(){
> + JSObject win = JSObject.getWindow(this);
> + JSObject jso = (JSObject) win.getMember("document");
> + jso.setMember("key1","value1");
> +
> + return jso;
> + }
> +
> + public void init() {
> + setLayout(new BorderLayout());
> + statusLabel = new Label();
> + add(statusLabel);
> + String initStr = "JSToJFuncReturn applet initialized.";
> + System.out.println(initStr);
> + statusLabel.setText(initStr);
> + }
> +
> + public void printStringAndFinish(String str){
> + System.out.println(str);
> + System.out.println("afterTests");
> + }
> +}
> diff --git
> a/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java
> b/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java
> new file mode 100644
> --- /dev/null
> +++
> b/tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java
> @@ -0,0 +1,242 @@
> +/* JSToJFuncReturnTest.java
> +Copyright (C) 2012 Red Hat, Inc.
> +
> +This file is part of IcedTea.
> +
> +IcedTea is free software; you can redistribute it and/or
> +modify it under the terms of the GNU General Public License as
> published by
> +the Free Software Foundation, version 2.
> +
> +IcedTea is distributed in the hope that it will be useful,
> +but WITHOUT ANY WARRANTY; without even the implied warranty of
> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +General Public License for more details.
> +
> +You should have received a copy of the GNU General Public License
> +along with IcedTea; see the file COPYING. If not, write to
> +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
> Boston, MA
> +02110-1301 USA.
> +
> +Linking this library statically or dynamically with other modules is
> +making a combined work based on this library. Thus, the terms and
> +conditions of the GNU General Public License cover the whole
> +combination.
> +
> +As a special exception, the copyright holders of this library give you
> +permission to link this library with independent modules to produce an
> +executable, regardless of the license terms of these independent
> +modules, and to copy and distribute the resulting executable under
> +terms of your choice, provided that you also meet, for each linked
> +independent module, the terms and conditions of the license of that
> +module. An independent module is a module which is not derived from
> +or based on this library. If you modify this library, you may extend
> +this exception to your version of the library, but you are not
> +obligated to do so. If you do not wish to do so, delete this
> +exception statement from your version.
> + */
> +
> +import net.sourceforge.jnlp.ProcessResult;
> +import net.sourceforge.jnlp.ServerAccess;
> +import net.sourceforge.jnlp.browsertesting.BrowserTest;
> +import net.sourceforge.jnlp.browsertesting.Browsers;
> +import net.sourceforge.jnlp.closinglisteners.CountingClosingListener;
> +import net.sourceforge.jnlp.annotations.KnownToFail;
> +import net.sourceforge.jnlp.annotations.NeedsDisplay;
> +import net.sourceforge.jnlp.annotations.TestInBrowsers;
> +import org.junit.Assert;
> +
> +import org.junit.Test;
> +
> +public class JSToJFuncReturnTest extends BrowserTest {
> +
> + private final String initStr = "JSToJFuncReturn applet initialized.";
> + private final String afterStr = "afterTests";
> +
> + private class CountingClosingListenerImpl extends
> CountingClosingListener {
> +
> + @Override
> + protected boolean isAlowedToFinish(String s) {
> +
> + return (s.contains(initStr) && s.contains(afterStr));
> + }
> + }
> +
> + private void evaluateStdoutContents(String expectedStdout,
> ProcessResult pr) {
> + // Assert that the applet was initialized.
> + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+
> initStr + " but it didnt.", pr.stdout.contains(initStr));
> +
> + // Assert that the tests have passed.
> + Assert.assertTrue("JSToJFuncReturnTest stdout should contain "+
> expectedStdout + " but it didnt.", pr.stdout.contains(expectedStdout));
> + }
> +
> +
> + private void jsToJavaFuncReturnNormalTest(String methodStr, String
> expectedStdout) throws Exception {
> + String strURL = "/JSToJFuncReturn.html?" + methodStr;
> + ProcessResult pr = server.executeBrowser(strURL, new
> CountingClosingListenerImpl(), new CountingClosingListenerImpl());
> + evaluateStdoutContents(expectedStdout, pr);
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_int_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_int", "number 1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_double_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_double", "number 1.1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_float_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_float", "number 1.1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_long_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_long", "number 10000");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_boolean_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_boolean", "boolean true");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_char_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_char", "number 97"); //'a'
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_byte_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_byte", "number 10");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_charArrayElement_Test() throws
> Exception {
> + jsToJavaFuncReturnNormalTest("_charArrayElement", "number 97");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_void_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_void", "undefined undefined");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_regularString_Test() throws
> Exception {
> + jsToJavaFuncReturnNormalTest("_regularString", "string test");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_specialCharsString_Test() throws
> Exception {
> + jsToJavaFuncReturnNormalTest("_specialString", "string ????$????");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_null_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_null", "object null");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Integer_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Integer", "object 1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Double_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Double", "object 1.1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Float_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Float", "object 1.1");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Long_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Long", "object 10000");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Boolean_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Boolean", "object true");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Character_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Character", "object A");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_Byte_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_Byte", "object 10");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + @KnownToFail
> + public void AppletJSToJFuncReturn_CharArrayElement_Test() throws
> Exception {
> + jsToJavaFuncReturnNormalTest("_CharacterArrayElement", "object A");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_CharFullArray_Test() throws
> Exception {
> + jsToJavaFuncReturnNormalTest("_CharacterArray", "object
> [Ljava.lang.Character;@");
> + }
> +
> + @Test
> + @TestInBrowsers(testIn = { Browsers.all })
> + @NeedsDisplay
> + public void AppletJSToJFuncReturn_JSObject_Test() throws Exception {
> + jsToJavaFuncReturnNormalTest("_JSObject", "object value1");
> + }
> +
> +
> +}
Looks fine to me otherwise, OK for HEAD.
-Adam
From adomurad at redhat.com Thu Apr 4 09:43:30 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Thu, 04 Apr 2013 12:43:30 -0400
Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning
decision for entire codebase
Message-ID: <515DADB2.4020807@redhat.com>
As discussed between Jiri and myself. This allows for the decision
chosen with unsigned applet confirmation to apply to an entire codebase,
and not just a single applet.
2013-04-04 Adam Domurad
Allow remembering applet confirmation for whole codebase.
* netx/net/sourceforge/jnlp/resources/Messages.properties:
Added SRememberAppletOnly, SRememberCodebase messages
* netx/net/sourceforge/jnlp/security/SecurityDialogs.java
(showUnsignedWarningDialog): Use UnsignedWarningAction
*
netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java
(UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction
* net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java:
Introduce UnsignedWarningAction, add additional confirmation choices
*
netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java:
Support remembering action for entire codebase.
Happy hacking,
-Adam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unsigned-confirm-remember-for-site.patch
Type: text/x-patch
Size: 13890 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/2908200a/unsigned-confirm-remember-for-site.patch
From adomurad at icedtea.classpath.org Thu Apr 4 09:51:30 2013
From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 16:51:30 +0000
Subject: /hg/release/icedtea-web-1.3: PR1217: Add command line arguments ...
Message-ID:
changeset ca8b00cca4c3 in /hg/release/icedtea-web-1.3
details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=ca8b00cca4c3
author: Saad Mohammad
date: Thu Apr 04 12:52:57 2013 -0400
PR1217: Add command line arguments for plugins
diffstat:
ChangeLog | 26 +
netx/net/sourceforge/jnlp/config/Defaults.java | 6 +
netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java | 5 +
netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java | 5 +
netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java | 85 ++++++
netx/net/sourceforge/jnlp/resources/Messages.properties | 3 +
plugin/icedteanp/IcedTeaNPPlugin.cc | 136 ++++++---
plugin/icedteanp/IcedTeaPluginUtils.cc | 18 +
plugin/icedteanp/IcedTeaPluginUtils.h | 3 +
9 files changed, 241 insertions(+), 46 deletions(-)
diffs (415 lines):
diff -r f63bdf513e9d -r ca8b00cca4c3 ChangeLog
--- a/ChangeLog Fri Mar 01 13:12:21 2013 -0500
+++ b/ChangeLog Thu Apr 04 12:52:57 2013 -0400
@@ -1,3 +1,29 @@
+2013-04-04 Saad Mohammad
+
+ Added new option in itw-settings which allows users to set JVM
+ arguments when plugin is initialized.
+ * netx/net/sourceforge/jnlp/config/Defaults.java (getDefaults):
+ Added defaults for DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS.
+ * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java:
+ Added new property (KEY_PLUGIN_JVM_ARGUMENTS) which stores the value of
+ JVM plugin arguments.
+ * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java:
+ (createMainSettingsPanel): Added JVM settings to the list of tabs.
+ (createJVMSettingsPanel): Returns a new JVMPanel object.
+ * netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java:
+ JVM settings panel.
+ * netx/net/sourceforge/jnlp/resources/Messages.properties:
+ Added a new items (CPJVMPluginArguments, CPHeadJVMSettings,
+ CPTabJVMSettings).
+ * plugin/icedteanp/IcedTeaNPPlugin.cc:
+ (plugin_start_appletviewer): Adds JVM arguments to the commands line list.
+ (get_jvm_args): Returns JVM arguments set in itw-settings.
+ * plugin/icedteanp/IcedTeaPluginUtils.cc:
+ (IcedTeaPluginUtilities::vectorStringToVectorGchar): New helper method
+ which returns a vector of gchar* from the vector of strings passed.
+ * plugin/icedteanp/IcedTeaPluginUtils.h:
+ Declaration of IcedTeaPluginUtilities::vectorStringToVectorGchar.
+
2013-03-01 Adam Domurad
Fix PR1157: Applets can hang browser after fatal exception
diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/config/Defaults.java
--- a/netx/net/sourceforge/jnlp/config/Defaults.java Fri Mar 01 13:12:21 2013 -0500
+++ b/netx/net/sourceforge/jnlp/config/Defaults.java Thu Apr 04 12:52:57 2013 -0400
@@ -378,6 +378,12 @@
DeploymentConfiguration.KEY_UPDATE_TIMEOUT,
BasicValueValidators.getRangedIntegerValidator(0, 10000),
String.valueOf(500)
+ },
+ //JVM arguments for plugin
+ {
+ DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS,
+ null,
+ null
}
};
diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
--- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Mar 01 13:12:21 2013 -0500
+++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Apr 04 12:52:57 2013 -0400
@@ -158,6 +158,11 @@
public static final String KEY_BROWSER_PATH = "deployment.browser.path";
public static final String KEY_UPDATE_TIMEOUT = "deployment.javaws.update.timeout";
+ /*
+ * JVM arguments for plugin
+ */
+ public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments";
+
public enum ConfigType {
System, User
}
diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java
--- a/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Fri Mar 01 13:12:21 2013 -0500
+++ b/netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java Thu Apr 04 12:52:57 2013 -0400
@@ -226,6 +226,7 @@
// new SettingsPanel(Translator.R("CPTabClassLoader"), createClassLoaderSettingsPanel()),
new SettingsPanel(Translator.R("CPTabDebugging"), createDebugSettingsPanel()),
new SettingsPanel(Translator.R("CPTabDesktopIntegration"), createDesktopSettingsPanel()),
+ new SettingsPanel(Translator.R("CPTabJVMSettings"), createJVMSettingsPanel()),
new SettingsPanel(Translator.R("CPTabNetwork"), createNetworkSettingsPanel()),
// TODO: This is commented out since this is not implemented yet
// new SettingsPanel(Translator.R("CPTabRuntimes"), createRuntimesSettingsPanel()),
@@ -319,6 +320,10 @@
return new SecuritySettingsPanel(this.config);
}
+ private JPanel createJVMSettingsPanel() {
+ return new JVMPanel(this.config);
+ }
+
/**
* This is a placeholder panel.
*
diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/netx/net/sourceforge/jnlp/controlpanel/JVMPanel.java Thu Apr 04 12:52:57 2013 -0400
@@ -0,0 +1,85 @@
+/* PluginPanel.java
+Copyright (C) 2012, Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+*/
+package net.sourceforge.jnlp.controlpanel;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+
+import javax.swing.Box;
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+
+import net.sourceforge.jnlp.config.DeploymentConfiguration;
+import net.sourceforge.jnlp.runtime.Translator;
+
+ at SuppressWarnings("serial")
+public class JVMPanel extends NamedBorderPanel {
+ private DeploymentConfiguration config;
+
+ JVMPanel(DeploymentConfiguration config) {
+ super(Translator.R("CPHeadJVMSettings"), new GridBagLayout());
+ this.config = config;
+ addComponents();
+ }
+
+ private void addComponents() {
+ JLabel description = new JLabel("" + Translator.R("CPJVMPluginArguments") + "
");
+ JTextField testFieldArguments = new JTextField(25);
+
+ testFieldArguments.getDocument().addDocumentListener(new DocumentAdapter(config, DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS));
+ testFieldArguments.setText(config.getProperty(DeploymentConfiguration.KEY_PLUGIN_JVM_ARGUMENTS));
+
+ // Filler to pack the bottom of the panel.
+ GridBagConstraints c = new GridBagConstraints();
+ c.fill = GridBagConstraints.BOTH;
+ c.weightx = 1;
+ c.gridx = 0;
+ c.gridy = 0;
+
+ this.add(description, c);
+ c.gridy++;
+ this.add(testFieldArguments, c);
+
+ // This is to keep it from expanding vertically if resized.
+ Component filler = Box.createRigidArea(new Dimension(1, 1));
+ c.gridy++;
+ c.weighty++;
+ this.add(filler, c);
+ }
+}
diff -r f63bdf513e9d -r ca8b00cca4c3 netx/net/sourceforge/jnlp/resources/Messages.properties
--- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Mar 01 13:12:21 2013 -0500
+++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr 04 12:52:57 2013 -0400
@@ -298,6 +298,7 @@
CPSecurityDescription=Use this to configure security settings.
CPDebuggingDescription=Enable options here to help with debugging
CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut.
+CPJVMPluginArguments=Set JVM arguments for plugin.
# Control Panel - Buttons
CPButAbout=About...
@@ -316,6 +317,7 @@
CPHeadDebugging=Debugging Settings
CPHeadDesktopIntegration=Desktop Integrations
CPHeadSecurity=Security Settings
+CPHeadJVMSettings=JVM Settings
# Control Panel - Tabs
CPTabAbout=About IcedTea-Web
@@ -327,6 +329,7 @@
CPTabNetwork=Network
CPTabRuntimes=Runtimes
CPTabSecurity=Security
+CPTabJVMSettings=JVM Settings
# Control Panel - AboutPanel
CPAboutInfo=This is the control panel for setting deployments.properties.
Not all options will take effect until implemented.
The use of multiple JREs is currently unsupported.
diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaNPPlugin.cc
--- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Mar 01 13:12:21 2013 -0500
+++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu Apr 04 12:52:57 2013 -0400
@@ -241,6 +241,8 @@
void plugin_send_initialization_message(char* instance, gulong handle,
int width, int height,
char* url);
+/* Returns JVM options set in itw-settings */
+static std::vector* get_jvm_args();
// Global instance counter.
// Mutex to protect plugin_instance_counter.
@@ -1591,48 +1593,48 @@
PLUGIN_DEBUG ("plugin_start_appletviewer\n");
NPError error = NPERR_NO_ERROR;
- gchar** command_line;
- gchar** environment;
-
- int cmd_num = 0;
+ std::vector command_line;
+ gchar** environment = NULL;
+ std::vector* jvm_args = get_jvm_args();
+
+ // Construct command line parameters
+
+ command_line.push_back(appletviewer_executable);
+
+ //Add JVM args to command_line
+ for (int i = 0; i < jvm_args->size(); i++)
+ {
+ command_line.push_back(*jvm_args->at(i));
+ }
+
+ command_line.push_back(PLUGIN_BOOTCLASSPATH);
+ // set the classpath to avoid using the default (cwd).
+ command_line.push_back("-classpath");
+ command_line.push_back(ICEDTEA_WEB_JRE "/lib/rt.jar");
+
if (plugin_debug)
{
- command_line = (gchar**) malloc(sizeof(gchar*)*11);
- command_line[cmd_num++] = g_strdup(appletviewer_executable);
- command_line[cmd_num++] = g_strdup(PLUGIN_BOOTCLASSPATH);
- // set the classpath to avoid using the default (cwd).
- command_line[cmd_num++] = g_strdup("-classpath");
- command_line[cmd_num++] = g_strdup_printf("%s/lib/rt.jar", ICEDTEA_WEB_JRE);
- command_line[cmd_num++] = g_strdup("-Xdebug");
- command_line[cmd_num++] = g_strdup("-Xnoagent");
- if (plugin_debug_suspend)
- {
- command_line[cmd_num++] = g_strdup("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y");
- } else
- {
- command_line[cmd_num++] = g_strdup("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n");
- }
- command_line[cmd_num++] = g_strdup("sun.applet.PluginMain");
- command_line[cmd_num++] = g_strdup(out_pipe_name);
- command_line[cmd_num++] = g_strdup(in_pipe_name);
- command_line[cmd_num] = NULL;
- } else
- {
- command_line = (gchar**) malloc(sizeof(gchar*)*8);
- command_line[cmd_num++] = g_strdup(appletviewer_executable);
- command_line[cmd_num++] = g_strdup(PLUGIN_BOOTCLASSPATH);
- command_line[cmd_num++] = g_strdup("-classpath");
- command_line[cmd_num++] = g_strdup_printf("%s/lib/rt.jar", ICEDTEA_WEB_JRE);
- command_line[cmd_num++] = g_strdup("sun.applet.PluginMain");
- command_line[cmd_num++] = g_strdup(out_pipe_name);
- command_line[cmd_num++] = g_strdup(in_pipe_name);
- command_line[cmd_num] = NULL;
+ command_line.push_back("-Xdebug");
+ command_line.push_back("-Xnoagent");
+
+ //Debug flags
+ std::string debug_flags = "-Xrunjdwp:transport=dt_socket,address=8787,server=y,";
+ debug_flags += plugin_debug_suspend ? "suspend=y" : "suspend=n";
+ command_line.push_back(debug_flags);
}
+ command_line.push_back("sun.applet.PluginMain");
+ command_line.push_back(out_pipe_name);
+ command_line.push_back(in_pipe_name);
+
+ // Finished command line parameters
+
environment = plugin_filter_environment();
-
- if (!g_spawn_async (NULL, command_line, environment,
- (GSpawnFlags) G_SPAWN_DO_NOT_REAP_CHILD,
+ std::vector vector_gchar = IcedTeaPluginUtilities::vectorStringToVectorGchar(&command_line);
+ gchar **command_line_args = &vector_gchar[0];
+
+ if (!g_spawn_async (NULL, command_line_args, environment,
+ (GSpawnFlags) G_SPAWN_DO_NOT_REAP_CHILD,
NULL, NULL, &appletviewer_pid, &channel_error))
{
if (channel_error)
@@ -1647,15 +1649,11 @@
error = NPERR_GENERIC_ERROR;
}
- g_strfreev (environment);
-
- for (int i = 0; i < cmd_num; i++) {
- g_free (command_line[i]);
- command_line[i] = NULL;
- }
-
- g_free(command_line);
- command_line = NULL;
+ //Free memory
+ g_strfreev(environment);
+ IcedTeaPluginUtilities::freeStringPtrVector(jvm_args);
+ jvm_args = NULL;
+ command_line_args = NULL;
if (appletviewer_pid)
{
@@ -1669,6 +1667,52 @@
}
/*
+ * Returns JVM options set in itw-settings
+ */
+static std::vector*
+get_jvm_args()
+{
+ std::vector < std::string> commands;
+ gchar *output = NULL;
+ std::vector* tokenOutput = NULL;
+
+ commands.push_back(appletviewer_executable);
+ commands.push_back(PLUGIN_BOOTCLASSPATH);
+ commands.push_back("-classpath");
+ commands.push_back(ICEDTEA_WEB_JRE "/lib/rt.jar");
+ commands.push_back("net.sourceforge.jnlp.controlpanel.CommandLine");
+ commands.push_back("get");
+ commands.push_back("deployment.plugin.jvm.arguments");
+
+ std::vector vector_gchar = IcedTeaPluginUtilities::vectorStringToVectorGchar(&commands);
+ gchar **command_line_args = &vector_gchar[0];
+
+ if (!g_spawn_sync(NULL, command_line_args, NULL,
+ (GSpawnFlags) G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &output, NULL, NULL,
+ &channel_error))
+ {
+ PLUGIN_ERROR("Failed to get JVM arguments set for plugin.");
+ output = NULL;
+ }
+
+ tokenOutput = IcedTeaPluginUtilities::strSplit(output, " \n");
+
+ if (!tokenOutput->empty() && *tokenOutput->at(0) =="null")
+ {
+ delete tokenOutput->at(0);
+ tokenOutput->erase(tokenOutput->begin());
+ }
+
+ //Free memory
+ g_free(output);
+ output = NULL;
+ command_line_args = NULL;
+
+ return tokenOutput;
+}
+
+
+/*
* Replaces certain characters (\r, \n, etc) with HTML escape equivalents.
*
* Return string is allocated on the heap. Caller assumes responsibility
diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaPluginUtils.cc
--- a/plugin/icedteanp/IcedTeaPluginUtils.cc Fri Mar 01 13:12:21 2013 -0500
+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Apr 04 12:52:57 2013 -0400
@@ -978,6 +978,24 @@
}
/**
+ * Returns a vector of gchar* pointing to the elements of the vector string passed in.
+ * @param stringVec The vector of strings reference.
+ */
+std::vector
+IcedTeaPluginUtilities::vectorStringToVectorGchar(const std::vector* stringVec)
+{
+ std::vector charVec;
+
+ for (int i = 0; i < stringVec->size(); i++)
+ {
+ gchar* element = (gchar*) stringVec->at(i).c_str(); //cast from const char
+ charVec.push_back(element);
+ }
+ charVec.push_back(NULL);
+ return charVec;
+}
+
+/**
* Runs through the async call wait queue and executes all calls
*
* @param param Ignored -- required to conform to NPN_PluginThreadAsynCall API
diff -r f63bdf513e9d -r ca8b00cca4c3 plugin/icedteanp/IcedTeaPluginUtils.h
--- a/plugin/icedteanp/IcedTeaPluginUtils.h Fri Mar 01 13:12:21 2013 -0500
+++ b/plugin/icedteanp/IcedTeaPluginUtils.h Thu Apr 04 12:52:57 2013 -0400
@@ -269,6 +269,9 @@
static void decodeURL(const char* url, char** decoded_url);
+ /* Returns a vector of gchar* pointing to the elements of the vector string passed in*/
+ static std::vector vectorStringToVectorGchar(const std::vector* stringVec);
+
/* Posts call in async queue and waits till execution completes */
static void callAndWaitForResult(NPP instance, void (*func) (void *), AsyncCallThreadData* data);
};
From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 09:51:49 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 16:51:49 +0000
Subject: [Bug 1217] Add command line arguments for plugins
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1217
--- Comment #5 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea-web-1.3?cmd=changeset;node=ca8b00cca4c3
author: Saad Mohammad
date: Thu Apr 04 12:52:57 2013 -0400
PR1217: Add command line arguments for plugins
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/2cf516e4/attachment.html
From adomurad at redhat.com Thu Apr 4 13:17:53 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Thu, 04 Apr 2013 16:17:53 -0400
Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue
classloaders
Message-ID: <515DDFF1.60405@redhat.com>
This puts a bandaid over
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is
probably too generous.
With this, the SweetHome3D JNLP [1] runs again. The applet version had
worked before.
This is explicitly *not* wanted for HEAD. I am posting this for review
now to be considered for any release branches where a proper fix is not
found. (1.4 definitely, who knows maybe even previous & future releases.
But such hackery should not be in HEAD.)
2013-XX-XX Adam Domurad
Hack to ensure AppContext is set correctly.
* netx/net/sourceforge/jnlp/Launcher.java
(forceContextClassLoaderHack): Force stored class-loader for
thread-group's AppContext and EventQueue to be our JNLPClassLoader.
(createApplet): Call forceContextClassLoaderHack.
(createAppletObject): Call forceContextClassLoaderHack.
(createApplication): Call forceContextClassLoaderHack.
I have not found any potential problems this may cause (and I've digged
quite deep). Let me know of any concerns.
[1] www.sweethome3d.com/SweetHome3D.jnlp
Happy hacking,
-Adam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: app-context-hack.patch
Type: text/x-patch
Size: 3219 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130404/5f6e2c9d/app-context-hack.patch
From andrew at icedtea.classpath.org Thu Apr 4 14:53:11 2013
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Thu, 04 Apr 2013 21:53:11 +0000
Subject: /hg/icedtea7: Update to u20 b17.
Message-ID:
changeset 397dd0f8e62a in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=397dd0f8e62a
author: Andrew John Hughes
date: Thu Apr 04 22:52:56 2013 +0100
Update to u20 b17.
2013-04-04 Andrew John Hughes
* patches/zero_libffi.patch:
Removed; upstreamed to IcedTea.
* Makefile.am:
(OPENJDK_VERSION): Bump to b17.
(JDK_UPDATE_VERSION): Bump to 20.
(CORBA_CHANGESET): Update to IcedTea7 forest head.
(JAXP_CHANGESET): Likewise.
(JAXWS_CHANGESET): Likewise.
(JDK_CHANGESET): Likewise.
(LANGTOOLS_CHANGESET): Likewise.
(OPENJDK_CHANGESET): Likewise.
(CORBA_SHA256SUM): Likewise.
(JAXP_SHA256SUM): Likewise.
(JAXWS_SHA256SUM): Likewise.
(JDK_SHA256SUM): Likewise.
(LANGTOOLS_SHA256SUM): Likewise.
(OPENJDK_SHA256SUM): Likewise.
(ICEDTEA_PATCHES): Set empty again.
* hotspot.map: Update to IcedTea7 forest head.
* patches/boot/ecj-diamond.patch:
Regenerate, add new cases in JarFileFactory.java,
java.util.logging.Level, java.util.logging.LogManager
and JdpPacketReader.
* patches/boot/ecj-multicatch.patch:
Regenerate, add new case in java.lang.reflect.Proxy.
* patches/boot/ecj-stringswitch.patch,
* patches/boot/ecj-trywithresources.patch:
Regenerated.
* patches/boot/xsltproc.patch:
Undo removal of XSLT setting as not needed (command
line overrides anyway). Patch new trace.make as
well.
* patches/systemtap_gc.patch: Regenerated.
diffstat:
ChangeLog | 36 +
Makefile.am | 30 +-
hotspot.map | 3 +-
patches/boot/ecj-diamond.patch | 2150 +++++++++++++++---------------
patches/boot/ecj-multicatch.patch | 404 ++---
patches/boot/ecj-stringswitch.patch | 55 +-
patches/boot/ecj-trywithresources.patch | 563 +++----
patches/boot/xsltproc.patch | 21 +-
patches/systemtap_gc.patch | 106 +-
patches/zero_libffi.patch | 37 -
10 files changed, 1719 insertions(+), 1686 deletions(-)
diffs (truncated from 5982 to 500 lines):
diff -r 9b9b5df83038 -r 397dd0f8e62a ChangeLog
--- a/ChangeLog Thu Mar 28 00:18:00 2013 +0000
+++ b/ChangeLog Thu Apr 04 22:52:56 2013 +0100
@@ -1,3 +1,39 @@
+2013-04-04 Andrew John Hughes
+
+ * patches/zero_libffi.patch:
+ Removed; upstreamed to IcedTea.
+ * Makefile.am:
+ (OPENJDK_VERSION): Bump to b17.
+ (JDK_UPDATE_VERSION): Bump to 20.
+ (CORBA_CHANGESET): Update to IcedTea7 forest head.
+ (JAXP_CHANGESET): Likewise.
+ (JAXWS_CHANGESET): Likewise.
+ (JDK_CHANGESET): Likewise.
+ (LANGTOOLS_CHANGESET): Likewise.
+ (OPENJDK_CHANGESET): Likewise.
+ (CORBA_SHA256SUM): Likewise.
+ (JAXP_SHA256SUM): Likewise.
+ (JAXWS_SHA256SUM): Likewise.
+ (JDK_SHA256SUM): Likewise.
+ (LANGTOOLS_SHA256SUM): Likewise.
+ (OPENJDK_SHA256SUM): Likewise.
+ (ICEDTEA_PATCHES): Set empty again.
+ * hotspot.map: Update to IcedTea7 forest head.
+ * patches/boot/ecj-diamond.patch:
+ Regenerate, add new cases in JarFileFactory.java,
+ java.util.logging.Level, java.util.logging.LogManager
+ and JdpPacketReader.
+ * patches/boot/ecj-multicatch.patch:
+ Regenerate, add new case in java.lang.reflect.Proxy.
+ * patches/boot/ecj-stringswitch.patch,
+ * patches/boot/ecj-trywithresources.patch:
+ Regenerated.
+ * patches/boot/xsltproc.patch:
+ Undo removal of XSLT setting as not needed (command
+ line overrides anyway). Patch new trace.make as
+ well.
+ * patches/systemtap_gc.patch: Regenerated.
+
2013-03-27 Andrew John Hughes
* Makefile.am:
diff -r 9b9b5df83038 -r 397dd0f8e62a Makefile.am
--- a/Makefile.am Thu Mar 28 00:18:00 2013 +0000
+++ b/Makefile.am Thu Apr 04 22:52:56 2013 +0100
@@ -1,22 +1,22 @@
# Dependencies
-OPENJDK_VERSION = b09
-JDK_UPDATE_VERSION = 12
+OPENJDK_VERSION = b17
+JDK_UPDATE_VERSION = 20
COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
-CORBA_CHANGESET = 679412ed11d5
-JAXP_CHANGESET = cba4d3377850
-JAXWS_CHANGESET = a7541d353428
-JDK_CHANGESET = 67b0266bbd5d
-LANGTOOLS_CHANGESET = 31539542e9e5
-OPENJDK_CHANGESET = 2d1ddf672d61
+CORBA_CHANGESET = 04ad0a30f564
+JAXP_CHANGESET = e17ab897041e
+JAXWS_CHANGESET = 7169780eff51
+JDK_CHANGESET = bc455fc9948f
+LANGTOOLS_CHANGESET = 5f4ad2269018
+OPENJDK_CHANGESET = 8714dddd443a
-CORBA_SHA256SUM = 20b9840fa09f8e89a141cbe0b08794588f8534ba760cf08cee34feaea3018bc4
-JAXP_SHA256SUM = d04ae1702118dd42e5f7c3796dab0214a44f27b8381464536877cded732f6b77
-JAXWS_SHA256SUM = ada222989022c456d6ebd417891fb4b575d47da1134bd0ca631fb5deea7cbed8
-JDK_SHA256SUM = 8f7b1ce3fea28901366530e152c479117cbb3c37a5a7f069a52531f7b7d01c4f
-LANGTOOLS_SHA256SUM = 7cc3816acebfeac0211161cc39472b38f87587f4d41fa3e153109e27df4c02c8
-OPENJDK_SHA256SUM = 43aef86d067f66f2cd3b6895cc166e056b05603ee585ba50b5a82d41e7924a16
+CORBA_SHA256SUM = 625fd145c5e7bbd92f28321d2584d116279cb0bf07f417d0f463f57c78b90526
+JAXP_SHA256SUM = 698244f0a12cc7fa6c2994db7b0771ff7c4e00d6457aabb9c326778d0a078650
+JAXWS_SHA256SUM = cff9fb3f14aad77b6415418556805cbb23779d2b5fc6b7ebfd7bea5100b139fe
+JDK_SHA256SUM = 54c3fff10484ce96b23599228ca99be89f4c433441da7489648c42fd8f03c0c8
+LANGTOOLS_SHA256SUM = 925f8166907dda64491dcaff51460ee83090d060f76abb4ff0efa7b9e1612a17
+OPENJDK_SHA256SUM = 7b500b6306981d0182a12e90b37182741df9931b34107a13686a77951ff7b0b3
CACAO_VERSION = a567bcb7f589
CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9
@@ -232,7 +232,7 @@
# Patch list
-ICEDTEA_PATCHES = patches/zero_libffi.patch
+ICEDTEA_PATCHES =
# Conditional patches
diff -r 9b9b5df83038 -r 397dd0f8e62a hotspot.map
--- a/hotspot.map Thu Mar 28 00:18:00 2013 +0000
+++ b/hotspot.map Thu Apr 04 22:52:56 2013 +0100
@@ -1,1 +1,2 @@
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 7e12b7098f20 dc85dde54f736507e83f718a587020b89d5e6c532a33a18cabd17dedef5db80b
+# version url changeset sha256sum
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot b9bbe418db87 af823ea6283514495a42c291ed1d7d79c2ee86f8917e5f6f2782218a193546d9
diff -r 9b9b5df83038 -r 397dd0f8e62a patches/boot/ecj-diamond.patch
--- a/patches/boot/ecj-diamond.patch Thu Mar 28 00:18:00 2013 +0000
+++ b/patches/boot/ecj-diamond.patch Thu Apr 04 22:52:56 2013 +0100
@@ -1,6 +1,6 @@
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2012-11-30 15:09:47.167537938 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java 2013-04-04 18:13:31.220314739 +0100
@@ -58,7 +58,7 @@
private CorbaConnection conn;
@@ -11,8 +11,8 @@
public static synchronized void cleanCache( ORB orb ) {
synchronized (iorMapLock) {
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-04-04 18:13:31.232314934 +0100
@@ -1316,7 +1316,7 @@
protected void shutdownServants(boolean wait_for_completion) {
Set oaset;
@@ -23,8 +23,8 @@
for (ObjectAdapterFactory oaf : oaset)
diff -Nru openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java
---- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2012-11-30 12:17:00.000000000 +0000
-+++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-04-03 14:17:36.000000000 +0100
++++ openjdk-boot/corba/src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java 2013-04-04 18:13:31.236314998 +0100
@@ -108,7 +108,7 @@
private ThreadGroup threadGroup;
@@ -44,8 +44,8 @@
for (WorkerThread wt : copy) {
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-11-30 15:19:29.516788251 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2012-11-30 15:20:13.301492126 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java 2013-04-04 18:13:31.240315064 +0100
@@ -62,9 +62,10 @@
*/
public final class DocumentHandler extends DefaultHandler {
@@ -61,8 +61,8 @@
private Reference loader;
private ExceptionListener listener;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/beans/TypeResolver.java 2013-04-04 18:13:31.244315128 +0100
@@ -46,7 +46,7 @@
*/
public final class TypeResolver {
@@ -82,8 +82,8 @@
CACHE.put(actual, map);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Attribute.java 2013-04-04 18:13:31.252315258 +0100
@@ -104,9 +104,9 @@
return this.def.compareTo(that.def);
}
@@ -155,8 +155,8 @@
for (int i = 0; i < layout.length(); i++) {
if (layout.charAt(i++) != '[')
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-11-30 15:06:26.904399058 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2012-11-30 15:09:47.183538189 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java 2013-04-04 18:13:31.272315583 +0100
@@ -257,7 +257,7 @@
assert(basicCodings[_meta_default] == null);
assert(basicCodings[_meta_canon_min] != null);
@@ -166,7 +166,7 @@
for (int i = 0; i < basicCodings.length; i++) {
Coding c = basicCodings[i];
if (c == null) continue;
-@@ -1068,8 +1068,8 @@
+@@ -1067,8 +1067,8 @@
// Bootstrap support for CPRefBands. These are needed to record
// intended CP indexes, before the CP has been created.
@@ -177,7 +177,7 @@
int encodeRef(Entry e, Index ix) {
-@@ -1704,7 +1704,7 @@
+@@ -1705,7 +1705,7 @@
protected int attrClassFileVersionMask;
// Mapping from Attribute.Layout to Band[] (layout element bands).
@@ -186,7 +186,7 @@
// Well-known attributes:
protected final Attribute.Layout attrCodeEmpty;
-@@ -1713,11 +1713,11 @@
+@@ -1714,11 +1714,11 @@
protected final Attribute.Layout attrConstantValue;
// Mapping from Attribute.Layout to Integer (inverse of attrDefs)
@@ -200,7 +200,7 @@
{
for (int i = 0; i < ATTR_CONTEXT_LIMIT; i++) {
assert(attrIndexLimit[i] == 0);
-@@ -1912,7 +1912,7 @@
+@@ -1913,7 +1913,7 @@
protected List getPredefinedAttrs(int ctype) {
assert(attrIndexLimit[ctype] != 0);
@@ -209,7 +209,7 @@
// Remove nulls and non-predefs.
for (int ai = 0; ai < attrIndexLimit[ctype]; ai++) {
if (testBit(attrDefSeen[ctype], 1L< codeMap;
@@ -281,8 +281,8 @@
Coding x1 = codeMap.get(x0);
if (x1 == null) codeMap.put(x0, x1 = x0);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java 2013-04-04 18:13:31.292315907 +0100
@@ -919,7 +919,7 @@
public static
Index[] partition(Index ix, int[] keys) {
@@ -301,7 +301,7 @@
}
part.add(cpMap[i]);
}
-@@ -1137,7 +1137,7 @@
+@@ -1139,7 +1139,7 @@
void completeReferencesIn(Set cpRefs, boolean flattenSigs) {
cpRefs.remove(null);
for (ListIterator work =
@@ -311,8 +311,8 @@
Entry e = work.previous();
work.remove(); // pop stack
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-11-30 15:06:26.904399058 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-04-04 18:13:31.292315907 +0100
@@ -61,7 +61,7 @@
ResourceBundle.getBundle("com.sun.java.util.jar.pack.DriverResource");
@@ -350,8 +350,8 @@
for (String optline : options.split("\n")) {
String[] words = optline.split("\\p{Space}+");
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/FixedList.java 2013-04-04 18:13:31.296315973 +0100
@@ -45,7 +45,7 @@
private final ArrayList flist;
@@ -362,8 +362,8 @@
for (int i = 0 ; i < capacity ; i++) {
flist.add(null);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-11-30 15:06:23.688348668 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-04-04 18:12:33.863382065 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-04-04 18:13:31.304316103 +0100
@@ -112,7 +112,7 @@
public static final Attribute.Layout attrSourceFileSpecial;
public static final Map attrDefs;
@@ -519,8 +519,8 @@
// Add to the end of ths list:
if (!fileSet.contains(cls.file))
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageReader.java 2013-04-04 18:13:31.308316167 +0100
@@ -686,7 +686,7 @@
cp_Signature_classes.expectLength(getIntTotal(numSigClasses));
cp_Signature_classes.readFrom(in);
@@ -634,8 +634,8 @@
ClassEntry thisClass = curClass.thisClass;
ClassEntry superClass = curClass.superClass;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java 2013-04-04 18:13:31.312316233 +0100
@@ -116,7 +116,7 @@
int[][] attrCounts; // count attr. occurences
@@ -691,8 +691,8 @@
for (Class cls : pkg.classes) {
if (!cls.hasInnerClasses()) continue;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java 2013-04-04 18:13:31.316316297 +0100
@@ -183,8 +183,8 @@
final Map attrDefs;
final Map attrCommands;
@@ -723,8 +723,8 @@
for (JarEntry je : Collections.list(jf.entries())) {
InFile inFile = new InFile(jf, je);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2012-11-30 15:09:47.187538251 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java 2013-04-04 18:13:31.316316297 +0100
@@ -309,7 +309,7 @@
// As each new value is added, we assert that the value
// was not already in the set.
@@ -735,8 +735,8 @@
maxForDebug += fillp;
int min = Integer.MIN_VALUE; // farthest from the center
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/PropMap.java 2013-04-04 18:13:31.320316362 +0100
@@ -48,8 +48,8 @@
*/
@@ -767,8 +767,8 @@
while (res.remove(null));
return res;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/TLGlobals.java 2013-04-04 18:13:31.324316427 +0100
@@ -58,12 +58,12 @@
private final Map memberEntries;
@@ -789,8 +789,8 @@
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java 2013-04-04 18:13:31.328316492 +0100
@@ -233,7 +233,7 @@
props.setProperty(java.util.jar.Pack200.Unpacker.PROGRESS,"50");
pkg.ensureAllClassFiles();
@@ -801,8 +801,8 @@
String name = file.nameString;
JarEntry je = new JarEntry(Utils.getJarEntryName(name));
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-11-30 15:06:26.908399120 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-04 18:12:33.935383238 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Utils.java 2013-04-04 18:13:31.328316492 +0100
@@ -132,7 +132,7 @@
// Keep a TLS point to the global data and environment.
// This makes it simpler to supply environmental options
@@ -812,9 +812,33 @@
// convenience methods to access the TL globals
static TLGlobals getTLGlobals() {
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java 2013-04-04 18:13:31.752323374 +0100
+@@ -231,7 +231,7 @@
+ * Create an empty ExecOptionPermissionCollection.
+ */
+ public ExecOptionPermissionCollection() {
+- permissions = new Hashtable<>(11);
++ permissions = new Hashtable(11);
+ all_allowed = false;
+ }
+
+diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rmi/rmid/ExecPermission.java 2013-04-04 18:13:31.752323374 +0100
+@@ -235,7 +235,7 @@
+ * Create an empty ExecPermissionCollection.
+ */
+ public ExecPermissionCollection() {
+- permissions = new Vector<>();
++ permissions = new Vector();
+ }
+
+ /**
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java 2013-04-04 18:13:31.332316557 +0100
@@ -1284,7 +1284,7 @@
*/
public Collection> toCollection() throws SQLException {
@@ -834,8 +858,8 @@
// create a copy
CachedRowSetImpl crsTemp;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java 2013-04-04 18:13:31.336316622 +0100
@@ -222,7 +222,7 @@
// either of the setter methods have been set.
if(boolColId){
@@ -846,8 +870,8 @@
if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) {
iMatchKey = cRowset.findColumn(strMatchKey);
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2012-11-30 15:09:47.191538314 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java 2013-04-04 18:13:31.340316687 +0100
@@ -99,10 +99,10 @@
throws UnsupportedCallbackException
{
@@ -862,8 +886,8 @@
ConfirmationInfo confirmation = new ConfirmationInfo();
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/login/ConfigFile.java 2013-04-04 18:13:31.344316752 +0100
@@ -152,7 +152,7 @@
// new configuration
@@ -892,8 +916,8 @@
String value;
while (peek(";") == false) {
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java 2013-04-04 18:13:31.344316752 +0100
@@ -184,7 +184,7 @@
private UnixNumericUserPrincipal UIDPrincipal;
private UnixNumericGroupPrincipal GIDPrincipal;
@@ -904,8 +928,8 @@
// initial state
private Subject subject;
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java 2013-04-04 18:13:31.348316816 +0100
@@ -658,7 +658,7 @@
throw new FailedLoginException(
"Unable to find X.509 certificate chain in keystore");
@@ -916,8 +940,8 @@
certList.add(fromKeyStore[i]);
}
diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2012-11-30 12:17:08.000000000 +0000
-+++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2012-11-30 15:09:47.195538377 +0000
+--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-03 14:18:05.000000000 +0100
++++ openjdk-boot/jdk/src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java 2013-04-04 18:13:31.352316882 +0100
@@ -76,7 +76,7 @@
private SolarisNumericUserPrincipal UIDPrincipal;
private SolarisNumericGroupPrincipal GIDPrincipal;
@@ -928,8 +952,8 @@
/**
From bugzilla-daemon at icedtea.classpath.org Thu Apr 4 22:34:29 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 05:34:29 +0000
Subject: [Bug 1385] New: Open JDK error while running eclipse on fedora 17
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385
Bug ID: 1385
Summary: Open JDK error while running eclipse on fedora 17
Classification: Unclassified
Product: IcedTea
Version: unspecified
Hardware: x86_64
OS: Linux
Status: NEW
Severity: critical
Priority: P3
Component: JamVM
Assignee: xerxes at zafena.se
Reporter: boop601 at gmail.com
CC: unassigned at icedtea.classpath.org
Created attachment 848
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=848&action=edit
Log file while getting terminated
Eclipse getting closed automatically when i try to work in eclipse.
I use eclipse helios, on fedora 17 with java 1.7.0. Eclipse is getting
terminated with error message "A problem in the
java-1.7.0-openjdk-1.7.0.9-2.3.8.0.fc17 package has been detected".
Please give me a solution to fix this error.
Thanks in advance .
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/a4808f10/attachment.html
From ptisnovs at icedtea.classpath.org Fri Apr 5 00:35:18 2013
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 07:35:18 +0000
Subject: /hg/rhino-tests: Added various tests into ScriptEngineManagerCla...
Message-ID:
changeset 93cd198056e3 in /hg/rhino-tests
details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=93cd198056e3
author: Pavel Tisnovsky
date: Fri Apr 05 09:38:32 2013 +0200
Added various tests into ScriptEngineManagerClassTest:
getAnnotation, getComponentType, getClasses, getDeclaredClasses,
getDeclaringClass, getEnclosingClass, getEnclosingConstructor and
getEnclosingMethod.
diffstat:
ChangeLog | 8 +
src/org/RhinoTests/ScriptEngineManagerClassTest.java | 81 ++++++++++++++++++++
2 files changed, 89 insertions(+), 0 deletions(-)
diffs (106 lines):
diff -r 45ce30265490 -r 93cd198056e3 ChangeLog
--- a/ChangeLog Thu Apr 04 10:14:43 2013 +0200
+++ b/ChangeLog Fri Apr 05 09:38:32 2013 +0200
@@ -1,3 +1,11 @@
+2013-04-05 Pavel Tisnovsky
+
+ * src/org/RhinoTests/ScriptEngineManagerClassTest.java:
+ Added various tests into ScriptEngineManagerClassTest:
+ getAnnotation, getComponentType, getClasses, getDeclaredClasses,
+ getDeclaringClass, getEnclosingClass, getEnclosingConstructor and
+ getEnclosingMethod.
+
2013-04-04 Pavel Tisnovsky
* src/org/RhinoTests/ScriptEngineFactoryClassTest.java:
diff -r 45ce30265490 -r 93cd198056e3 src/org/RhinoTests/ScriptEngineManagerClassTest.java
--- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Thu Apr 04 10:14:43 2013 +0200
+++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Fri Apr 05 09:38:32 2013 +0200
@@ -860,6 +860,87 @@
}
/**
+ * Test for method javax.script.ScriptEngineManager.getClass().getAnnotation()
+ */
+ protected void testGetAnnotation() {
+ Annotation annotation;
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Annotation.class);
+ assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Documented.class);
+ assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Inherited.class);
+ assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Retention.class);
+ assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.annotation.Target.class);
+ assertNull(annotation, "annotation java.lang.annotation.Target should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.Deprecated.class);
+ assertNull(annotation, "annotation java.lang.Deprecated should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.Override.class);
+ assertNull(annotation, "annotation java.lang.Override should not be returned");
+ annotation = this.scriptEngineManagerClass.getAnnotation(java.lang.SuppressWarnings.class);
+ assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getComponentType()
+ */
+ protected void testGetComponentType() {
+ Class> cls = this.scriptEngineManagerClass.getComponentType();
+ assertNull(cls, "getComponentType() should returns null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getClasses()
+ */
+ protected void testGetClasses() {
+ Class>[] cls = this.scriptEngineManagerClass.getClasses();
+ assertNotNull(cls, "getClasses() returns null");
+ assertEquals(cls.length, 0, "getClasses() returns wrong value!");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getDeclaredClasses()
+ */
+ protected void testGetDeclaredClasses() {
+ Class>[] cls = this.scriptEngineManagerClass.getDeclaredClasses();
+ assertNotNull(cls, "getDeclaredClasses() returns null");
+ assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getDeclaringClass()
+ */
+ protected void testGetDeclaringClass() {
+ Class> cls = this.scriptEngineManagerClass.getDeclaringClass();
+ assertNull(cls, "getDeclaringClass() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingClass()
+ */
+ protected void testGetEnclosingClass() {
+ Class> cls = this.scriptEngineManagerClass.getEnclosingClass();
+ assertNull(cls, "getEnclosingClass() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingConstructor()
+ */
+ protected void testGetEnclosingConstructor() {
+ Constructor> cons = this.scriptEngineManagerClass.getEnclosingConstructor();
+ assertNull(cons, "getEnclosingConstructor() does not return null");
+ }
+
+ /**
+ * Test for method javax.script.ScriptEngineManager.getClass().getEnclosingMethod()
+ */
+ protected void testGetEnclosingMethod() {
+ Method m = this.scriptEngineManagerClass.getEnclosingMethod();
+ assertNull(m, "getEnclosingMethod() does not return null");
+ }
+
+ /**
* Test for instanceof operator applied to a class javax.script.ScriptEngineManager
*/
@SuppressWarnings("cast")
From ptisnovs at icedtea.classpath.org Fri Apr 5 00:48:16 2013
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 07:48:16 +0000
Subject: /hg/gfx-test: Ten new tests added into BitBltUsingBgColorAlpha t...
Message-ID:
changeset b97916c69b85 in /hg/gfx-test
details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=b97916c69b85
author: Pavel Tisnovsky
date: Fri Apr 05 09:51:31 2013 +0200
Ten new tests added into BitBltUsingBgColorAlpha test suite.
diffstat:
ChangeLog | 5 +
src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java | 150 ++++++++++++++++
2 files changed, 155 insertions(+), 0 deletions(-)
diffs (172 lines):
diff -r e3f6ec64979e -r b97916c69b85 ChangeLog
--- a/ChangeLog Thu Apr 04 10:58:44 2013 +0200
+++ b/ChangeLog Fri Apr 05 09:51:31 2013 +0200
@@ -1,3 +1,8 @@
+2013-04-05 Pavel Tisnovsky
+
+ * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java:
+ Ten new tests added into BitBltUsingBgColorAlpha test suite.
+
2013-04-04 Pavel Tisnovsky
* src/org/gfxtest/framework/CommonRenderingStyles.java:
diff -r e3f6ec64979e -r b97916c69b85 src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java
--- a/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Thu Apr 04 10:58:44 2013 +0200
+++ b/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Fri Apr 05 09:51:31 2013 +0200
@@ -808,6 +808,156 @@
}
/**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.magenta.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha000(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.0f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.magenta.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha025(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.25f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.magenta.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha050(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.5f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.magenta.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha075(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 0.75f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.magenta.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundMagentaAlpha100(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.magenta, 1.00f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.white.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha000(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.0f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.white.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha025(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.25f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.white.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha050(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.5f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.white.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha075(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 0.75f);
+ }
+
+ /**
+ * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR.
+ * Background color is set to Color.white.
+ *
+ * @param image
+ * image to used as a destination for BitBlt-type operations
+ * @param graphics2d
+ * graphics canvas
+ * @return test result status - PASSED, FAILED or ERROR
+ */
+ public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundWhiteAlpha100(TestImage image, Graphics2D graphics2d)
+ {
+ return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.white, 1.00f);
+ }
+
+ /**
* Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR.
* Background color is set to Color.black.
*
From jvanek at redhat.com Fri Apr 5 01:58:04 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 10:58:04 +0200
Subject: Upcoming releases of IcedTea-Web 1.2, 1.3, 1.4
Message-ID: <515E921C.2030207@redhat.com>
Hi all!
There are two releases of IcedTea-Web approaching:
We would like to release 1.2 and 1.3 in 17th of April
Please count with freezing of branches in week 10-17.4, but there is not so much traffic on branches anyway.
At 1th of May is planed release of IcedTea-Web 1.4!
This release is bringing many improvements and IcedTea-Web was never as stable as is now. I would like to encourage every distribution to move to this release.
Unless something unlucky will be found in 1.4, some time later the 1.2 will be proclaimed dead.
Please count with head frozen in last week of April.
Best regards
J.
From jvanek at redhat.com Fri Apr 5 06:06:28 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 15:06:28 +0200
Subject: [rfc][icedtea-web] Allow for remembering unsigned applet warning
decision for entire codebase
In-Reply-To: <515DADB2.4020807@redhat.com>
References: <515DADB2.4020807@redhat.com>
Message-ID: <515ECC54.10002@redhat.com>
On 04/04/2013 06:43 PM, Adam Domurad wrote:
> As discussed between Jiri and myself. This allows for the decision chosen with unsigned applet confirmation to apply to an entire codebase, and not just a single applet.
>
> 2013-04-04 Adam Domurad
>
> Allow remembering applet confirmation for whole codebase.
> * netx/net/sourceforge/jnlp/resources/Messages.properties:
> Added SRememberAppletOnly, SRememberCodebase messages
> * netx/net/sourceforge/jnlp/security/SecurityDialogs.java
> (showUnsignedWarningDialog): Use UnsignedWarningAction
> * netx/net/sourceforge/jnlp/security/UnsignedAppletTrustWarningDialog.java
> (UnsignedAppletTrustWarningDialog): Use UnsignedWarningAction
> * net/sourceforge/jnlp/security/UnsignedAppletTrustWarningPanel.java:
> Introduce UnsignedWarningAction, add additional confirmation choices
> * netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java:
> Support remembering action for entire codebase.
>
> Happy hacking,
> -Adam
Ok. Nothing directly against this patch. Working fine and so this can go to head (after nit is fixed) and we will see users feedback after 1.4 will be out unless you *want* to think about it little bit more:)
Only nit (and RFC IRC here:) - Do you think you can show both documentbase and codebase to the user?
You have now text say "Unsigned Applet from CODEBASE wants to run...."
I would like "Unsugned applet from page DOCUMENTBASE with code from CODEBASE wants to run..." And in radio button then
+SRememberCodebase=For site {0}
where {0} will be CODEBASE (as it is what you are allowing.
(maybe it will need some Layout changes as codebase can grow, but you have the radiobuttons on separate row so it should be ok)
My concerns are about codebase. Well, it is quite hidden information for user but there is mostly what one expects.
My imagination runs in ways like:
"allow just htis appelt" => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E \Qhttp://localhost:34556/\E JavascriptSet.jar (ou how I miss main class here...)
"allow everything from page http://localhost:34556/JavascriptSet.html" => A 1365157531641 \Qhttp://localhost:34556/JavascriptSet.html\E .*
"allow everything from domain http://localhost:34556/" => A 1365157531641 \Qhttp://localhost:34556\E.* .*
allow everything from codebase http://localhost:34556/" => A 1365157531641 .* \Qhttp://localhost:34556/\E
Both last two can have longer path "where to cut":
http://domain.net/dir2/dir1/dir0/page.html
Then best for me would be to allow/deny:
http://domain.net/dir2/dir1/dir0/page.html
http://domain.net/dir2/dir1/dir0/.*
http://domain.net/dir2/dir1/.*
http://domain.net/dir2/.*
http://domain.net/.*
And some combinations with .* and without it and so on....
:) But I know you do not like this. One of the reasons I wont your patch in is, that I'm not sure how to intelligently connect codebase and documentbase :-/ So this can be nice task for some new person. And less code/logic == less errors.
J.
ps, thank you for disagreeing with me on several topics in this issue;)
From chrisphi at icedtea.classpath.org Fri Apr 5 06:04:46 2013
From: chrisphi at icedtea.classpath.org (chrisphi at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 13:04:46 +0000
Subject: /hg/icedtea6: Bug 1362: Fedora 19 / rawhide FTBFS SIGILL
Message-ID:
changeset 3584aac9d62d in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3584aac9d62d
author: chrisphi
date: Fri Apr 05 09:01:48 2013 -0400
Bug 1362: Fedora 19 / rawhide FTBFS SIGILL
Summary: Fix reg alloc problem in thumb2.cpp compiler.
diffstat:
arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 30 ++++++++++++++++++++++++----
1 files changed, 25 insertions(+), 5 deletions(-)
diffs (85 lines):
diff -r 241d297ff5e3 -r 3584aac9d62d arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp
--- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 27 21:14:08 2013 +0000
+++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Apr 05 09:01:48 2013 -0400
@@ -1,5 +1,6 @@
/*
* Copyright 2009, 2010 Edward Nevill
+ * Copyright 2013 Red Hat
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
@@ -399,6 +400,8 @@
static jmp_buf compiler_error_env;
+#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED)
+
#ifdef PRODUCT
#define JASSERT(cond, msg) 0
@@ -3505,8 +3508,6 @@
#define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3])
#define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4])
-#define POP(jstack) ((jstack)->stack[--(jstack)->depth])
-#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r))
#define SWAP(jstack) do { \
Reg r = (jstack)->stack[(jstack)->depth-1]; \
(jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \
@@ -3516,6 +3517,17 @@
#define JSTACK_REG(jstack) jstack_reg(jstack)
#define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer)
+int PUSH(Thumb2_Stack *jstack, unsigned reg) {
+ jstack->stack[jstack->depth] = reg;
+ jstack->depth++;
+ return reg;
+}
+
+int POP(Thumb2_Stack *jstack) {
+ jstack->depth--;
+ return jstack->stack[jstack->depth];
+}
+
static const unsigned last_clear_bit[] = {
3, // 0000
3, // 0001
@@ -3532,11 +3544,13 @@
1, // 1100
1, // 1101
0, // 1110
- 0, // 1111
+ 0, // 1111 // No registers available...
};
#define LAST_CLEAR_BIT(mask) last_clear_bit[mask]
+unsigned long thumb2_register_allocation_failures = 0;
+
unsigned jstack_reg(Thumb2_Stack *jstack)
{
unsigned *stack = jstack->stack;
@@ -3547,7 +3561,10 @@
for (i = 0; i < depth; i++) mask |= 1 << stack[i];
mask &= (1 << STACK_REGS) - 1;
- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push");
+ if (mask >= (1 << STACK_REGS) - 1) { // No free registers
+ thumb2_register_allocation_failures++;
+ J_BogusImplementation();
+ }
r = LAST_CLEAR_BIT(mask);
return r;
}
@@ -3563,7 +3580,10 @@
for (i = 0; i < depth; i++) mask |= 1 << stack[i];
mask &= (1 << STACK_REGS) - 1;
if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1));
- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push");
+ if (mask >= (1 << STACK_REGS) - 1) { // No free registers
+ thumb2_register_allocation_failures++;
+ J_BogusImplementation();
+ }
r = LAST_CLEAR_BIT(mask);
return r;
}
From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:04:58 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 13:04:58 +0000
Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362
--- Comment #2 from hg commits ---
details:
http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=3584aac9d62d
author: chrisphi
date: Fri Apr 05 09:01:48 2013 -0400
Bug 1362: Fedora 19 / rawhide FTBFS SIGILL
Summary: Fix reg alloc problem in thumb2.cpp compiler.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/018837ae/attachment.html
From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:13:29 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 13:13:29 +0000
Subject: [Bug 1386] New: Ameritrade Think or Swim crashes in Java VM: OpenJDK
64-Bit
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386
Bug ID: 1386
Summary: Ameritrade Think or Swim crashes in Java VM: OpenJDK
64-Bit
Classification: Unclassified
Product: IcedTea
Version: unspecified
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: IcedTea
Assignee: gnu.andrew at redhat.com
Reporter: mate at sci.brooklyn.cuny.edu
CC: unassigned at icedtea.classpath.org
Created attachment 849
--> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=849&action=edit
It is the report by Think or Swim when the program stopped
Error occurred when running Think or Swim program. The program unexpectedly
stopped at various times. Bug reports are attached. Several similar bug reports
are available, but your website seems to allow only one attachment. System is
Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/83b051eb/attachment.html
From chrisphi at icedtea.classpath.org Fri Apr 5 06:25:40 2013
From: chrisphi at icedtea.classpath.org (chrisphi at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 13:25:40 +0000
Subject: /hg/release/icedtea6-1.12: Bug 1362: Fedora 19 / rawhide FTBFS ...
Message-ID:
changeset 623621d29d04 in /hg/release/icedtea6-1.12
details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=623621d29d04
author: chrisphi
date: Fri Apr 05 09:01:48 2013 -0400
Bug 1362: Fedora 19 / rawhide FTBFS SIGILL
Summary: Fix reg alloc problem in thumb2.cpp compiler.
diffstat:
arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 30 ++++++++++++++++++++++++----
1 files changed, 25 insertions(+), 5 deletions(-)
diffs (85 lines):
diff -r 12f5fe9e85d3 -r 623621d29d04 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp
--- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Wed Mar 20 11:00:45 2013 +0000
+++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Apr 05 09:01:48 2013 -0400
@@ -1,5 +1,6 @@
/*
* Copyright 2009, 2010 Edward Nevill
+ * Copyright 2013 Red Hat
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
@@ -399,6 +400,8 @@
static jmp_buf compiler_error_env;
+#define J_BogusImplementation() longjmp(compiler_error_env, COMPILER_RESULT_FAILED)
+
#ifdef PRODUCT
#define JASSERT(cond, msg) 0
@@ -3505,8 +3508,6 @@
#define TOSM2(jstack) ((jstack)->stack[(jstack)->depth-3])
#define TOSM3(jstack) ((jstack)->stack[(jstack)->depth-4])
-#define POP(jstack) ((jstack)->stack[--(jstack)->depth])
-#define PUSH(jstack, r) ((jstack)->stack[(jstack)->depth++] = (r))
#define SWAP(jstack) do { \
Reg r = (jstack)->stack[(jstack)->depth-1]; \
(jstack)->stack[(jstack)->depth-1] = (jstack)->stack[(jstack)->depth-2]; \
@@ -3516,6 +3517,17 @@
#define JSTACK_REG(jstack) jstack_reg(jstack)
#define JSTACK_PREFER(jstack, prefer) jstack_prefer(jstack, prefer)
+int PUSH(Thumb2_Stack *jstack, unsigned reg) {
+ jstack->stack[jstack->depth] = reg;
+ jstack->depth++;
+ return reg;
+}
+
+int POP(Thumb2_Stack *jstack) {
+ jstack->depth--;
+ return jstack->stack[jstack->depth];
+}
+
static const unsigned last_clear_bit[] = {
3, // 0000
3, // 0001
@@ -3532,11 +3544,13 @@
1, // 1100
1, // 1101
0, // 1110
- 0, // 1111
+ 0, // 1111 // No registers available...
};
#define LAST_CLEAR_BIT(mask) last_clear_bit[mask]
+unsigned long thumb2_register_allocation_failures = 0;
+
unsigned jstack_reg(Thumb2_Stack *jstack)
{
unsigned *stack = jstack->stack;
@@ -3547,7 +3561,10 @@
for (i = 0; i < depth; i++) mask |= 1 << stack[i];
mask &= (1 << STACK_REGS) - 1;
- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push");
+ if (mask >= (1 << STACK_REGS) - 1) { // No free registers
+ thumb2_register_allocation_failures++;
+ J_BogusImplementation();
+ }
r = LAST_CLEAR_BIT(mask);
return r;
}
@@ -3563,7 +3580,10 @@
for (i = 0; i < depth; i++) mask |= 1 << stack[i];
mask &= (1 << STACK_REGS) - 1;
if ((prefer & ~mask) & 0x0f) mask |= (~prefer & ((1 << STACK_REGS) - 1));
- JASSERT(mask != (1 << STACK_REGS) - 1, "No free reg in push");
+ if (mask >= (1 << STACK_REGS) - 1) { // No free registers
+ thumb2_register_allocation_failures++;
+ J_BogusImplementation();
+ }
r = LAST_CLEAR_BIT(mask);
return r;
}
From bugzilla-daemon at icedtea.classpath.org Fri Apr 5 06:25:49 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Fri, 05 Apr 2013 13:25:49 +0000
Subject: [Bug 1362] [IcedTea6] Fedora 19 / rawhide FTBFS SIGILL
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1362
--- Comment #3 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea6-1.12?cmd=changeset;node=623621d29d04
author: chrisphi
date: Fri Apr 05 09:01:48 2013 -0400
Bug 1362: Fedora 19 / rawhide FTBFS SIGILL
Summary: Fix reg alloc problem in thumb2.cpp compiler.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/ad469812/attachment.html
From jvanek at redhat.com Fri Apr 5 06:59:54 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 15:59:54 +0200
Subject: [icedtea-web] RFC: use tagsoup to try and parse malformed JNLP
files
Message-ID: <515ED8DA.9070905@redhat.com>
pinging this to not let it die
-------- Original Message --------
Subject: RE: [icedtea-web] RFC: use tagsoup to try and parse malformed JNLP files
Date: Wed, 06 Jun 2012 15:12:17 -0400
From: Adam Domurad
To: distro-pkg-dev at openjdk.java.net
I have attached the patch of what I ended up with after applying the
patch to the recent code, to make further review easier hopefully.
I have also attached only the updated test changes from the same patch.
(Note that my changes to Makefile.am are dubious, I was just doing what
was necessary to test the patch.)
I'd appreciate if another reviewer ran the tests as I'm having trouble
getting with running a few of them (in general). From what I see though
this patch passes more tests than normal, including two of the malformed
XML unit tests.
>From what I've seen the changes to the code look solid, I'd comment more
but I'm not too sure of the impact of some of the changes.
> Hi,
>
> I have come across a number of JNLP files that are not valid xml. Netx
> can not parse these files using a xml parser, and fails to run them. I
> spent some time looking for a solution and came across TagSoup[1]. The
> TagSoup library parses a malformed HTML document into a well-formed
> xml-like HTML document, but it works almost perfectly for our purposes too.
>
> The attached patch makes use of TagSoup for parsing input jnlp files.
>
> Parsing is currently implemented in two passes. In the first pass,
> TagSoup reads the "xml" (which can be malformed and hence not really
> xml), and outputs valid XML. Netx then uses this valid XML and uses it's
> own XML parser to parse the file.
>
> The patch requires TagSoup as an optional dependency. To use TagSoup,
> run configure (--with-tagsoup can be used to point to a TagSoup jar). To
> not use TagSoup (even if it installed), use --with-tagsoup=no
>
> The patch also adds an additional command line option, -xml ,to the
> javaws binary. This option can be used to force Netx to use the normal
> xml parser instead of TagSoup to parse the jnlp file.
>
> Any thoughts or comments?
>
> ChangeLog:
> 2011-01-10 Omair Majid
>
> * Makefile.am: Add NETX_EXCLUDE_SRCS, NETX_DUMMY_CLASSPATH
> (netx-source-files.txt): Selectively exclude some sources from
> compilation.
> (stamps/netx.stamp): Depend on netx-dummy.jar
> (netx-dummy.jar): New target. Empty jar. Used so there is always at
> least one class on the classpath.
> ($(NETX_DIR)/launcher/%.o): Add classpath.
> * NEWS: Update with fix.
> * acinclude.m4: Add IT_CHECK_FOR_TAGSOUP.
> * configure.ac: Call IT_CHECK_FOR_TAGSOUP.
> * netx/net/sourceforge/jnlp/JNLPFile.java: Add new member
> parserSettings.
> (JNLPFile(URL)): Pass a ParserSettings object.
> (JNLPFile(URL,boolean)): Refactored into...
> (JNLPFile(URL,ParserSettings)): New method.
> (JNLPFile(URL,Version,boolean)): Refactored into...
> (JNLPFile(URL,Version,ParserSettings)): New method.
> (JNLPFile(URL,Version,boolean,UpdatePolicy)): Refactored into...
> (JNLPFile(URL,Version,ParserSettings,UpdatePolicy)): New method.
> (JNLPFile(URL,String,Version,boolean,UpdatePolicy)): Refactored
> into...
> (JNLPFile(URL,String,Version,ParserSettings,UpdatePolicy)): New
> method.
> (JNLPFile(InputStream,boolean)): Refactored into...
> (JNLPFile(InputStream,ParserSettings)): New method.
> (getParserSettings): New method.
> (parse(Node,boolean,URL)): Refactored into...
> (parse(InputStream,URL)): New method. Invoke parser to get the root
> node and then parse it.
> * netx/net/sourceforge/jnlp/Launcher.java
> (toFile): Use new ParserSettings object.
> * netx/net/sourceforge/jnlp/Parser.java
> (Parser(JNLPFile,URL,Node,boolean,boolean)): Refactored into...
> (Parser(JNLPFile,URL,Node,ParserSettings)): New method.
> (getRootNode): Implementation moved into XMLParser.getRootNode.
> Selects the right subclass of XMLParser to use.
> (getEncoding): Moved to XMLParser.
> * netx/net/sourceforge/jnlp/ParserSettings.java: New file.
> (ParserSettings): New method.
> (ParserSettings(boolean,boolean,boolean)): New method.
> (isExtensionAllowed): New method.
> (isMalfromedXmlAllowed): New method.
> (isStrict): New method.
> * netx/net/sourceforge/jnlp/XMLParser.java
> (getRootNode): New method. Contains implementation from
> Parser.getRootNode.
> (getEncoding): New method. Moved from Parser.
> * netx/net/sourceforge/jnlp/MalformedXMLParser.java: New file.
> (getRootNode): New method. Transform input into valid xml and
> delegate to parent to parse it.
> (xmlizeInputStream): New method. Read contents from an input stream
> and transform it into valid xml.
> * netx/net/sourceforge/jnlp/resources/Messages.properties: Add
> BOXml.
> * netx/net/sourceforge/jnlp/runtime/Boot.java: Add -xml option.
> (getFile): Parse -xml option and create a new ParserSettings object
> based on it.
> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
> (getInstance(URL,String,Version,UpdatePolicy)): Refactored into...
> (getInstance(URL,String,Version,ParserSettings,UpdatePolicy): New
> method.
> (initializeExtensions): Use the same parser settings to parse the
> extension as used in the original file.
>
> Cheers,
> Omair
>
> [1] http://home.ccil.org/~cowan/XML/tagsoup/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: update_to_patch.patch
Type: text/x-patch
Size: 41913 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/0e261339/update_to_patch.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_changes.patch
Type: text/x-patch
Size: 9777 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/0e261339/test_changes.patch
From jvanek at redhat.com Fri Apr 5 07:02:34 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 16:02:34 +0200
Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue
classloaders
In-Reply-To: <515DDFF1.60405@redhat.com>
References: <515DDFF1.60405@redhat.com>
Message-ID: <515ED97A.8020406@redhat.com>
On 04/04/2013 10:17 PM, Adam Domurad wrote:
> This puts a bandaid over http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is probably too generous.
> With this, the SweetHome3D JNLP [1] runs again. The applet version had worked before.
>
> This is explicitly *not* wanted for HEAD. I am posting this for review now to be considered for any release branches where a proper fix is not found. (1.4 definitely, who knows maybe even previous & future releases. But such hackery should not be in HEAD.)
>
> 2013-XX-XX Adam Domurad
>
> Hack to ensure AppContext is set correctly.
> * netx/net/sourceforge/jnlp/Launcher.java
> (forceContextClassLoaderHack): Force stored class-loader for
> thread-group's AppContext and EventQueue to be our JNLPClassLoader.
> (createApplet): Call forceContextClassLoaderHack.
> (createAppletObject): Call forceContextClassLoaderHack.
> (createApplication): Call forceContextClassLoaderHack.
>
> I have not found any potential problems this may cause (and I've digged quite deep). Let me know of any concerns.
>
> [1] www.sweethome3d.com/SweetHome3D.jnlp
>
> Happy hacking,
> -Adam
Hi! Thanx for this.
Can you write (point to) more information about the (possible) patch for head?
Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to push to it. Anyway It will need some focus during 1.4 release regression testing to be sure we have not broken anything....
Btw - changes like this NEEDS reproducers. The rule from wiki[1] is not obeyed those times too offten. The development of ITW have speed up a lot now, but we are loosing a testcoverage a bit :(
[1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches
"IcedTea-Web code changes/new feature should be accompanied with appropriate tests (JUnit class and/or reproducer). If no tests are added/modified, changes should be accompanied with an explanation as to why. "
J.
From adomurad at redhat.com Fri Apr 5 08:01:05 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Fri, 05 Apr 2013 11:01:05 -0400
Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue
classloaders
In-Reply-To: <515ED97A.8020406@redhat.com>
References: <515DDFF1.60405@redhat.com> <515ED97A.8020406@redhat.com>
Message-ID: <515EE731.6050000@redhat.com>
On 04/05/2013 10:02 AM, Jiri Vanek wrote:
> On 04/04/2013 10:17 PM, Adam Domurad wrote:
>> This puts a bandaid over
>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is
>> probably too generous.
>> With this, the SweetHome3D JNLP [1] runs again. The applet version
>> had worked before.
>>
>> This is explicitly *not* wanted for HEAD. I am posting this for
>> review now to be considered for any release branches where a proper
>> fix is not found. (1.4 definitely, who knows maybe even previous &
>> future releases. But such hackery should not be in HEAD.)
>>
>> 2013-XX-XX Adam Domurad
>>
>> Hack to ensure AppContext is set correctly.
>> * netx/net/sourceforge/jnlp/Launcher.java
>> (forceContextClassLoaderHack): Force stored class-loader for
>> thread-group's AppContext and EventQueue to be our JNLPClassLoader.
>> (createApplet): Call forceContextClassLoaderHack.
>> (createAppletObject): Call forceContextClassLoaderHack
>> (createApplication): Call forceContextClassLoaderHack.
>>
>> I have not found any potential problems this may cause (and I've
>> digged quite deep). Let me know of any concerns.
>>
>> [1] www.sweethome3d.com/SweetHome3D.jnlp
>>
>> Happy hacking,
>> -Adam
>
> Hi! Thanx for this.
>
> Can you write (point to) more information about the (possible) patch
> for head?
>
> Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to
> push to it. Anyway It will need some focus during 1.4 release
> regression testing to be sure we have not broken anything....
> Btw - changes like this NEEDS reproducers. The rule from wiki[1] is
> not obeyed those times too offten. The development of ITW have speed
> up a lot now, but we are loosing a testcoverage a bit :(
While I certainly can't say I disagree, I do think some of the changes
you are considering here apply broadly enough to already be covered by
the reproducer suite (eg initialization changes). Also, I do sometimes
write pure testing patches :-)
>
> [1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches
> "IcedTea-Web code changes/new feature should be accompanied with
> appropriate tests (JUnit class and/or reproducer). If no tests are
> added/modified, changes should be accompanied with an explanation as
> to why. "
>
> J.
Sorry for not pointing to the reproducer (I actually thought this
reproducer was already in HEAD).
Please check the email:
[rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader
For the reproducer and additional information.
To summarize: JNLPClassLoader needs to be created before the AppContext.
The naive approach results in unclickable pop-ups (although it's a
little hard to explain why without digging into it again). The correct
approach is to ensure all pop-ups occur on some 'security thread', or to
have JNLPClassLoader creation be far more light-weight.
Sorry for fairly unsatisfying reply, I have lost the details a bit. I'll
have to pick this up again some time.
Happy hacking,
-Adam
From jvanek at redhat.com Fri Apr 5 08:32:22 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 17:32:22 +0200
Subject: [rfc][icedtea-web] Strip parameters from document-base
In-Reply-To: <515C3805.1090802@redhat.com>
References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com>
<515C3805.1090802@redhat.com>
Message-ID: <515EEE86.3000703@redhat.com>
On 04/03/2013 04:09 PM, Adam Domurad wrote:
> On 03/28/2013 07:53 AM, Jiri Vanek wrote:
> > On 03/27/2013 09:20 PM, Adam Domurad wrote:
> >> It appears having parameters in the URL for the stored document-base
> >> can cause problems with some
> >> applets, namely the Oracle LMS applet.
> >>
> >> A small bit of refactoring is needed to move the URL stripping code:
> >>
> >> Refactoring ChangeLog:
> >> 2013-03-26 Adam Domurad
> >>
> >> *
> >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java
> >>
> >> (normalizeUrlAndStripParams): Moved.
> >> * netx/net/sourceforge/jnlp/util/UrlUtils.java
> >> (normalizeUrlAndStripParams): New, moved from
> >> UnsignedAppletTrustConfirmation.
> >> *
> >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java
> >>
> >>
> >> (testNormalizeUrlAndStripParams): Moved.
> >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java:
> >> New, has (testNormalizeUrlAndStripParams) from
> >> UnsignedAppletTrustConfirmationTest.
> >>
> >>
> >> And the fix itself:
> >> 2013-03-26 Adam Domurad
> >>
> >> * netx/net/sourceforge/jnlp/NetxPanel.java
> >> (NetxPanel): Ensure documentURL has stripped parameters
> >>
> >> Happy hacking,
> >> -Adam
> >
> > The refactoring is ok. But to use completely stripped codeabse in base
> > codebase sounds to me as quite big change. As far as i looked, I was
> > not able to judge all the impact and would rather stay with more
> > conservative change or with very deep testing of this change on your
> > side.
>
> Actually, stripping in the code-base was always done. The bug was that
> URL's such as:
>
> http://example.com/?test/
>
> Were not being stripped properly, because the last part looked like a
> directory.
> However after further testing it looks like Oracle does not strip the
> document-base. It was a bit ugly but I have managed to ensure that our
> documentbase & codebase are always the same as Oracle's.
>
> There is some refactoring attached that moves normalizeUrl from
> ResourceTracker to UrlUtils, as well as adding an option whether to
> encode file:// based URL's or not. For compatibility purposes, we must
> encode URL's in the code-base & document-base, even if local. This is a
> good idea for matching purposes too.
>
> However, for actually accessing these URL's, the file:// based URL's
> should not be encoded.
>
> add-url-utils.patch ChangeLog:
> 2013-04-02 Adam Domurad
>
> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no
> longer used constants. Remove (normalizeUrl). Update calls.
> * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports.
> Update calls.
> *
> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java:
> Ensure file://-protocol URLs are encoded.
> * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl),
> and related utility methods. Allow for optionally encoding file://
> URLs.
>
Thanx for deep checks!
> There is some non-ideal code in the fix itself, because first we pass a
> stripped document-base, and then restore it to its original form. I
> blame this on the rigidity of inheriting from AppletViewerPanel, but I
> did not want to remove this inheritance in this patch.
>
> properly-strip-codebase.patch:
> 2013-04-02 Adam Domurad
>
> Ensure code-base is stripped of parameters that look like
> directories.
> * netx/net/sourceforge/jnlp/NetxPanel.java
> (NetxPanel): Ensure code-base is created from stripped
> document-base.
> Don't strip document-base itself.
> (runLoader): Ensure URL used for resource loaded is not
> encoded.
>
> The biggest change I think is the fact that the document-base &
> code-base are now encoded, otherwise code-bases were (almost) always
> stripped already. The code-base is decoded for resource-loading
> purposes, as it was before.
>
> It looks fine from my testing (so far).
Ok, I thnk this look ok even for upcoming release. Anyway - before push please add unittests for all new static methods. and also enhance already existing test in UrlUtilsTest for new corner cases (file/http/ftp x , true/false...) .
+ /* Decode a percent-encoded URL. Catch checked exceptions and log. */
+ public static URL decodeUrlQuietly(URL url) {
+ try {
+ return new URL(URLDecoder.decode(url.toString(), UTF8));
+ } catch (IOException e) {
+ return url;
+ }
+ }
+
Where is the log? if it is adding of ex.printStacktrace then ok without further review.
J.
From adomurad at redhat.com Fri Apr 5 08:38:21 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Fri, 05 Apr 2013 11:38:21 -0400
Subject: [rfc][icedtea-web] dialogue for set jre dir
In-Reply-To: <515D5372.1070204@redhat.com>
References: <51277A2D.8050904@redhat.com> <51499582.80604@redhat.com>
<514B26E1.8080502@redhat.com> <5155B7FC.1050602@redhat.com>
<515C2CAF.1010408@redhat.com> <515D5372.1070204@redhat.com>
Message-ID: <515EEFED.1080000@redhat.com>
[.. Everything snipped ..]
Looks good overall.
- Detecting Oracle JDK works. However I'm not sure this is a 'great'
result if nothing works. Also note:
http://i.imgur.com/OwmiVVq.png
This should be more clear that the warning is because we are not
selecting OpenJDK, and perhaps say why (ie, plugin won't work)
More issues:
Using javaws with Oracle JDK:
Your custom JRE /usr/java/jdk1.7.0_13 read from deployment.properties
under key deployment.jre.dir as /usr/java/jdk1.7.0_13 is not valid.
Using default (/usr/lib/jvm/java-openjdk/jre/bin/java,
/usr/lib/jvm/java-openjdk/jre/lib/rt.jar) in attempt to start. Please
fix this.
Note thate bin/javaws exists in this directory. Adding a / to the end of
the dir didn't help. It did at least fall back to IcedTea correctly.
Using plugin with Oracle JDK:
"Your custom jre (/lib/rt.jar check) /usr/java/jdk1.7.0_13/ is not
valid. Please fix deployment.jre.dir in your deployment.properties. In
attempt to run using default one.
Exception in thread "PluginMessageHandlerWorker1"
java.lang.IllegalAccessError: class net.sourceforge.jnlp.NetxPanel
cannot access its superclass sun.applet.AppletViewerPanel"
The exception is expected -- but the 'is not valid' message is not.
Additionally it does not seem to be falling back correctly.
Nits:
- It'd be nice if the explicit validate option were greyed out when
automatic validation is enabled
- There's a YES/NO/CANCEL option on the warning dialogue (the one in my
image), but it seems NO & CANCEL do the same thing. It'd be nice if one
of the options reverted to the default.
Comments on code:
> [.. snip ..]
> - File jreFile = new File(System.getProperty("java.home") +
> File.separator + "lib"
> - + File.separator + DEPLOYMENT_CONFIG);
> + String jrePath = null;
> + try {
> + Map> tmpProperties =
> parsePropertiesFile(USER_DEPLOYMENT_PROPERTIES_FILE);
> + Setting jreSetting = tmpProperties.get(KEY_JRE_DIR);
> + if (jreSetting != null) {
> + jrePath = jreSetting.getValue();
> + }
> + } catch (Exception ex) {
[nit] Rather explicitly catch exceptions we want to ignore, but OK.
> + ex.printStackTrace();
> + }
> +
> [..snip..]
> + try {
> + p = sb.start();
> + p.waitFor();
> + processErrorStream =
> StreamUtils.readStreamAsString(p.getErrorStream());
> + processStdOutStream =
> StreamUtils.readStreamAsString(p.getInputStream());
> + r = p.exitValue();
> + //System.err.println(processErrorStream);
> + //System.out.println(processStdOutStream);
Please remove these comments.
> + processErrorStream = processErrorStream.toLowerCase();
> + processStdOutStream = processStdOutStream.toLowerCase();
> + } catch (Exception ex) {;
[nit] Rather just catch any checked exceptions, but OK.
> + ex.printStackTrace();
> +
> + }
> + if (r == null) {
> + validationResult += "" +
> Translator.R("CPJVMnotLaunched") + "";
> + if (latestOne != JvmValidationResult.STATE.NOT_DIR) {
> + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK;
> + }
> + return new JvmValidationResult(validationResult, latestOne);
> + }
> + if (r.intValue() != 0) {
> + validationResult += "" +
> Translator.R("CPJVMnoSuccess") + "";
> + if (latestOne != JvmValidationResult.STATE.NOT_DIR) {
> + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK;
> + }
> + return new JvmValidationResult(validationResult, latestOne);
> + }
> + if (processErrorStream.contains("openjdk") ||
> processStdOutStream.contains("openjdk")) {
> + validationResult += "" +
> Translator.R("CPJVMopenJdkFound") + "";
> + return new JvmValidationResult(validationResult,
> JvmValidationResult.STATE.VALID_JDK);
> + }
> + if (processErrorStream.contains("ibm") ||
> processStdOutStream.contains("ibm")) {
> + validationResult += "" +
> Translator.R("CPJVMibmFound") + "";
> + if (latestOne != JvmValidationResult.STATE.NOT_DIR) {
> + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK;
> + }
> + return new JvmValidationResult(validationResult, latestOne);
> + }
> + if (processErrorStream.contains("gij") ||
> processStdOutStream.contains("gij")) {
> + validationResult += "" +
> Translator.R("CPJVMgijFound") + "";
> + if (latestOne != JvmValidationResult.STATE.NOT_DIR) {
> + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK;
> + }
> + return new JvmValidationResult(validationResult, latestOne);
> + }
> + if (processErrorStream.contains("oracle") ||
> processStdOutStream.contains("oracle")
> + || processErrorStream.contains("java(tm)") ||
> processStdOutStream.contains("java(tm)")) {
> + validationResult += "" +
> Translator.R("CPJVMoracleFound") + "";
> + if (latestOne != JvmValidationResult.STATE.NOT_DIR) {
> + latestOne = JvmValidationResult.STATE.NOT_VALID_JDK;
> + }
> + return new JvmValidationResult(validationResult, latestOne);
> + }
> + validationResult += "" +
> Translator.R("CPJVMstrangeProcess") + "";
> + return new JvmValidationResult(validationResult,
> JvmValidationResult.STATE.NOT_VALID_JDK);
> +
> + }
> +
> + private String resetValidationResult(final String value, String
> result, String headerKey) {
> + return "" + Translator.R(headerKey) + ":
" +
> value + "
" + result + "
";
> + }
> }
> diff -r fbb6b3605538
> netx/net/sourceforge/jnlp/resources/Messages.properties
> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr
> 04 11:21:04 2013 +0200
> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Apr
> 04 12:09:43 2013 +0200
> @@ -310,6 +310,29 @@
> CPDebuggingDescription=Enable options here to help with debugging
> CPDesktopIntegrationDescription=Set whether or not to allow creation
> of desktop shortcut.
> CPJVMPluginArguments=Set JVM arguments for plugin.
> +CPJVMitwExec=Set JVM for icedtea-web - working best with OpenJDK
> +CPJVMitwExecValidation=Validate JVM for icedtea-web
> +CPJVMPluginSelectExec=Select JVM for icedtea-web
> +CPJVMnone=No validation result for
> +CPJVMvalidated=Validation result for
> +CPJVMvalueNotSet=Value is not set. Hardcoded JVM will be used.
> +CPJVMnotLaunched=Error, process was not launched, see console output
> for more info.
> +CPJVMnoSuccess=Error, process have not ended successfully, see output
> for details, but your java is not set correctly.
> +CPJVMopenJdkFound=Excellent, OpenJDK detected
> +CPJVMoracleFound=Great, Oracle java detected
> +CPJVMibmFound=Good, IBM java detected
> +CPJVMgijFound=Warning, gij detected
> +CPJVMstrangeProcess=Your path had an executable process, but it was
> not recognized. Verify the Java version in the console output.
> +CPJVMnotDir=Error, The path you chose is not a directory.
> +CPJVMisDir=Ok, the path you chose is a directory.
> +CPJVMnoJava=Error, the directory you chose does not contain bin/java.
> +CPJVMjava=Ok, the directory you chose contains bin/java.
> +CPJVMnoRtJar=Error, the directory you chose does not contain lib/rt.jar
> +CPJVMrtJar=Ok, the directory you chose contains lib/rt.jar.
> +CPJVMPluginAllowTTValidation=Allow type-time validation
> +CPJVMNotokMessage1=You have entered invalid JDK value ({0})
> with following error message:
> +CPJVMNotokMessage2=With invalid JDK IcedTea-Web will probably not
> able to start.
You will have to modify or remove {0}
> property in your configuration file {1}.
You should try to
> search for OpenJDK in your system or be sure you know what you are doing.
> +
>
> # Control Panel - Buttons
> CPButAbout=About...
> diff -r fbb6b3605538 netx/net/sourceforge/jnlp/util/StreamUtils.java
> --- a/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Apr 04
> 11:21:04 2013 +0200
> +++ b/netx/net/sourceforge/jnlp/util/StreamUtils.java Thu Apr 04
> 12:09:43 2013 +0200
> @@ -37,9 +37,11 @@
>
> package net.sourceforge.jnlp.util;
>
> +import java.io.BufferedReader;
> import java.io.Closeable;
> import java.io.IOException;
> import java.io.InputStream;
> +import java.io.InputStreamReader;
>
> public class StreamUtils {
>
> @@ -71,4 +73,21 @@
> }
> }
> }
> +
> +
> + public static String readStreamAsString(InputStream stream)
> throws IOException {
> + InputStreamReader is = new InputStreamReader(stream);
> + StringBuilder sb = new StringBuilder();
> + BufferedReader br = new BufferedReader(is);
> + while (true) {
> + String read = br.readLine();
> + if (read == null) {
> + break;
> + }
> + sb.append(read);
> +
> + }
> +
> + return sb.toString();
> + }
> }
Thanks for moving this method!
Nothing else stands out code-wise, thanks for sticking with it.
As far as I know, the bugs I mentioned above are related to
already-pushed patches, so they can (and should) be fixed separately.
To summarize before pushing, I view these as a must:
- Remove commented out println's
- Clarify the 'error message' that isn't an error in the image I showed.
Please explicitly mention that the warning concerns not choosing IcedTea.
And of course, consider the nits.
You may push without sending to list again, your call.
Happy hacking,
-Adam
From jvanek at redhat.com Fri Apr 5 09:04:44 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 18:04:44 +0200
Subject: [rfc][icedtea-web] PR1251: Hack for appcontext & event-queue
classloaders
In-Reply-To: <515EE731.6050000@redhat.com>
References: <515DDFF1.60405@redhat.com> <515ED97A.8020406@redhat.com>
<515EE731.6050000@redhat.com>
Message-ID: <515EF61C.6090306@redhat.com>
On 04/05/2013 05:01 PM, Adam Domurad wrote:
> On 04/05/2013 10:02 AM, Jiri Vanek wrote:
>> On 04/04/2013 10:17 PM, Adam Domurad wrote:
>>> This puts a bandaid over http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251. 'Fix' is probably too generous.
>>> With this, the SweetHome3D JNLP [1] runs again. The applet version had worked before.
>>>
>>> This is explicitly *not* wanted for HEAD. I am posting this for review now to be considered for any release branches where a proper fix is not found. (1.4 definitely, who knows maybe even previous & future releases. But such hackery should not be in HEAD.)
>>>
>>> 2013-XX-XX Adam Domurad
>>>
>>> Hack to ensure AppContext is set correctly.
>>> * netx/net/sourceforge/jnlp/Launcher.java
>>> (forceContextClassLoaderHack): Force stored class-loader for
>>> thread-group's AppContext and EventQueue to be our JNLPClassLoader.
>>> (createApplet): Call forceContextClassLoaderHack.
>>> (createAppletObject): Call forceContextClassLoaderHack
>>> (createApplication): Call forceContextClassLoaderHack.
>>>
>>> I have not found any potential problems this may cause (and I've digged quite deep). Let me know of any concerns.
>>>
>>> [1] www.sweethome3d.com/SweetHome3D.jnlp
>>>
>>> Happy hacking,
>>> -Adam
>>
>> Hi! Thanx for this.
>>
>> Can you write (point to) more information about the (possible) patch for head?
>>
>> Anyway I agree this is hack. When 1.4 is branched, I'm ok for this to push to it. Anyway It will need some focus during 1.4 release regression testing to be sure we have not broken anything....
>> Btw - changes like this NEEDS reproducers. The rule from wiki[1] is not obeyed those times too offten. The development of ITW have speed up a lot now, but we are loosing a testcoverage a bit :(
>
> While I certainly can't say I disagree, I do think some of the changes you are considering here apply broadly enough to already be covered by the reproducer suite (eg initialization changes). Also, I do sometimes write pure testing patches :-)
>
>>
>> [1] http://icedtea.classpath.org/wiki/CommitPolicy#OpenJDK_Patches
>> "IcedTea-Web code changes/new feature should be accompanied with appropriate tests (JUnit class and/or reproducer). If no tests are added/modified, changes should be accompanied with an explanation as to why. "
>>
>> J.
>
> Sorry for not pointing to the reproducer (I actually thought this reproducer was already in HEAD).
>
> Please check the email:arg!
> [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader
> For the reproducer and additional information.
>
> To summarize: JNLPClassLoader needs to be created before the AppContext. The naive approach results in unclickable pop-ups (although it's a little hard to explain why without digging into it again). The correct approach is to ensure all pop-ups occur on some 'security thread', or to have JNLPClassLoader creation be far more light-weight.
>
> Sorry for fairly unsatisfying reply, I have lost the details a bit. I'll have to pick this up again some time.
>
> Happy hacking,
> -Adam
Argh! ReflectiveOperationException is jdk7 specific!
From jvanek at redhat.com Fri Apr 5 09:18:15 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 18:18:15 +0200
Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context
classloader
In-Reply-To: <50F5898A.40108@redhat.com>
References: <50F5898A.40108@redhat.com>
Message-ID: <515EF947.8090104@redhat.com>
On 01/15/2013 05:53 PM, Adam Domurad wrote:
> This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D furniture dragging.
>
> I'll preface by saying, I'm not particularly fond of the changes in this patch, but they have to be done to fix JNLP applications that load resources on the Swing thread, like eg SweetHome3D.
>
> The patch adds a flag to JNLPClassLoader that specifies whether it has been initialized. The default for getInstance remains the same, it grabs an initialized JNLPClassLoader. However an alternate getInstance was added to be able to grab JNLPClassLoader that hasn't been fully initialized.
>
> The problem with initialization:
> - To create AppContext we need JNLPClassLoader object constructed
> - To construct JNLPClassLoader we must initialize it
> - Initializing JNLPClassLoader implies downloading all resources, and updating Swing components
>
> However, we cannot update swing components before we create our AppContext, or the result will be a mess (eg unclickable popups).
> In essence, it's a bootstrapping problem. So the patch makes it possible to get a constructed JNLPClassLoader, which is initialized in a separate step.
>
> What else was tried ?
> The only other option is to set the context classloader to some other classloader. A proxy classloader can be created that initially points to the system classloader, but can be set to JNLPClassLoader after it is created. Determined too much of a hack, and getParent cannot be properly proxied.
>
> Basically with this patch, the life-time of the context classloaders for each thread is:
> 1. By default system classloader is context classloader.
> 2. Create new AppContext, capture JNLPClassLoader that isn't yet valid. Ensure we keep using system classloader as context classloader for all threads.
> 3. Initialize JNLPClassLoader. Before start of applet, ensure all threads context classloaders are set to (now initialized) JNLPClassLoader.
>
> Recommendations welcome -- it was a lot of deliberation before I decided to take this route. If someone has a simpler/cleaner solution than by all means suggest it!
>
> Reproducer changelog:
> 2013-XX-XX Adam Domurad
>
> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html:
> Test AppContext context classloader from HTML applet
> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp:
> Test AppContext context classloader from JNLP application
> * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp:
> Test AppContext context classloader from JNLP applet
> * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java:
> Print out context classloader for thread & AppContext, for
> current thread & Swing thread.
> * tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java:
> Test runner for AppContextHasJNLPClassLoader
>
> REPRODUCER NOTES:
> This exposes an additional bug in JNLP applets. start/init incorrectly runs on the Swing thread, and invokeAndWait hangs forever. I'm not sure how this wasn't caught, but the JNLP applet reproducer is broken pending a separate bug fix.
>
> Fixes changelog:
> 2013-XX-XX Adam Domurad
>
> Fix PR1251: AppContext has wrong context classloader
> * netx/net/sourceforge/jnlp/Launcher.java:
> Remove unused context flag. Make new AppContext capture not-yet-
> initialized JNLPClassLoader.
> * netx/net/sourceforge/jnlp/NetxPanel.java:
> Move PluginBridge initialization into constructor.
> Make new AppContext capture not-yet-initialized JNLPClassLoader.
> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java:
> Add initialization flag. Move part of constructor into initialize
> method. Modify getInstance to allow temporarily bypassing
> initialization.
> * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
> (createAppContext): New, creates an AppContext that captures the given
> (not necessarily yet valid)
>
> -Adam
The reproducer have to go in with your new patch.
It should go both to 1.4 and to head (with proper known to fail).
But needs fixing - missing @TestInBrowser annotation is quite crucial :)
Without patch, all three failed (but thebrowser test because of unset browser)
with patch (after fixing of annotation)
Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext
FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest) stdout should contains 'main-thread: thread context classloader == JNLPClassLoader', but did not
- This test is known to fail
Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext - google-chrome
Should the jnlp fial? ( i guess yes as it is mark as known), but have faile dto early:
/*
Connecting /home/jvanek/icedtea-web-image/bin/javaws http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp
Fri Apr 05 18:10:40 CEST 2013
net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680)
net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589)
net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550)
AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106)
net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
org.junit.runners.ParentRunner.run(ParentRunner.java:236)
org.junit.runners.Suite.runChild(Suite.java:128)
org.junit.runners.Suite.runChild(Suite.java:24)
org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
org.junit.runners.ParentRunner.run(ParentRunner.java:236)
org.junit.runner.JUnitCore.run(JUnitCore.java:157)
org.junit.runner.JUnitCore.run(JUnitCore.java:136)
org.junit.runner.JUnitCore.run(JUnitCore.java:117)
CommandLine.runMain(CommandLine.java:49)
CommandLine.runMainAndExit(CommandLine.java:28)
CommandLine.main(CommandLine.java:24)
and now the important one: */
Attempted to download http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp, but failed to connect!
netx: Read Error: Could not read or parse the JNLP file. (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp)
reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader*
-rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10 AppContextHasJNLPClassLoaderForJNLPApplet.jnlp
-rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10 AppContextHasJNLPClassLoader.html
-rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08 AppContextHasJNLPClassLoader.jar
-rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10 AppContextHasJNLPClassLoader.jnlp
Wrong name perhaps?
J.
Anyway why was the review of initial patch[1] abandoned?
[1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader - in january 2013
From adomurad at redhat.com Fri Apr 5 09:49:33 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Fri, 05 Apr 2013 12:49:33 -0400
Subject: [rfc][icedtea-web] Strip parameters from document-base
In-Reply-To: <515EEE86.3000703@redhat.com>
References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com>
<515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com>
Message-ID: <515F009D.2080108@redhat.com>
On 04/05/2013 11:32 AM, Jiri Vanek wrote:
> On 04/03/2013 04:09 PM, Adam Domurad wrote:
>> On 03/28/2013 07:53 AM, Jiri Vanek wrote:
>> > On 03/27/2013 09:20 PM, Adam Domurad wrote:
>> >> It appears having parameters in the URL for the stored document-base
>> >> can cause problems with some
>> >> applets, namely the Oracle LMS applet.
>> >>
>> >> A small bit of refactoring is needed to move the URL stripping code:
>> >>
>> >> Refactoring ChangeLog:
>> >> 2013-03-26 Adam Domurad
>> >>
>> >> *
>> >>
>> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java
>> >>
>> >> (normalizeUrlAndStripParams): Moved.
>> >> * netx/net/sourceforge/jnlp/util/UrlUtils.java
>> >> (normalizeUrlAndStripParams): New, moved from
>> >> UnsignedAppletTrustConfirmation.
>> >> *
>> >>
>> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java
>> >>
>> >>
>> >> (testNormalizeUrlAndStripParams): Moved.
>> >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java:
>> >> New, has (testNormalizeUrlAndStripParams) from
>> >> UnsignedAppletTrustConfirmationTest.
>> >>
>> >>
>> >> And the fix itself:
>> >> 2013-03-26 Adam Domurad
>> >>
>> >> * netx/net/sourceforge/jnlp/NetxPanel.java
>> >> (NetxPanel): Ensure documentURL has stripped parameters
>> >>
>> >> Happy hacking,
>> >> -Adam
>> >
>> > The refactoring is ok. But to use completely stripped codeabse in
>> base
>> > codebase sounds to me as quite big change. As far as i looked, I was
>> > not able to judge all the impact and would rather stay with more
>> > conservative change or with very deep testing of this change on your
>> > side.
>>
>> Actually, stripping in the code-base was always done. The bug was that
>> URL's such as:
>>
>> http://example.com/?test/
>>
>> Were not being stripped properly, because the last part looked like a
>> directory.
>> However after further testing it looks like Oracle does not strip the
>> document-base. It was a bit ugly but I have managed to ensure that our
>> documentbase & codebase are always the same as Oracle's.
>>
>> There is some refactoring attached that moves normalizeUrl from
>> ResourceTracker to UrlUtils, as well as adding an option whether to
>> encode file:// based URL's or not. For compatibility purposes, we must
>> encode URL's in the code-base & document-base, even if local. This is a
>> good idea for matching purposes too.
>>
>> However, for actually accessing these URL's, the file:// based URL's
>> should not be encoded.
>>
>> add-url-utils.patch ChangeLog:
>> 2013-04-02 Adam Domurad
>>
>> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no
>> longer used constants. Remove (normalizeUrl). Update calls.
>> * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports.
>> Update calls.
>> *
>> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java:
>>
>> Ensure file://-protocol URLs are encoded.
>> * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl),
>> and related utility methods. Allow for optionally encoding file://
>> URLs.
>>
> Thanx for deep checks!
>
>> There is some non-ideal code in the fix itself, because first we pass a
>> stripped document-base, and then restore it to its original form. I
>> blame this on the rigidity of inheriting from AppletViewerPanel, but I
>> did not want to remove this inheritance in this patch.
>>
>> properly-strip-codebase.patch:
>> 2013-04-02 Adam Domurad
>>
>> Ensure code-base is stripped of parameters that look like
>> directories.
>> * netx/net/sourceforge/jnlp/NetxPanel.java
>> (NetxPanel): Ensure code-base is created from stripped
>> document-base.
>> Don't strip document-base itself.
>> (runLoader): Ensure URL used for resource loaded is not
>> encoded.
>>
>> The biggest change I think is the fact that the document-base &
>> code-base are now encoded, otherwise code-bases were (almost) always
>> stripped already. The code-base is decoded for resource-loading
>> purposes, as it was before.
>>
>> It looks fine from my testing (so far).
>
>
> Ok, I thnk this look ok even for upcoming release. Anyway - before
> push please add unittests for all new static methods. and also enhance
> already existing test in UrlUtilsTest for new corner cases
> (file/http/ftp x , true/false...) .
I think the only corner case here is file:// + true/false. Included
additional tests.
>
> + /* Decode a percent-encoded URL. Catch checked exceptions and
> log. */
> + public static URL decodeUrlQuietly(URL url) {
> + try {
> + return new URL(URLDecoder.decode(url.toString(), UTF8));
> + } catch (IOException e) {
> + return url;
> + }
> + }
> +
>
> Where is the log? if it is adding of ex.printStacktrace then ok
> without further review.
Good catch, I'll add this before pushing.
>
> J.
Unit tests attached.
ChangeLog:
2013-XX-XX Adam Domurad
* tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java:
Added tests for decodeUrlQuietly, normalizeUrl, normalizeUrlQuietly.
-Adam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: url-utils-unit-tests.patch
Type: text/x-patch
Size: 2345 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/67d9953c/url-utils-unit-tests.patch
From jvanek at redhat.com Fri Apr 5 10:14:18 2013
From: jvanek at redhat.com (Jiri Vanek)
Date: Fri, 05 Apr 2013 19:14:18 +0200
Subject: [rfc][icedtea-web] Strip parameters from document-base
In-Reply-To: <515F009D.2080108@redhat.com>
References: <51535492.2050100@redhat.com> <51542F3F.6060409@redhat.com>
<515C3805.1090802@redhat.com> <515EEE86.3000703@redhat.com>
<515F009D.2080108@redhat.com>
Message-ID: <515F066A.7060005@redhat.com>
On 04/05/2013 06:49 PM, Adam Domurad wrote:
> On 04/05/2013 11:32 AM, Jiri Vanek wrote:
>> On 04/03/2013 04:09 PM, Adam Domurad wrote:
>>> On 03/28/2013 07:53 AM, Jiri Vanek wrote:
>>> > On 03/27/2013 09:20 PM, Adam Domurad wrote:
>>> >> It appears having parameters in the URL for the stored document-base
>>> >> can cause problems with some
>>> >> applets, namely the Oracle LMS applet.
>>> >>
>>> >> A small bit of refactoring is needed to move the URL stripping code:
>>> >>
>>> >> Refactoring ChangeLog:
>>> >> 2013-03-26 Adam Domurad
>>> >>
>>> >> *
>>> >> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java
>>> >>
>>> >> (normalizeUrlAndStripParams): Moved.
>>> >> * netx/net/sourceforge/jnlp/util/UrlUtils.java
>>> >> (normalizeUrlAndStripParams): New, moved from
>>> >> UnsignedAppletTrustConfirmation.
>>> >> *
>>> >> tests/netx/unit/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmationTest.java
>>> >>
>>> >>
>>> >> (testNormalizeUrlAndStripParams): Moved.
>>> >> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java:
>>> >> New, has (testNormalizeUrlAndStripParams) from
>>> >> UnsignedAppletTrustConfirmationTest.
>>> >>
>>> >>
>>> >> And the fix itself:
>>> >> 2013-03-26 Adam Domurad
>>> >>
>>> >> * netx/net/sourceforge/jnlp/NetxPanel.java
>>> >> (NetxPanel): Ensure documentURL has stripped parameters
>>> >>
>>> >> Happy hacking,
>>> >> -Adam
>>> >
>>> > The refactoring is ok. But to use completely stripped codeabse in base
>>> > codebase sounds to me as quite big change. As far as i looked, I was
>>> > not able to judge all the impact and would rather stay with more
>>> > conservative change or with very deep testing of this change on your
>>> > side.
>>>
>>> Actually, stripping in the code-base was always done. The bug was that
>>> URL's such as:
>>>
>>> http://example.com/?test/
>>>
>>> Were not being stripped properly, because the last part looked like a
>>> directory.
>>> However after further testing it looks like Oracle does not strip the
>>> document-base. It was a bit ugly but I have managed to ensure that our
>>> documentbase & codebase are always the same as Oracle's.
>>>
>>> There is some refactoring attached that moves normalizeUrl from
>>> ResourceTracker to UrlUtils, as well as adding an option whether to
>>> encode file:// based URL's or not. For compatibility purposes, we must
>>> encode URL's in the code-base & document-base, even if local. This is a
>>> good idea for matching purposes too.
>>>
>>> However, for actually accessing these URL's, the file:// based URL's
>>> should not be encoded.
>>>
>>> add-url-utils.patch ChangeLog:
>>> 2013-04-02 Adam Domurad
>>>
>>> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java: Remove no
>>> longer used constants. Remove (normalizeUrl). Update calls.
>>> * netx/net/sourceforge/jnlp/cache/CacheUtil.java: Expand imports.
>>> Update calls.
>>> *
>>> netx/net/sourceforge/jnlp/security/appletextendedsecurity/UnsignedAppletTrustConfirmation.java:
>>> Ensure file://-protocol URLs are encoded.
>>> * netx/net/sourceforge/jnlp/util/UrlUtils.java: Add (normalizeUrl),
>>> and related utility methods. Allow for optionally encoding file://
>>> URLs.
>>>
>> Thanx for deep checks!
>>
>>> There is some non-ideal code in the fix itself, because first we pass a
>>> stripped document-base, and then restore it to its original form. I
>>> blame this on the rigidity of inheriting from AppletViewerPanel, but I
>>> did not want to remove this inheritance in this patch.
>>>
>>> properly-strip-codebase.patch:
>>> 2013-04-02 Adam Domurad
>>>
>>> Ensure code-base is stripped of parameters that look like
>>> directories.
>>> * netx/net/sourceforge/jnlp/NetxPanel.java
>>> (NetxPanel): Ensure code-base is created from stripped
>>> document-base.
>>> Don't strip document-base itself.
>>> (runLoader): Ensure URL used for resource loaded is not
>>> encoded.
>>>
>>> The biggest change I think is the fact that the document-base &
>>> code-base are now encoded, otherwise code-bases were (almost) always
>>> stripped already. The code-base is decoded for resource-loading
>>> purposes, as it was before.
>>>
>>> It looks fine from my testing (so far).
>>
>>
>> Ok, I thnk this look ok even for upcoming release. Anyway - before push please add unittests for all new static methods. and also enhance already existing test in UrlUtilsTest for new corner cases (file/http/ftp x , true/false...) .
>
> I think the only corner case here is file:// + true/false. Included additional tests.
>
>>
>> + /* Decode a percent-encoded URL. Catch checked exceptions and log. */
>> + public static URL decodeUrlQuietly(URL url) {
>> + try {
>> + return new URL(URLDecoder.decode(url.toString(), UTF8));
>> + } catch (IOException e) {
>> + return url;
>> + }
>> + }
>> +
>>
>> Where is the log? if it is adding of ex.printStacktrace then ok without further review.
>
> Good catch, I'll add this before pushing.
>
>>
>> J.
>
> Unit tests attached.
> ChangeLog:
> 2013-XX-XX Adam Domurad
>
> * tests/netx/unit/net/sourceforge/jnlp/util/UrlUtilsTest.java:
> Added tests for decodeUrlQuietly, normalizeUrl, normalizeUrlQuietly.
>
>
> -Adam
>
At least something ;) Thank you.
From adomurad at redhat.com Fri Apr 5 11:08:21 2013
From: adomurad at redhat.com (Adam Domurad)
Date: Fri, 05 Apr 2013 14:08:21 -0400
Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context
classloader
In-Reply-To: <515EF947.8090104@redhat.com>
References: <50F5898A.40108@redhat.com> <515EF947.8090104@redhat.com>
Message-ID: <515F1315.7080805@redhat.com>
On 04/05/2013 12:18 PM, Jiri Vanek wrote:
> On 01/15/2013 05:53 PM, Adam Domurad wrote:
>> This fixes one of the (numerous) issues in ADOMII, and fixes
>> SweetHome3D furniture dragging.
>>
>> I'll preface by saying, I'm not particularly fond of the changes in
>> this patch, but they have to be done to fix JNLP applications that
>> load resources on the Swing thread, like eg SweetHome3D.
>>
>> The patch adds a flag to JNLPClassLoader that specifies whether it
>> has been initialized. The default for getInstance remains the same,
>> it grabs an initialized JNLPClassLoader. However an alternate
>> getInstance was added to be able to grab JNLPClassLoader that hasn't
>> been fully initialized.
>>
>> The problem with initialization:
>> - To create AppContext we need JNLPClassLoader object constructed
>> - To construct JNLPClassLoader we must initialize it
>> - Initializing JNLPClassLoader implies downloading all resources, and
>> updating Swing components
>>
>> However, we cannot update swing components before we create our
>> AppContext, or the result will be a mess (eg unclickable popups).
>> In essence, it's a bootstrapping problem. So the patch makes it
>> possible to get a constructed JNLPClassLoader, which is initialized
>> in a separate step.
>>
>> What else was tried ?
>> The only other option is to set the context classloader to some other
>> classloader. A proxy classloader can be created that initially points
>> to the system classloader, but can be set to JNLPClassLoader after it
>> is created. Determined too much of a hack, and getParent cannot be
>> properly proxied.
>>
>> Basically with this patch, the life-time of the context classloaders
>> for each thread is:
>> 1. By default system classloader is context classloader.
>> 2. Create new AppContext, capture JNLPClassLoader that isn't yet
>> valid. Ensure we keep using system classloader as context classloader
>> for all threads.
>> 3. Initialize JNLPClassLoader. Before start of applet, ensure all
>> threads context classloaders are set to (now initialized)
>> JNLPClassLoader.
>>
>> Recommendations welcome -- it was a lot of deliberation before I
>> decided to take this route. If someone has a simpler/cleaner solution
>> than by all means suggest it!
>>
>> Reproducer changelog:
>> 2013-XX-XX Adam Domurad
>>
>> *
>> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html:
>> Test AppContext context classloader from HTML applet
>> *
>> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp:
>> Test AppContext context classloader from JNLP application
>> *
>> tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp:
>> Test AppContext context classloader from JNLP applet
>> *
>> tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java:
>> Print out context classloader for thread & AppContext, for
>> current thread & Swing thread.
>> *
>> tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java:
>> Test runner for AppContextHasJNLPClassLoader
>>
>> REPRODUCER NOTES:
>> This exposes an additional bug in JNLP applets. start/init
>> incorrectly runs on the Swing thread, and invokeAndWait hangs
>> forever. I'm not sure how this wasn't caught, but the JNLP applet
>> reproducer is broken pending a separate bug fix.
>>
>> Fixes changelog:
>> 2013-XX-XX Adam Domurad
>>
>> Fix PR1251: AppContext has wrong context classloader
>> * netx/net/sourceforge/jnlp/Launcher.java:
>> Remove unused context flag. Make new AppContext capture not-yet-
>> initialized JNLPClassLoader.
>> * netx/net/sourceforge/jnlp/NetxPanel.java:
>> Move PluginBridge initialization into constructor.
>> Make new AppContext capture not-yet-initialized JNLPClassLoader.
>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java:
>> Add initialization flag. Move part of constructor into initialize
>> method. Modify getInstance to allow temporarily bypassing
>> initialization.
>> * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java
>> (createAppContext): New, creates an AppContext that captures the given
>> (not necessarily yet valid)
>>
>> -Adam
>
>
> The reproducer have to go in with your new patch.
> It should go both to 1.4 and to head (with proper known to fail).
> But needs fixing - missing @TestInBrowser annotation is quite crucial :)
>
> Without patch, all three failed (but thebrowser test because of unset
> browser)
>
> with patch (after fixing of annotation)
> Passed: AppContextHasJNLPClassLoaderTest.testJNLPApplicationAppContext
> FAILED: testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest)
> stdout should contains 'main-thread: thread context classloader ==
> JNLPClassLoader', but did not
> - This test is known to fail
Fixed
> Passed: AppContextHasJNLPClassLoaderTest.testAppletAppContext -
> google-chrome
>
>
> Should the jnlp fial? ( i guess yes as it is mark as known), but have
> faile dto early:
See http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 for why
it is known-to-fail
>
> /*
> Connecting /home/jvanek/icedtea-web-image/bin/javaws
> http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp
>
> Fri Apr 05 18:10:40 CEST 2013
>
> net.sourceforge.jnlp.ServerAccess.executeProcessUponURL(ServerAccess.java:680)
>
> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:589)
> net.sourceforge.jnlp.ServerAccess.executeJavaws(ServerAccess.java:550)
> AppContextHasJNLPClassLoaderTest.testJNLPAppletAppContext(AppContextHasJNLPClassLoaderTest.java:86)
>
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> java.lang.reflect.Method.invoke(Method.java:616)
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>
> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runLeaf(BrowserTestRunner.java:162)
>
> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChildX(BrowserTestRunner.java:137)
>
> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:106)
>
> net.sourceforge.jnlp.browsertesting.BrowserTestRunner.runChild(BrowserTestRunner.java:58)
>
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> org.junit.runners.Suite.runChild(Suite.java:128)
> org.junit.runners.Suite.runChild(Suite.java:24)
> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> org.junit.runner.JUnitCore.run(JUnitCore.java:136)
> org.junit.runner.JUnitCore.run(JUnitCore.java:117)
> CommandLine.runMain(CommandLine.java:49)
> CommandLine.runMainAndExit(CommandLine.java:28)
> CommandLine.main(CommandLine.java:24)
>
> and now the important one: */
>
> Attempted to download
> http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp,
> but failed to connect!
> netx: Read Error: Could not read or parse the JNLP file.
> (http://localhost:56174/AppContextHasJNLPClassLoaderJNLPApplet.jnlp)
>
> reproducers_test_server_deploydir]$ ll AppContextHasJNLPClassLoader*
> -rw-rw-r-- 1 jvanek jvanek 2457 Apr 5 18:10
> AppContextHasJNLPClassLoaderForJNLPApplet.jnlp
> -rw-rw-r-- 1 jvanek jvanek 1851 Apr 5 18:10
> AppContextHasJNLPClassLoader.html
> -rw-rw-r-- 1 jvanek jvanek 3238 Apr 5 18:08
> AppContextHasJNLPClassLoader.jar
> -rw-rw-r-- 1 jvanek jvanek 2355 Apr 5 18:10
> AppContextHasJNLPClassLoader.jnlp
>
> Wrong name perhaps?
Fixed
>
> J.
>
>
> Anyway why was the review of initial patch[1] abandoned?
> [1] [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context
> classloader - in january 2013
I spent a while on it struggling with the correct design before I
started working on other things. I still intend to get back to it, but
the initial patch & approach I worked on was rejected. I still need to
come up with a good way to approach this; it isn't trivial.
Happy hacking,
-Adam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: appcontext-reproducer2.patch
Type: text/x-patch
Size: 16570 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130405/cc2f550f/appcontext-reproducer2.patch
From andrew at icedtea.classpath.org Sun Apr 7 17:26:00 2013
From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:26:00 +0000
Subject: /hg/release/icedtea7-2.1: PR1363: Fedora 19 / rawhide FTBFS SIGILL
Message-ID:
changeset 9ee6ad4f47a9 in /hg/release/icedtea7-2.1
details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=9ee6ad4f47a9
author: Andrew John Hughes
date: Mon Apr 08 01:25:42 2013 +0100
PR1363: Fedora 19 / rawhide FTBFS SIGILL
2013-04-08 Andrew John Hughes
* Makefile.am:
(HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head,
bringing in PR1363 ARM fix.
(HOTSPOT_CHANGESET): Likewise.
* NEWS: Updated.
diffstat:
ChangeLog | 8 ++++++++
Makefile.am | 4 ++--
NEWS | 3 +++
3 files changed, 13 insertions(+), 2 deletions(-)
diffs (49 lines):
diff -r e0baa69f348f -r 9ee6ad4f47a9 ChangeLog
--- a/ChangeLog Wed Mar 13 09:18:57 2013 +0000
+++ b/ChangeLog Mon Apr 08 01:25:42 2013 +0100
@@ -1,3 +1,11 @@
+2013-04-08 Andrew John Hughes
+
+ * Makefile.am:
+ (HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head,
+ bringing in PR1363 ARM fix.
+ (HOTSPOT_CHANGESET): Likewise.
+ * NEWS: Updated.
+
2013-03-13 Andrew John Hughes
* patches/8002344-krb5loginmodule.patch,
diff -r e0baa69f348f -r 9ee6ad4f47a9 Makefile.am
--- a/Makefile.am Wed Mar 13 09:18:57 2013 +0000
+++ b/Makefile.am Mon Apr 08 01:25:42 2013 +0100
@@ -4,7 +4,7 @@
JDK_UPDATE_VERSION = 03
COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION)
-HOTSPOT_CHANGESET = f6f4d5e6c1dd
+HOTSPOT_CHANGESET = 4e4dd75d54e7
CORBA_CHANGESET = 313f1ee32118
JAXP_CHANGESET = 691f82a0de0b
JAXWS_CHANGESET = a48ebab198a4
@@ -12,7 +12,7 @@
LANGTOOLS_CHANGESET = c63c8a2164e4
OPENJDK_CHANGESET = c1c649636704
-HOTSPOT_SHA256SUM = 52029034eb2140c06f567aad85f23e7a7d45977b6df441bf7f6ebe30767f9964
+HOTSPOT_SHA256SUM = 46b4bb240e3ebea1e151c57aa9afb0cb4706f4fc467b651a6c5090101352853d
CORBA_SHA256SUM = 9326c1fc0dedcbc2af386cb73b80727416e24664ccbf766221450f6e2138e952
JAXP_SHA256SUM = 17a242852010f535c11f874aae07a6d60f7007541fe1586666638cc6d58f8f1f
JAXWS_SHA256SUM = 57dab4837468b775ff55e21352c7920f3f35c1e6ceb130154fb89eeb163e176f
diff -r e0baa69f348f -r 9ee6ad4f47a9 NEWS
--- a/NEWS Wed Mar 13 09:18:57 2013 +0000
+++ b/NEWS Mon Apr 08 01:25:42 2013 +0100
@@ -12,6 +12,9 @@
New in release 2.1.8 (2013-04-XX):
+* Bug fixes
+ - PR1363: Fedora 19 / rawhide FTBFS SIGILL
+
New in release 2.1.7 (2013-03-11):
* Security fixes
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:26:12 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:26:12 +0000
Subject: [Bug 1363] [IcedTea7] Fedora 19 / rawhide FTBFS SIGILL
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1363
--- Comment #1 from hg commits ---
details:
http://icedtea.classpath.org//hg/release/icedtea7-2.1?cmd=changeset;node=9ee6ad4f47a9
author: Andrew John Hughes
date: Mon Apr 08 01:25:42 2013 +0100
PR1363: Fedora 19 / rawhide FTBFS SIGILL
2013-04-08 Andrew John Hughes
* Makefile.am:
(HOTSPOT_CHANGESET): Update to IcedTea7 2.1 forest head,
bringing in PR1363 ARM fix.
(HOTSPOT_CHANGESET): Likewise.
* NEWS: Updated.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/f275c61d/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:30:28 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:30:28 +0000
Subject: [Bug 1386] Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #849|application/octet-stream |text/plain
mime type| |
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/6459d008/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:31:56 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:31:56 +0000
Subject: [Bug 1386] Ameritrade Think or Swim crashes in Java VM: OpenJDK 64-Bit
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1386
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Version|unspecified |6-1.12.4
--- Comment #1 from Andrew John Hughes ---
Please give details on how to reproduce this.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/efac64e5/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:32:37 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:32:37 +0000
Subject: [Bug 1384] Crash with importing project in eclipse on OpenSuSE x64
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #847|text/x-log |text/plain
mime type| |
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/a0290caa/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:33:32 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:33:32 +0000
Subject: [Bug 1384] Crash with importing project in eclipse on OpenSuSE x64
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1384
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #1 from Andrew John Hughes ---
This is a crash in native code. You should report it to Eclipse.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/a24cd723/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:34:18 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:34:18 +0000
Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |gnu.andrew at redhat.com
--- Comment #1 from Andrew John Hughes ---
Also, this doesn't appear to be IcedTea. Where did you obtain this JDK?
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/c4f2d194/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:35:05 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:35:05 +0000
Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #848|text/x-log |text/plain
mime type| |
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/1f9b618d/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:35:51 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:35:51 +0000
Subject: [Bug 1383] A fatal error has been detected by the Java Runtime
Environment
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1383
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Hardware|64-bit |x86_64
Resolution|--- |INVALID
Severity|critical |normal
--- Comment #3 from Andrew John Hughes ---
This is a failure in native code and is not running on IcedTea.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/02b560d5/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:37:09 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:37:09 +0000
Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #2 from Andrew John Hughes ---
Crash in native code. Please file with Eclipse.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/6e9a5fcb/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:38:05 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:38:05 +0000
Subject: [Bug 1385] Open JDK error while running eclipse on fedora 17
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1385
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|JamVM |IcedTea
Assignee|xerxes at zafena.se |gnu.andrew at redhat.com
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/bde168a9/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:38:50 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:38:50 +0000
Subject: [Bug 1332] Error running Netbeans 7.3 on Debian 6.0.7
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1332
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |gnu.andrew at redhat.com
Severity|critical |normal
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/7b5465bd/attachment.html
From bugzilla-daemon at icedtea.classpath.org Sun Apr 7 17:40:32 2013
From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 00:40:32 +0000
Subject: [Bug 1332] Error running Netbeans 7.3 on Debian 6.0.7
In-Reply-To:
References:
Message-ID:
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1332
Andrew John Hughes changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Component|JamVM |IcedTea
Version|unspecified |6-1.8.13
Resolution|--- |WONTFIX
Assignee|xerxes at zafena.se |gnu.andrew at redhat.com
--- Comment #1 from Andrew John Hughes ---
This version is no longer supported. Please reopen, with instructions on how
to reproduce, if you can do so on a supported version.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130408/1d95d87f/attachment.html
From ptisnovs at icedtea.classpath.org Mon Apr 8 01:13:10 2013
From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org)
Date: Mon, 08 Apr 2013 08:13:10 +0000
Subject: /hg/rhino-tests: Updated four tests for (Open)JDK8 API: getConst...
Message-ID:
changeset b3477ca1f6b3 in /hg/rhino-tests
details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=b3477ca1f6b3
author: Pavel Tisnovsky
date: Mon Apr 08 10:16:25 2013 +0200
Updated four tests for (Open)JDK8 API: getConstructor,
getDeclaredConstructor, getConstructors and getDeclaredConstructors.
diffstat:
ChangeLog | 6 +
src/org/RhinoTests/AbstractScriptEngineClassTest.java | 66 +++++++++++++++++-
2 files changed, 68 insertions(+), 4 deletions(-)
diffs (126 lines):
diff -r 93cd198056e3 -r b3477ca1f6b3 ChangeLog
--- a/ChangeLog Fri Apr 05 09:38:32 2013 +0200
+++ b/ChangeLog Mon Apr 08 10:16:25 2013 +0200
@@ -1,3 +1,9 @@
+2013-04-08 Pavel Tisnovsky
+
+ * src/org/RhinoTests/AbstractScriptEngineClassTest.java:
+ Updated four tests for (Open)JDK8 API: getConstructor,
+ getDeclaredConstructor, getConstructors and getDeclaredConstructors.
+
2013-04-05 Pavel Tisnovsky
* src/org/RhinoTests/ScriptEngineManagerClassTest.java:
diff -r 93cd198056e3 -r b3477ca1f6b3 src/org/RhinoTests/AbstractScriptEngineClassTest.java
--- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Apr 05 09:38:32 2013 +0200
+++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Apr 08 10:16:25 2013 +0200
@@ -288,6 +288,7 @@
Map testedConstructors = null;
Map testedConstructors_jdk6 = new HashMap();
Map testedConstructors_jdk7 = new HashMap();
+ Map testedConstructors_jdk8 = new HashMap