From andrew at icedtea.classpath.org Fri Nov 1 02:52:45 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 01 Nov 2013 09:52:45 +0000 Subject: /hg/icedtea6: Add S390 cast fixes from 2.3 forest. Message-ID: changeset 0eed175f8b35 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0eed175f8b35 author: Andrew John Hughes date: Fri Nov 01 09:52:25 2013 +0000 Add S390 cast fixes from 2.3 forest. 2013-10-31 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/s390_casts.patch: Backport from IcedTea 2.3 tree. diffstat: ChangeLog | 7 + Makefile.am | 3 +- patches/s390_casts.patch | 199 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 208 insertions(+), 1 deletions(-) diffs (230 lines): diff -r e98b0ef70b26 -r 0eed175f8b35 ChangeLog --- a/ChangeLog Tue Oct 29 14:24:52 2013 +0000 +++ b/ChangeLog Fri Nov 01 09:52:25 2013 +0000 @@ -1,3 +1,10 @@ +2013-10-31 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/s390_casts.patch: + Backport from IcedTea 2.3 tree. + 2013-10-29 Andrew John Hughes * patches/openjdk/8002070-remove_logger_stack_search_2.patch, diff -r e98b0ef70b26 -r 0eed175f8b35 Makefile.am --- a/Makefile.am Tue Oct 29 14:24:52 2013 +0000 +++ b/Makefile.am Fri Nov 01 09:52:25 2013 +0000 @@ -720,7 +720,8 @@ patches/arm/cc_compile-05.patch \ patches/arm/cc_compile-06.patch \ patches/hotspot/hs23/arm-hsdis.patch \ - patches/openjdk/7025066-embedded_build.patch + patches/openjdk/7025066-embedded_build.patch \ + patches/s390_casts.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r e98b0ef70b26 -r 0eed175f8b35 patches/s390_casts.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/s390_casts.patch Fri Nov 01 09:52:25 2013 +0000 @@ -0,0 +1,199 @@ +# HG changeset patch +# User andrew +# Date 1379545225 -3600 +# Thu Sep 19 00:00:25 2013 +0100 +# Node ID fa3171a9cec3405159e6e66f857b46b15e0548b0 +# Parent 92cff4cc37d78e116d2c87fb0fcfad7ccf7c38ef +Add casts to fix build on S390 + +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/compiler/methodLiveness.cpp +--- openjdk/hotspot/src/share/vm/compiler/methodLiveness.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/compiler/methodLiveness.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -572,15 +572,15 @@ + + + MethodLiveness::BasicBlock::BasicBlock(MethodLiveness *analyzer, int start, int limit) : +- _gen((size_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), ++ _gen((BitMap::bm_word_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), + analyzer->bit_map_size_bits()), +- _kill((size_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), ++ _kill((BitMap::bm_word_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), + analyzer->bit_map_size_bits()), +- _entry((size_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), ++ _entry((BitMap::bm_word_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), + analyzer->bit_map_size_bits()), +- _normal_exit((size_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), ++ _normal_exit((BitMap::bm_word_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), + analyzer->bit_map_size_bits()), +- _exception_exit((size_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), ++ _exception_exit((BitMap::bm_word_t*)analyzer->arena()->Amalloc(BytesPerWord * analyzer->bit_map_size_words()), + analyzer->bit_map_size_bits()), + _last_bci(-1) { + _analyzer = analyzer; +@@ -998,7 +998,7 @@ + } + + MethodLivenessResult MethodLiveness::BasicBlock::get_liveness_at(ciMethod* method, int bci) { +- MethodLivenessResult answer(NEW_RESOURCE_ARRAY(size_t, _analyzer->bit_map_size_words()), ++ MethodLivenessResult answer(NEW_RESOURCE_ARRAY(BitMap::bm_word_t, _analyzer->bit_map_size_words()), + _analyzer->bit_map_size_bits()); + answer.set_is_valid(); + +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -2676,7 +2676,7 @@ + if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { + size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); + n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; +- n_blks = MIN2(n_blks, CMSOldPLABMax); ++ n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax); + } + assert(n_blks > 0, "Error"); + _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -1680,7 +1680,7 @@ + + verify_region_sets_optional(); + +- size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes); ++ size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes); + ergo_verbose1(ErgoHeapSizing, + "attempt heap expansion", + ergo_format_reason("allocation request failed") +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -1087,7 +1087,7 @@ + // This can be done by either mutator threads together with the + // concurrent refinement threads or GC threads. + int HeapRegionRemSet::num_par_rem_sets() { +- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); ++ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads); + } + + HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -188,7 +188,7 @@ + const size_t num_overflow_elems = of_stack->size(); + const size_t space_available = queue->max_elems() - queue->size(); + const size_t num_take_elems = MIN3(space_available / 4, +- ParGCDesiredObjsFromOverflowList, ++ (size_t)ParGCDesiredObjsFromOverflowList, + num_overflow_elems); + // Transfer the most recent num_take_elems from the overflow + // stack to our work queue. +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp +--- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -65,7 +65,7 @@ + if (_virtual_space != NULL && _virtual_space->expand_by(bytes)) { + _region_start = covered_region.start(); + _region_size = covered_region.word_size(); +- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr(); ++ BitMap::bm_word_t* map = (BitMap::bm_word_t*)_virtual_space->reserved_low_addr(); + _beg_bits.set_map(map); + _beg_bits.set_size(bits / 2); + _end_bits.set_map(map + words / 2); +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/memory/collectorPolicy.cpp +--- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -357,7 +357,7 @@ + // generally small compared to the NewRatio calculation. + _min_gen0_size = NewSize; + desired_new_size = NewSize; +- max_new_size = MAX2(max_new_size, NewSize); ++ max_new_size = MAX2(max_new_size, (size_t)NewSize); + } else { + // For the case where NewSize is the default, use NewRatio + // to size the minimum and initial generation sizes. +@@ -365,10 +365,10 @@ + // NewRatio is overly large, the resulting sizes can be too + // small. + _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()), +- NewSize); ++ (size_t)NewSize); + desired_new_size = + MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()), +- NewSize); ++ (size_t)NewSize); + } + + assert(_min_gen0_size > 0, "Sanity check"); +@@ -423,14 +423,14 @@ + // Adjust gen0 down to accomodate OldSize + *gen0_size_ptr = heap_size - min_gen0_size; + *gen0_size_ptr = +- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()), + min_alignment()); + assert(*gen0_size_ptr > 0, "Min gen0 is too large"); + result = true; + } else { + *gen1_size_ptr = heap_size - *gen0_size_ptr; + *gen1_size_ptr = +- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()), + min_alignment()); + } + } +@@ -454,7 +454,7 @@ + // for setting the gen1 maximum. + _max_gen1_size = max_heap_byte_size() - _max_gen0_size; + _max_gen1_size = +- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()), + min_alignment()); + // If no explicit command line flag has been set for the + // gen1 size, use what is left for gen1. +@@ -468,11 +468,11 @@ + "gen0 has an unexpected minimum size"); + set_min_gen1_size(min_heap_byte_size() - min_gen0_size()); + set_min_gen1_size( +- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()), + min_alignment())); + set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size()); + set_initial_gen1_size( +- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()), + min_alignment())); + + } else { +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/oops/objArrayKlass.inline.hpp +--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp Thu Sep 19 00:00:25 2013 +0100 +@@ -46,7 +46,7 @@ + const size_t beg_index = size_t(index); + assert(beg_index < len || len == 0, "index too large"); + +- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); ++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); + const size_t end_index = beg_index + stride; + T* const base = (T*)a->base(); + T* const beg = base + beg_index; +@@ -80,7 +80,7 @@ + const size_t beg_index = size_t(index); + assert(beg_index < len || len == 0, "index too large"); + +- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); ++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); + const size_t end_index = beg_index + stride; + T* const base = (T*)a->base(); + T* const beg = base + beg_index; +diff -r 92cff4cc37d7 -r fa3171a9cec3 src/share/vm/runtime/arguments.cpp +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Tue Sep 17 12:04:11 2013 +0200 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Thu Sep 19 00:00:25 2013 +0100 +@@ -1207,7 +1207,7 @@ + // so it's NewRatio x of NewSize. + if (FLAG_IS_DEFAULT(OldSize)) { + if (max_heap > NewSize) { +- FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize)); ++ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap - NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); From jvanek at icedtea.classpath.org Fri Nov 1 03:08:23 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 01 Nov 2013 10:08:23 +0000 Subject: /hg/icedtea-web: tests/netx/unit/net/sourceforge/jnlp/runtime/JN... Message-ID: changeset e6ba4b4dea45 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e6ba4b4dea45 author: Jiri Vanek date: Fri Nov 01 11:08:06 2013 +0100 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: added tests for custom attributes (getCustomAtributes), (getCustomAtributesEmpty) and test to ensure order during searching for attributes in manifests (checkOrderWhenReadingAttributes). tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java: can now handle multiple source jars, and set main jar (new constructors), (jarFiles) and (jarDescs) redeclared to arrays. diffstat: ChangeLog | 9 + tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java | 117 +++++++++- tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java | 62 ++++- 3 files changed, 172 insertions(+), 16 deletions(-) diffs (253 lines): diff -r 14a8ee171687 -r e6ba4b4dea45 ChangeLog --- a/ChangeLog Wed Oct 30 10:36:03 2013 +0100 +++ b/ChangeLog Fri Nov 01 11:08:06 2013 +0100 @@ -1,3 +1,12 @@ +2013-11-01 Jiri Vanek + + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: + added tests for custom attributes (getCustomAtributes), (getCustomAtributesEmpty) and test to ensure order during searching for + attributes in manifests (checkOrderWhenReadingAttributes). + * tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java: + can now handle multiple source jars, and set main jar (new constructors), + (jarFiles) and (jarDescs) redeclared to arrays. + 2013-10-30 Jiri Vanek * netx/net/sourceforge/jnlp/JARDesc.java: made immutable diff -r 14a8ee171687 -r e6ba4b4dea45 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Wed Oct 30 10:36:03 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Fri Nov 01 11:08:06 2013 +0100 @@ -92,7 +92,7 @@ assertNoFileLeak( new Runnable () { @Override public void run() { - assertFalse(classLoader.isInvalidJar(jnlpFile.jarDesc)); + assertFalse(classLoader.isInvalidJar(jnlpFile.getJarDesc())); } }); } @@ -113,11 +113,17 @@ assertNoFileLeak(new Runnable() { @Override public void run() { - assertEquals("DummyClass", classLoader.getMainClassName(jnlpFile.jarLocation)); + assertEquals("DummyClass", classLoader.getMainClassName(jnlpFile.getJarLocation())); } }); } + } + + @Test + public void getMainClassNameTestEmpty() throws Exception { /* Test with-out any main-class specified */ { + File tempDirectory = FileTestUtils.createTempDirectory(); + File jarLocation = new File(tempDirectory, "test.jar"); FileTestUtils.createJarWithContents(jarLocation /* No contents */); final DummyJNLPFileWithJar jnlpFile = new DummyJNLPFileWithJar(jarLocation); @@ -126,7 +132,7 @@ assertNoFileLeak(new Runnable() { @Override public void run() { - assertEquals(null, classLoader.getMainClassName(jnlpFile.jarLocation)); + assertEquals(null, classLoader.getMainClassName(jnlpFile.getJarLocation())); } }); } @@ -145,7 +151,7 @@ @Override public void run() { try { - classLoader.checkForMain(Arrays.asList(jnlpFile.jarDesc)); + classLoader.checkForMain(Arrays.asList(jnlpFile.getJarDesc())); } catch (LaunchException e) { fail(e.toString()); } @@ -153,4 +159,105 @@ }); assertFalse(classLoader.hasMainJar()); } -} \ No newline at end of file + + @Test + public void getCustomAtributes() throws Exception { + File tempDirectory = FileTestUtils.createTempDirectory(); + File jarLocation = new File(tempDirectory, "testX.jar"); + + /* Test with attributes in manifest */ + Manifest manifest = new Manifest(); + manifest.getMainAttributes().put(Attributes.Name.MAIN_CLASS, "DummyClass"); + manifest.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_TITLE, "it"); + manifest.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_VENDOR, "rh"); + FileTestUtils.createJarWithContents(jarLocation, manifest); + + final DummyJNLPFileWithJar jnlpFile = new DummyJNLPFileWithJar(jarLocation); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak(new Runnable() { + @Override + public void run() { + assertEquals("rh", classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.IMPLEMENTATION_VENDOR)); + assertEquals("DummyClass", classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.MAIN_CLASS)); + assertEquals("it", classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.IMPLEMENTATION_TITLE)); + } + }); + } + + @Test + public void getCustomAtributesEmpty() throws Exception { + File tempDirectory = FileTestUtils.createTempDirectory(); + File jarLocation = new File(tempDirectory, "testX.jar"); + + /* Test with-out any attribute specified specified */ + FileTestUtils.createJarWithContents(jarLocation /* No contents */); + + final DummyJNLPFileWithJar jnlpFile = new DummyJNLPFileWithJar(jarLocation); + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak(new Runnable() { + @Override + public void run() { + assertEquals(null, classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.IMPLEMENTATION_VENDOR)); + assertEquals(null, classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.MAIN_CLASS)); + assertEquals(null, classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.IMPLEMENTATION_TITLE)); + } + }); + } + + @Test + public void checkOrderWhenReadingAttributes() throws Exception { + File tempDirectory = FileTestUtils.createTempDirectory(); + File jarLocation1 = new File(tempDirectory, "test1.jar"); + File jarLocation2 = new File(tempDirectory, "test2.jar"); + File jarLocation3 = new File(tempDirectory, "test3.jar"); + File jarLocation4 = new File(tempDirectory, "test4.jar"); + File jarLocation5 = new File(tempDirectory, "test5.jar"); + + /* Test with various attributes in manifest!s! */ + Manifest manifest1 = new Manifest(); + manifest1.getMainAttributes().put(Attributes.Name.MAIN_CLASS, "DummyClass1"); //two times, but one in main jar, see DummyJNLPFileWithJar constructor with int + + Manifest manifest2 = new Manifest(); + manifest2.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_VENDOR, "rh1"); //two times, both in not main jar, see DummyJNLPFileWithJar constructor with int + + Manifest manifest3 = new Manifest(); + manifest3.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_TITLE, "it"); //jsut once in not main jar, see DummyJNLPFileWithJar constructor with int + manifest3.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_VENDOR, "rh2"); + + Manifest manifest4 = new Manifest(); + manifest4.getMainAttributes().put(Attributes.Name.MAIN_CLASS, "DummyClass2"); //see jnlpFile.setMainJar(3); + manifest4.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_URL, "some url2"); //see DummyJNLPFileWithJar constructor with int + + //first jar + Manifest manifest5 = new Manifest(); + manifest5.getMainAttributes().put(Attributes.Name.IMPLEMENTATION_URL, "some url1"); //see DummyJNLPFileWithJar constructor with int + + + FileTestUtils.createJarWithContents(jarLocation1, manifest1); + FileTestUtils.createJarWithContents(jarLocation2, manifest2); + FileTestUtils.createJarWithContents(jarLocation3, manifest3); + FileTestUtils.createJarWithContents(jarLocation4, manifest4); + FileTestUtils.createJarWithContents(jarLocation5, manifest5); + + final DummyJNLPFileWithJar jnlpFile = new DummyJNLPFileWithJar(3, jarLocation5, jarLocation3, jarLocation4, jarLocation1, jarLocation2); //jar 1 should be main + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + + assertNoFileLeak(new Runnable() { + @Override + public void run() { + //defined twice + assertEquals(null, classLoader.checkForAttributeInJars(Arrays.asList(jnlpFile.getJarDescs()), Attributes.Name.IMPLEMENTATION_VENDOR)); + //defined twice, but one in main jar + assertEquals("DummyClass1", classLoader.checkForAttributeInJars(Arrays.asList(jnlpFile.getJarDescs()), Attributes.Name.MAIN_CLASS)); + //defined not in main jar + assertEquals("it", classLoader.checkForAttributeInJars(Arrays.asList(jnlpFile.getJarDescs()), Attributes.Name.IMPLEMENTATION_TITLE)); + //not deffined + assertEquals(null, classLoader.checkForAttributeInJars(Arrays.asList(jnlpFile.getJarDescs()), Attributes.Name.IMPLEMENTATION_VENDOR_ID)); + //deffined in first jar + assertEquals("some url1", classLoader.checkForAttributeInJars(Arrays.asList(jnlpFile.getJarDescs()), Attributes.Name.IMPLEMENTATION_URL)); + } + }); + } +} diff -r 14a8ee171687 -r e6ba4b4dea45 tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java --- a/tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java Wed Oct 30 10:36:03 2013 +0100 +++ b/tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java Fri Nov 01 11:08:06 2013 +0100 @@ -17,25 +17,65 @@ public class DummyJNLPFileWithJar extends JNLPFile { /* Create a JARDesc for the given URL location */ - static JARDesc makeJarDesc(URL jarLocation) { - return new JARDesc(jarLocation, new Version("1"), null, false,false, false,false); + static JARDesc makeJarDesc(URL jarLocation, boolean main) { + return new JARDesc(jarLocation, new Version("1"), null, false,main, false,false); } - public URL codeBase, jarLocation; - public JARDesc jarDesc; + private final URL codeBase; + private final JARDesc[] jarDescs; + private final File[] jarFiles; - public DummyJNLPFileWithJar(File jarFile) throws MalformedURLException { - codeBase = jarFile.getParentFile().toURI().toURL(); - jarLocation = jarFile.toURI().toURL(); - jarDesc = makeJarDesc(jarLocation); + public DummyJNLPFileWithJar(File... jarFiles) throws MalformedURLException { + this(-1, jarFiles); + } + public DummyJNLPFileWithJar(int main, File... jarFiles) throws MalformedURLException { + codeBase = jarFiles[0].getParentFile().toURI().toURL(); + this.jarFiles = jarFiles; + jarDescs = new JARDesc[jarFiles.length]; + + for (int i = 0; i < jarFiles.length; i++) { + jarDescs[i] = makeJarDesc(jarFiles[i].toURI().toURL(), i==main); + + } info = new ArrayList(); } + public URL getJarLocation() { + try { + return jarFiles[0].toURI().toURL(); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + } + + public URL getJarLocation(int i) { + try { + return jarFiles[i].toURI().toURL(); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } + } + + public JARDesc[] getJarDescs() { + return jarDescs; + } + + public JARDesc getJarDesc() { + return jarDescs[0]; + } + + public JARDesc getJarDesc(int i) { + return jarDescs[i]; + } + + @Override public ResourcesDesc getResources() { - ResourcesDesc resources = new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); - resources.addResource(jarDesc); - return resources; + ResourcesDesc localResources = new ResourcesDesc(null, new Locale[0], new String[0], new String[0]); + for (JARDesc j : jarDescs) { + localResources.addResource(j); + } + return localResources; } @Override public ResourcesDesc[] getResourcesDescs(final Locale locale, final String os, final String arch) { From jvanek at redhat.com Fri Nov 1 04:45:54 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 01 Nov 2013 12:45:54 +0100 Subject: [rfc][icedtea-web] synced headers between PLUGIN_ERROR, PLUGIN_DEBUG and java In-Reply-To: <20131031181052.GD1546@redhat.com> References: <52728C3C.2010302@redhat.com> <20131031181052.GD1546@redhat.com> Message-ID: <52739472.1050904@redhat.com> On 10/31/2013 07:10 PM, Omair Majid wrote: > Hi Jiri, > > * Jiri Vanek [2013-10-31 13:12]: >> diff -r 14a8ee171687 netx/net/sourceforge/jnlp/util/logging/OutputController.java >> --- a/netx/net/sourceforge/jnlp/util/logging/OutputController.java Wed Oct 30 10:36:03 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Thu Oct 31 17:57:00 2013 +0100 >> @@ -346,6 +346,7 @@ >> if (stack != null) { >> sb.append('[').append(getCallerClass(stack)).append(']'); >> } >> + sb.append(" NETX Thread# ").append(Integer.toHexString(((Object)Thread.currentThread()).hashCode())).append(", name ").append(Thread.currentThread().getName()); > > Some nits, here. > > You probably don't need to cast Thread.currentThread() to Object, > hashCode is defined on all types. I think I wont...I wont to be clear that number I'm showing is Object's hash -"pointer". Right now Thread do not override it, but can... > > The output of this will be NETX Thread# 0x, name . > Maybe it would be more readable as: > > NETX Thread 0x [] > If you lookto both files I patched, I'm trying to have both c++ and java headers same. In C part I'm mostly trying to keep what was there, as I do not fully understand pthread and gthread ..differences Afaik gthread, nor "pthread" do not have names.... As there was both pthread and gtheread shown in debug messages, (although I'm not sure if it is worthy), and for java thread I'm showing also two attributes, then I wonted to have similar naming: ITNPP Thread# %ld, gthread %p: NETX Thread# 0x, name . Although I like your suggestion for java part, it do not fit for C part. Right now I kept original stile, feel free to rise voice again :) > Please consider appropriate line-wrapping. Something like this is a > little easier to read: > > sb.append(" NETX Thread#") > .append(Integer.toHexString(((Object)Thread.currentThread()).hashCode())) > .append(", name ") > .append(Thread.currentThread.getName()); sure, fixed. > > I am far from an expert on C++, so take the next bit of advice with a > grain of salt. Still much better then me :) > >> +++ b/plugin/icedteanp/IcedTeaPluginUtils.h Thu Oct 31 17:57:00 2013 +0100 > >> +#define CREATE_HEADER(f) \ > > Please document f. Is it a FILE*, a char*, or a fd? > >> + do \ >> + { \ >> + char s[200]; \ >> + time_t t = time(NULL); \ >> + struct tm * p = localtime(&t); \ > > If you are expecting to have multiple threads run this code, please use > _r variants of function calls (localtime_r). These non-_r variants use > static data and are not thread safe. Can happen.. Thanx for hint.,fixed - I was not aware of _r variant :( Thank you for review, J. -------------- next part -------------- A non-text attachment was scrubbed... Name: moreSyncedHeaders2.patch Type: text/x-patch Size: 5331 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131101/7bc911b7/moreSyncedHeaders2-0001.patch From jvanek at redhat.com Fri Nov 1 07:39:32 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 01 Nov 2013 15:39:32 +0100 Subject: Feature ITW logging tasks implementation Message-ID: <5273BD24.2010101@redhat.com> Hi all, before to much code is written. I would like to ask you to opinions about suggested approaches: *Logging to file:* Right now, i'm implementing the logging of C part to file. Th implementation itelf is pretty simple. but from higher point, there are two crucial differences with several different approaches: - few notes notes - file logs are saved at {~/.config,$XDG_CONFIG_DIR}/icedtea-web/log without possibility to change this location... I think this is correct and I'm not going to change it (just going to higlight in ITW settings) - fielname is itw-numberOfMilissecondsSinceEpoch.log - Unless something against, I would like to change it to better name (date, time - sure - but in readable form) - java.stderr, java.stdout are no longer used logging to file(s) approaches: - C side a and java side are each logging into own file in same directory with as similar name as possible, distinguished via some suffix PLUGIN/NETX - most easy to implement - different logs for C part and Java side (can be both positive and negative) - to have the name really same, name must be passed to java part similarly as next approach - C and java sides are sharing the file and each is writing on its own - also easy to implement, and surprisingly, even most dummy approaches [1] [2] (flushes are important) have very good results (eg. messages are not mixed - Ihave palyed with similar approaches, process handling quite a lot)) - name is passed to java side via parameter during lunching of jvm (as names of pipes are) - same log for C part and Java side (can be both positive and negative) - Combination of above. One shared file, and one file for each side. Probably the best, and now right under construction - C and java sides are sharing the file and only one part is responsible for writing. - this is probably just wrong idea, but there is no danger of conflict during writing into - C part is sending the messages via pipe (new or current one), and java side is logging them - advantage is usage of multithreaded logging on java side - Java part is sending the messages via pipe (new or current one), and C side is logging them - advantage can be in case of syslog(-ng) sytstem logger. The C api is much cleaner *System logging:* To be honest I got into dead end. Both me and pavel have tried several approaches, (abrt, syslog...) but none fit. - I would like to log into syslog by default always and everything, and so if again somebody came and complain "it donot work", I will just tell him "look into well_knonw_location". - Also for system admin should be logs of all users on some place, so he can look into logs on "well known location" - so logging should not delay ITW run - multiline loggs must be allowed - logs should be automatically rolled - location should be something like /var/log/icedtea-web/$USER/rolled_logs where directory user should be 700 and fiels inside 600, owned by user As from above, only classical syslog was close enough to fill the requirements, but he did not fill the last condition, nor multiline messages. Also the disadvantage of configured logging is.. well annoying, but survivable. At the end I finished with syslog-ng. It looks like it is he is fulfilling all above, however it added other: - it is still to new, nearly none system have it by default. It will never go into rhel<=7 .. not sure even about 8 :( - it is not widely , nor (haha) by default used/known - Distors with packages can have syslog-ng as requirement, can start its daemon in post-install and can modify the syslog-ng properties file. (the config to reach above is not to simple). Not sure how to in non-packaging distros. - all three parts itw-settings,javaws and plugin should test the presence of (any) syslog, and to gray/disable the system longing in case of it absence I'm not syslog expert, so I could miss some feture... And I'm even less syslog-ng expert :) so any ideas welcome! About the implementation itself, the C api for syslog is really simple. From java side is interesting pipes approach, small(one string in , nothing out) JNI code (shared between java side and c side), or one of many existing libraries (but would be nice to avoid unnecessary dependence ), or tcp/udp message to specific port (how to find current syslog(-ng) port??) As interesting approach of system logging may be just extension to file logging: Lets expect that directory /var/log/icedtea-web/ with 777 permissions on icedtea-web exists (owened by root). Then We can have 700 permissions (owned y $USER) directory $USER here, and log 600 permissions files (owned y $USER) here in same way as we will do for "file logging". Stil the idea of ~.../log/ files should be kept. In this case I'm afraid of performance impact :( *Logging settings"* Last item I would like to bring up before first line of code, is setting. Right now the settings are - global - debugging on/off checkbook in itw-settings( or ICEDTEAPLUGIN_DEBUG or -verbose for javaws) - headers on/of itw settings checkbox - which are affecting all underlying outputs: - streams - file (only java implementation right now) - system (nothing implemented) I'm thinking about individual settings (verbose and headers) of each stream. In ideal world I would like to see: - streams - debug and headers off - file - debug and headers off, and headers off when debug on - system (nothing implemented) - debug and headers on With possibility to switch each separately to on/of for debug, and on/of for headers (so change for checkbox to commbobox in itw-settings, but I have no idea how to deal with -verbose and ICEDTEA_PLUGIN for this granular settings) Anyway. I'm not sure if this is worthy of effort (especially when I know that C headers generation are quite time consuming) Any help from this dead ends welcomed! best regards, J. [1] #include #include int main (int argc, char *argv[]) { FILE *fp; fp = fopen("shared","a+"); while (1){ struct timespec tim, tim2; tim.tv_sec = 0; tim.tv_nsec = 50000000L; nanosleep(&tim , &tim2); fprintf(fp,"[c part] ccc ccc ccc ccc ccc [c end]\n"); fflush(fp); } fclose(fp); return(0); } [2] import java.io.*; public class writer { public static void main(String[] args) throws Exception{ BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter("shared", true)); while (true){ out.write("[java side] jjj jjj jjj jjj jjj jjj [end of java side]\n"); out.flush(); Thread.sleep(100); } } finally { out.close(); } } } From jvanek at redhat.com Fri Nov 1 08:06:01 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 01 Nov 2013 16:06:01 +0100 Subject: icedtea-web hangs in JNLPRuntime (L&F gtk) In-Reply-To: <1383157030.5362.3.camel@localhost.localdomain> References: <1383157030.5362.3.camel@localhost.localdomain> Message-ID: <5273C359.60401@redhat.com> On 10/30/2013 07:17 PM, Thomas Meyer wrote: > Hi, > > the current version of icedtea-web (rev.cdb796a6195b) hangs for me at > net.sourceforge.jnlp.runtime.JNLPRuntime.initialize(boolean):236 while > trying to set the look and feel of the application. > > Adding this line to the deployment.properties files: > > swing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel > > make the hang go away. > > Do anybody else also experience this bug? I'm using Fedora 19, > icedtea-web is at cdb796a6195b and java version is: > > java version "1.7.0_45" > OpenJDK Runtime Environment (fedora-2.4.3.0.fc19-x86_64 u45-b15) > OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) > > with kind regards > thomas > Hi! I'm not able to reproduce. I had tried all localites of deployment.properties (http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/properties.html) even the ~/.config/icedtea-web/deployment.properties, and few appelts which each. Maybe you can provide some appelt which couse you are sure is suffering from this? J. From omajid at redhat.com Fri Nov 1 08:18:32 2013 From: omajid at redhat.com (Omair Majid) Date: Fri, 1 Nov 2013 11:18:32 -0400 Subject: [rfc][icedtea-web] synced headers between PLUGIN_ERROR, PLUGIN_DEBUG and java In-Reply-To: <52739472.1050904@redhat.com> References: <52728C3C.2010302@redhat.com> <20131031181052.GD1546@redhat.com> <52739472.1050904@redhat.com> Message-ID: <20131101151832.GA1617@redhat.com> * Jiri Vanek [2013-11-01 07:45]: > On 10/31/2013 07:10 PM, Omair Majid wrote: > >Hi Jiri, > > > >* Jiri Vanek [2013-10-31 13:12]: > >>diff -r 14a8ee171687 netx/net/sourceforge/jnlp/util/logging/OutputController.java > >>--- a/netx/net/sourceforge/jnlp/util/logging/OutputController.java Wed Oct 30 10:36:03 2013 +0100 > >>+++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Thu Oct 31 17:57:00 2013 +0100 > >>@@ -346,6 +346,7 @@ > >> if (stack != null) { > >> sb.append('[').append(getCallerClass(stack)).append(']'); > >> } > >>+ sb.append(" NETX Thread# ").append(Integer.toHexString(((Object)Thread.currentThread()).hashCode())).append(", name ").append(Thread.currentThread().getName()); > > > >Some nits, here. > > > >You probably don't need to cast Thread.currentThread() to Object, > >hashCode is defined on all types. > > I think I wont...I wont to be clear that number I'm showing is > Object's hash -"pointer". Right now Thread do not override it, but > can... Thanks to dynamic dispatch, there's no way to do what you are trying to do. Casting to Object won't make any difference. If Thread ever overrides hashCode(), it will be still be Thread.hashCode() that's invoked. > Afaik gthread, nor "pthread" do not have names.... There is a GNU extension to pthread that allows setting the name. pthread_setname_np() (np == non-portable). This isn't a recommendation to use that function :) Patch itself looks okay to me, but someone more familiar with C++ is welcome to chime in. Thanks, Omair From jvanek at icedtea.classpath.org Fri Nov 1 08:26:20 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 01 Nov 2013 15:26:20 +0000 Subject: /hg/icedtea-web: Synced headers between PLUGIN_DEBUG, PLUGIN_ERR... Message-ID: changeset 6a7915fdff8c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=6a7915fdff8c author: Jiri Vanek date: Fri Nov 01 13:23:25 2013 +0100 Synced headers between PLUGIN_DEBUG, PLUGIN_ERROR and javaside * netx/net/sourceforge/jnlp/util/logging/OutputController.java: (getHeader) added thread id and name to log header. * plugin/icedteanp/IcedTeaPluginUtils.h: (PLUGIN_DEBUG) (PLUGIN_ERROR) headerrs generation code moved to macro (CREATE_HEADER0). Both headers now contains pthread_self and g_thread_self. Fixed indentation. diffstat: ChangeLog | 9 + netx/net/sourceforge/jnlp/util/logging/OutputController.java | 4 + plugin/icedteanp/IcedTeaPluginUtils.h | 73 ++++++----- 3 files changed, 51 insertions(+), 35 deletions(-) diffs (115 lines): diff -r e6ba4b4dea45 -r 6a7915fdff8c ChangeLog --- a/ChangeLog Fri Nov 01 11:08:06 2013 +0100 +++ b/ChangeLog Fri Nov 01 13:23:25 2013 +0100 @@ -1,3 +1,12 @@ +2013-11-01 Jiri Vanek + + Synced headers between PLUGIN_DEBUG, PLUGIN_ERROR and javaside + * netx/net/sourceforge/jnlp/util/logging/OutputController.java: (getHeader) + added thread id and name to log header. + * plugin/icedteanp/IcedTeaPluginUtils.h: (PLUGIN_DEBUG) (PLUGIN_ERROR) + headerrs generation code moved to macro (CREATE_HEADER0). Both + headers now contains pthread_self and g_thread_self. Fixed indentation. + 2013-11-01 Jiri Vanek * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: diff -r e6ba4b4dea45 -r 6a7915fdff8c netx/net/sourceforge/jnlp/util/logging/OutputController.java --- a/netx/net/sourceforge/jnlp/util/logging/OutputController.java Fri Nov 01 11:08:06 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Fri Nov 01 13:23:25 2013 +0100 @@ -346,6 +346,10 @@ if (stack != null) { sb.append('[').append(getCallerClass(stack)).append(']'); } + sb.append(" NETX Thread# ") + .append(Integer.toHexString(((Object)Thread.currentThread()).hashCode())) + .append(", name ") + .append(Thread.currentThread().getName()); } catch (Exception ex) { getLogger().log(ex); } diff -r e6ba4b4dea45 -r 6a7915fdff8c plugin/icedteanp/IcedTeaPluginUtils.h --- a/plugin/icedteanp/IcedTeaPluginUtils.h Fri Nov 01 11:08:06 2013 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.h Fri Nov 01 13:23:25 2013 +0100 @@ -78,43 +78,46 @@ } while (0) -#define PLUGIN_DEBUG(...) \ - do \ - { \ - initialize_debug(); \ - if (plugin_debug) { \ - if (plugin_debug_to_streams) { \ - if (plugin_debug_headers) { \ - char s[1000]; \ - time_t t = time(NULL); \ - struct tm * p = localtime(&t); \ - strftime(s, 1000, "%a %b %d %H:%M:%S %Z %Y", p); \ - const char *userNameforDebug = (getenv("USERNAME") == NULL) ? "unknown user" : getenv("USERNAME"); \ - fprintf (stdout, "[%s][ITW-C-PLUGIN][MESSAGE_DEBUG][%s][%s:%d] ITNPP Thread# %ld: ", \ - userNameforDebug, s, __FILE__, __LINE__, pthread_self()); \ - } \ - fprintf (stdout, __VA_ARGS__); \ - } \ - } \ +//f is after expansion used as FILE* +#define CREATE_HEADER(f) \ + do \ + { \ + char s[200]; \ + time_t t = time(NULL); \ + struct tm p; \ + localtime_r(&t, &p); \ + strftime(s, 200, "%a %b %d %H:%M:%S %Z %Y", &p); \ + const char *userNameforDebug = (getenv("USERNAME") == NULL) ? "unknown user" : getenv("USERNAME"); \ + fprintf (f, "[%s][ITW-C-PLUGIN][MESSAGE_DEBUG][%s][%s:%d] ITNPP Thread# %ld, gthread %p: ", \ + userNameforDebug, s, __FILE__, __LINE__, pthread_self(), g_thread_self ()); \ + } while (0) + + +#define PLUGIN_DEBUG(...) \ + do \ + { \ + initialize_debug(); \ + if (plugin_debug) { \ + if (plugin_debug_to_streams) { \ + if (plugin_debug_headers) { \ + CREATE_HEADER(stdout); \ + } \ + fprintf (stdout, __VA_ARGS__); \ + } \ + } \ } while (0) -// Error reporting macro. -#define PLUGIN_ERROR(...) \ - do \ - { \ - initialize_debug(); \ - if (plugin_debug_to_streams) { \ - if (plugin_debug_headers) { \ - char s[1000]; \ - time_t t = time(NULL); \ - struct tm * p = localtime(&t); \ - strftime(s, 1000, "%A, %B %d %Y", p); \ - const char *userNameforDebug = (getenv("USERNAME") == NULL) ? "unknown user" : getenv("USERNAME"); \ - fprintf (stderr, "[%s][ITW-C-PLUGIN][ERROR_ALL][%s][%s:%d] thread %p: ", \ - userNameforDebug, s, __FILE__, __LINE__, g_thread_self ()); \ - } \ - fprintf (stderr, __VA_ARGS__); \ - } \ + +#define PLUGIN_ERROR(...) \ + do \ + { \ + initialize_debug(); \ + if (plugin_debug_to_streams) { \ + if (plugin_debug_headers) { \ + CREATE_HEADER(stderr); \ + } \ + fprintf (stderr, __VA_ARGS__); \ + } \ } while (0) From jvanek at redhat.com Fri Nov 1 08:40:46 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 01 Nov 2013 16:40:46 +0100 Subject: [icedtea-web] resurrection of (output)console? Message-ID: <5273CB7E.6010602@redhat.com> Hi all! In itw, there is many times mentioned console, but afaik it was never implemented. I'm thinkking (in shadow of http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-November/025190.html - logging tasks) about implement it. As it is very closely connected, and people are asking for it. My intentionis is to have it just as another logging output rightnow (ideas weelcomed!) in some outside lying frame with JTextArea.... It can show jsut jawa messages, or c messages (delivered via pipe?), or both. And its visibility will be from itw-settings (already prepared switch java console - show on startup) or from error/about dialogue. Any opinion about this? J. From aazores at redhat.com Fri Nov 1 09:00:50 2013 From: aazores at redhat.com (Andrew Azores) Date: Fri, 01 Nov 2013 12:00:50 -0400 Subject: Feature ITW logging tasks implementation In-Reply-To: <5273BD24.2010101@redhat.com> References: <5273BD24.2010101@redhat.com> Message-ID: <5273D032.2090704@redhat.com> On 11/01/2013 10:39 AM, Jiri Vanek wrote: > Hi all, before to much code is written. I would like to ask you to > opinions about suggested approaches: > > *Logging to file:* > Right now, i'm implementing the logging of C part to file. Th > implementation itelf is pretty simple. but from higher point, there > are two crucial differences with several different approaches: > - few notes notes > - file logs are saved at > {~/.config,$XDG_CONFIG_DIR}/icedtea-web/log without possibility to > change this location... I think this is correct and I'm not going to > change it (just going to higlight in ITW settings) > - fielname is itw-numberOfMilissecondsSinceEpoch.log - Unless > something against, I would like to change it to better name (date, > time - sure - but in readable form) > - java.stderr, java.stdout are no longer used > > logging to file(s) approaches: > - C side a and java side are each logging into own file in same > directory with as similar name as possible, distinguished via some > suffix PLUGIN/NETX > - most easy to implement > - different logs for C part and Java side (can be both positive and > negative) > - to have the name really same, name must be passed to java part > similarly as next approach > - C and java sides are sharing the file and each is writing on its own > - also easy to implement, and surprisingly, even most dummy > approaches [1] [2] (flushes are important) have very good results > (eg. messages are not mixed - Ihave palyed with similar approaches, > process handling quite a lot)) > - name is passed to java side via parameter during lunching of jvm > (as names of pipes are) > - same log for C part and Java side (can be both positive and > negative) > - Combination of above. One shared file, and one file for each side. > Probably the best, and now right under construction > - C and java sides are sharing the file and only one part is > responsible for writing. > - this is probably just wrong idea, but there is no danger of > conflict during writing into > - C part is sending the messages via pipe (new or current one), > and java side is logging them > - advantage is usage of multithreaded logging on java side > - Java part is sending the messages via pipe (new or current one), > and C side is logging them > - advantage can be in case of syslog(-ng) sytstem logger. The C > api is much cleaner For the "combination" option, does this mean that the combined logfile will just contain the same information as in the other two separate logfiles, but with the log messages interleaved? This sounds good on one hand because it means some issues will be very easy to trace as data flows from one side to the other, but on the other hand it seems like this also leads to the logfiles' total size being 2x what it would be if we didn't have the combined file. What about keeping two separate files, so that debugging is easy and clean for issues that only really affect one side, but with timestamps on each message so if you are debugging an issue that needs both, you can still easily trace the data flow between them? This would not be as easy to read through as the combined file however, and maybe the extra space taken up by the combined logfile is worth it. Anyway I guess I'm saying I like options 1 and 3 here. > *System logging:* > To be honest I got into dead end. Both me and pavel have tried several > approaches, (abrt, syslog...) but none fit. > - I would like to log into syslog by default always and everything, > and so if again somebody came and complain "it donot work", I will > just tell him "look into well_knonw_location". > - Also for system admin should be logs of all users on some place, so > he can look into logs on "well known location" > - so logging should not delay ITW run > - multiline loggs must be allowed > - logs should be automatically rolled > - location should be something like > /var/log/icedtea-web/$USER/rolled_logs where directory user should be > 700 and fiels inside 600, owned by user > As from above, only classical syslog was close enough to fill the > requirements, but he did not fill the last condition, nor multiline > messages. Also the disadvantage of configured logging is.. well > annoying, but survivable. > At the end I finished with syslog-ng. It looks like it is he is > fulfilling all above, however it added other: > - it is still to new, nearly none system have it by default. It will > never go into rhel<=7 .. not sure even about 8 :( > - it is not widely , nor (haha) by default used/known I agree with all of the design decisions here but I don't know enough about system logging implementations to be able to help with choosing one or finding an alternative to syslog-ng. If it won't be in RHEL any time too soon, and if most other systems won't already have it installed, do we really want to make this system logger a new dependency for ITW? Even an optional one? Maybe in the future when it's more widespread. But again I'm not sure what to use in its place otherwise. It seems better to settle on something we can depend on being available on our end users' systems right now, even if that means it won't be as elegant as syslog-ng. > - Distors with packages can have syslog-ng as requirement, can start > its daemon in post-install and can modify the syslog-ng properties > file. (the config to reach above is not to simple). Not sure how to in > non-packaging distros. In non-packaging distros, users would just need to set it up manually, I suppose. I don't think that's very ideal. We would then need to at least include some readme on how to configure this properly, and I'm sure most users would never bother with it at all anyway. Perhaps these users are a minority compared to those on packaging distros but I don't think we should make something as basic as logging be difficult to set up for them. I don't think it would be feasible for us to maintain a "setup-logging.sh" ourselves for this purpose either. > *Logging settings"* > Last item I would like to bring up before first line of code, is setting. > Right now the settings are > - global > - debugging on/off checkbook in itw-settings( or > ICEDTEAPLUGIN_DEBUG or -verbose for javaws) > - headers on/of itw settings checkbox > - which are affecting all underlying outputs: > - streams > - file (only java implementation right now) > - system (nothing implemented) > > I'm thinking about individual settings (verbose and headers) of each > stream. > In ideal world I would like to see: > - streams - debug and headers off > - file - debug and headers off, and headers off when debug on > - system (nothing implemented) - debug and headers on > > With possibility to switch each separately to on/of for debug, and > on/of for headers (so change for checkbox to commbobox in > itw-settings, but I have no idea how to deal with -verbose and > ICEDTEA_PLUGIN for this granular settings) Maybe those two options/switches should just add the minimal level of extra debug output. If that's still not enough then more verbosity can be enabled in settings. Or we can use multiple -verbose switches (and maybe add new short -v flag alias) to increase the amount of verbosity? One -v for some extra debug output, -vvv for maximum verbosity, something like that. I like the idea of having more granular control over what gets logged though. Thanks, -- Andrew A From omajid at redhat.com Fri Nov 1 09:02:24 2013 From: omajid at redhat.com (Omair Majid) Date: Fri, 1 Nov 2013 12:02:24 -0400 Subject: Feature ITW logging tasks implementation In-Reply-To: <5273BD24.2010101@redhat.com> References: <5273BD24.2010101@redhat.com> Message-ID: <20131101160224.GB1617@redhat.com> Hi Jiri, Some general thoughts and comments below. * Jiri Vanek [2013-11-01 10:39]: > Hi all, before to much code is written. I would like to ask you to opinions about suggested approaches: How about we try and tackle one thing at a time? Does it make sense to implement one of syslog or file logging first? > - file logs are saved at > {~/.config,$XDG_CONFIG_DIR}/icedtea-web/log without possibility to > change this location... I think this is correct and I'm not going to > change it (just going to higlight in ITW settings) But logs are not configuration. Would $XDG_DATA_DIR be more correct than $XDG_CONFIG_DIR? > - java.stderr, java.stdout are no longer used What happens to java-side logs, then? > logging to file(s) approaches: Is there any guarantee that two processes can write to one file without stepping on each other's data? If not, then separate processes writing to separate files is the only option we have (unless you want to use some form of IPC for logging). > - C and java sides are sharing the file and only one part is responsible for writing. What about when there is no plugin process (that is, there's just javaws)? Does this mean that the java side has to handle the actual writing? > - this is probably just wrong idea, but there is no danger of conflict during writing into > - C part is sending the messages via pipe (new or current one), and java side is logging them > - advantage is usage of multithreaded logging on java side > - Java part is sending the messages via pipe (new or current one), and C side is logging them > - advantage can be in case of syslog(-ng) sytstem logger. The C api is much cleaner > > > *System logging:* > To be honest I got into dead end. Both me and pavel have tried > several approaches, (abrt, syslog...) but none fit. I don't know anything about these systems. So I wont comment on this. > - I would like to log into syslog by default always and everything, > and so if again somebody came and complain "it donot work", I will > just tell him "look into well_knonw_location". "everything" including debug messages? Don't know if so much noise would be helpful. > - multiline loggs must be allowed Not sure I understand this. What do you mean by multiline? Do you want, say, an entire exception to be one log record? > - logs should be automatically rolled What do you mean by 'rolled' ? > As interesting approach of system logging may be just extension to file logging: > Lets expect that directory /var/log/icedtea-web/ with 777 > permissions on icedtea-web exists (owened by root). Then We can have > 700 permissions (owned y $USER) directory $USER here, and log 600 > permissions files (owned y $USER) here in same way as we will do for > "file logging". Stil the idea of ~.../log/ files should be kept. In > this case I'm afraid of performance impact :( This would put 'user' logs in a funny place and without any benefit to root (root will not be using icedtea-web, will it?). I don't see the point of it. Perhaps I am missing something? > *Logging settings"* > Last item I would like to bring up before first line of code, is setting. > Right now the settings are > - global > - debugging on/off checkbook in itw-settings( or ICEDTEAPLUGIN_DEBUG or -verbose for javaws) > - headers on/of itw settings checkbox > - which are affecting all underlying outputs: > - streams > - file (only java implementation right now) > - system (nothing implemented) > > I'm thinking about individual settings (verbose and headers) of each stream. > In ideal world I would like to see: > - streams - debug and headers off > - file - debug and headers off, and headers off when debug on > - system (nothing implemented) - debug and headers on > > With possibility to switch each separately to on/of for debug, and > on/of for headers (so change for checkbox to commbobox in > itw-settings, but I have no idea how to deal with -verbose and > ICEDTEA_PLUGIN for this granular settings) > > Anyway. I'm not sure if this is worthy of effort (especially when I > know that C headers generation are quite time consuming) I would encourage you to approach this from a user's (and root's) point of view. Please think about what settings make sense and are useful. I don't think it's a good idea to get very combination of everything working. Rather, good default to make life simple for users (and system admin) would be nice. For example, I don't think debugging stuff to syslog will be useful at all. And syslog implementations should be able to add timestamps automatically. Thanks, Omair From omajid at redhat.com Fri Nov 1 09:11:27 2013 From: omajid at redhat.com (Omair Majid) Date: Fri, 1 Nov 2013 12:11:27 -0400 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <5273CB7E.6010602@redhat.com> References: <5273CB7E.6010602@redhat.com> Message-ID: <20131101161127.GD1617@redhat.com> Hi Jiri, * Jiri Vanek [2013-11-01 11:40]: > In itw, there is many times mentioned console, but afaik it was never > implemented. /me points to plugin/icedteanp/java/sun/applet/JavaConsole.java Cheers, Omair From bugzilla-daemon at icedtea.classpath.org Fri Nov 1 09:11:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 01 Nov 2013 16:11:39 +0000 Subject: [Bug 1592] New: icedtea-web drop permissions on signed jars when run in combination with unsigned code Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1592 Bug ID: 1592 Summary: icedtea-web drop permissions on signed jars when run in combination with unsigned code Classification: Unclassified Product: IcedTea Version: unspecified Hardware: all URL: http://jogamp.org/deployment/jogamp-current/jogl-apple t-runner-newt-gears-normal-napplet.html OS: All Status: NEW Severity: normal Priority: P3 Component: NPPlugin Assignee: aazores at redhat.com Reporter: xerxes at zafena.se CC: dbhole at redhat.com, unassigned at icedtea.classpath.org IcedTea-Web 1.5pre+re6ba4b4dea45 http://jogamp.org/deployment/jogamp-current/jogl-applet-runner-newt-gears-normal-napplet.html This URL and applet only uses signing for the jars that require it This applet is supposed to follow the mixed code guideline: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html This URL and applet runs fine on Oracle's plug-in after accepting the warning dialogue box granting the applet permission to run. When using icedtea-web this applet fails to run, after the security dialogue is accepted it then catches an security exception in the code that is supposed to be signed. The applet fails to run using both High Security - User will be promted for each unsigned applet and Low Security - All, even unsigned, applets will be run Stored action for unsigned applet at http://jogamp.org/deployment/jogamp-current/ was A - Always trust this (matching) applet(s) Class-Path attribute cleared for /home/xranby/.cache/icedtea-web/cache/0/http/jogamp.org/deployment/jogamp-current/jar/jogl-all.jar Consumer thread 2 woken... Class-Path attribute cleared for /home/xranby/.cache/icedtea-web/cache/2/http/jogamp.org/deployment/jogamp-current/jar/gluegen-rt.jar Denying permission: ("java.security.AllPermission" "" "") Exception in thread "Applet" java.lang.ExceptionInInitializerError at com.jogamp.newt.awt.applet.JOGLNewtAppletBase.(JOGLNewtAppletBase.java:59) at com.jogamp.newt.awt.applet.JOGLNewtApplet1Run.(JOGLNewtApplet1Run.java:97) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:374) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:710) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:650) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:878) Caused by: java.security.AccessControlException: access denied ("java.security.AllPermission" "" "") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) at java.security.AccessController.checkPermission(AccessController.java:559) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at net.sourceforge.jnlp.runtime.JNLPSecurityManager.checkPermission(JNLPSecurityManager.java:285) at com.jogamp.common.util.SecurityUtil.checkPermission(SecurityUtil.java:118) at com.jogamp.common.util.SecurityUtil.checkAllPermissions(SecurityUtil.java:109) at com.jogamp.common.util.PropertyAccess.addTrustedPrefix(PropertyAccess.java:63) at jogamp.newt.Debug.access$000(Debug.java:50) at jogamp.newt.Debug$1.run(Debug.java:59) at java.security.AccessController.doPrivileged(Native Method) at jogamp.newt.Debug.(Debug.java:56) ... 10 more java.lang.NullPointerException at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:117) at sun.applet.AppletPanel.run(AppletPanel.java:380) at java.lang.Thread.run(Thread.java:724) Full logs: https://gist.github.com/xranby/557669f9704abb118ac9 Expected behaviour is that the applet runs and passes the security exception after the user accepts the dialouge box and grants the application to run. IcedTea-web currently only runs URL and applets where all jars are signed. Example these two jogamp test applications work ok: http://jogamp.org/deployment/jogamp-current/jogl-applet-version-napplet.html http://jogamp.org/deployment/test/jake2/jake2-napplet01.html -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131101/23745b65/attachment.html From jvanek at redhat.com Sat Nov 2 03:22:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Sat, 02 Nov 2013 11:22:38 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131101161127.GD1617@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> Message-ID: <5274D26E.7010209@redhat.com> On 11/01/2013 05:11 PM, Omair Majid wrote: > Hi Jiri, > > * Jiri Vanek [2013-11-01 11:40]: >> In itw, there is many times mentioned console, but afaik it was never >> implemented. > > /me points to plugin/icedteanp/java/sun/applet/JavaConsole.java > ok :) How it is used? :))) have you ever tried to trace it in code? I did, and it is ..not used, nor connected... Although it have many interesting features, it is not used at all. Thtas why it was not included in current refactorings. Well, I could miss something, and in that case I deserve to be humiliated:( In all cases the console deserves a bit improved clothes:) J. From jvanek at redhat.com Sun Nov 3 10:35:20 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Sun, 03 Nov 2013 19:35:20 +0100 Subject: Feature ITW logging tasks implementation In-Reply-To: <5273BD24.2010101@redhat.com> References: <5273BD24.2010101@redhat.com> Message-ID: <52769768.7030809@redhat.com> > Some general thoughts and comments below. > Thank you both for them >> Hi all, before to much code is written. I would like to ask you to opinions about suggested approaches: > > How about we try and tackle one thing at a time? Does it make sense to > implement one of syslog or file logging first? Because deeper and deeper I'm getting into them, they seems to me more and more connected > >> - file logs are saved at >> {~/.config,$XDG_CONFIG_DIR}/icedtea-web/log without possibility to >> change this location... I think this is correct and I'm not going to >> change it (just going to higlight in ITW settings) > > But logs are not configuration. Would $XDG_DATA_DIR be more correct than > $XDG_CONFIG_DIR? "$XDG_DATA_DIRS defines the preference-ordered set of base directories to search for data files in addition to the $XDG_DATA_HOME base directory. The directories in $XDG_DATA_DIRS should be seperated with a colon ':'. If $XDG_DATA_DIRS is either not set or empty, a value equal to /usr/local/share/:/usr/share/ should be used. " From specification, This do not seems me right the correct destination. Anyway - I'm not against place them to anywhere if sombody insists. My reasons to keep them where thay are now - less changes against 1.4 - less places where itw is shred > >> - java.stderr, java.stdout are no longer used > > What happens to java-side logs, then? > What they were from orogin? >> logging to file(s) approaches: > > Is there any guarantee that two processes can write to one file without > stepping on each other's data? If not, then separate processes writing I was trying to find this, and have not found. But made various experiments and it seems to be working really *perfectly* > to separate files is the only option we have (unless you want to use > some form of IPC for logging). Ugh.. something I would like to avoid. > >> - C and java sides are sharing the file and only one part is responsible for writing. > > What about when there is no plugin process (that is, there's just > javaws)? Does this mean that the java side has to handle the actual > writing? Then jni stub have to be called => wrong, and right now discarded solution. The c--sendingDataTo->java---writingThem-> solution have also discarding disadavtage - few logs can be lost before jvm is started (especially when plugi crash before jvm lunch) But still can be interesting for "resurectin of console" (messages from C to java via pipes, and so console do not need to reload data from file) > >> - this is probably just wrong idea, but there is no danger of conflict during writing into >> - C part is sending the messages via pipe (new or current one), and java side is logging them >> - advantage is usage of multithreaded logging on java side >> - Java part is sending the messages via pipe (new or current one), and C side is logging them >> - advantage can be in case of syslog(-ng) sytstem logger. The C api is much cleaner >> >> > > For the "combination" option, does this mean that the combined logfile will just contain the same information as in the other two separate logfiles, but with the log messages interleaved? This sounds good on one hand because it means some issues will be very easy to trace as data flows from one side to the other, but on the other hand it seems like this also leads to the logfiles' total size being 2x what it would be if we didn't have the combined file. What about keeping two separate files, so that debugging is easy and clean for issues that only really affect one side, but with timestamps on each message so if you are debugging an issue that needs both, you can still easily trace the data flow between them? > This would not be as easy to read through as the combined file however, and maybe the extra space taken up by the combined logfile is worth it. Anyway I guess I'm saying I like options 1 and 3 here. > from what you have said I get inclined to option one - each side is writing to its own file. As one can easily get merged result from std. outputs. >> *System logging:* >> To be honest I got into dead end. Both me and pavel have tried >> several approaches, (abrt, syslog...) but none fit. > > I don't know anything about these systems. So I wont comment on this. :(( Yah, appeared no one knows enough. I will lunch small voting + investigations in brno office > >> - I would like to log into syslog by default always and everything, >> and so if again somebody came and complain "it donot work", I will >> just tell him "look into well_knonw_location". > > "everything" including debug messages? Don't know if so much noise would > be helpful. hmhmh... You are probably right. > >> - multiline loggs must be allowed > > Not sure I understand this. What do you mean by multiline? Do you want, > say, an entire exception to be one log record? Exactly. When full debug is on, then whole stack traces should be visible. > >> - logs should be automatically rolled > > What do you mean by 'rolled' ? Its common behavior of logging faclities, I just pointed it out, to not forgot it if we will go on some own or strange way. rolled logs in my dictionary: eg log result is in some file, and after some time or reaching some size this file is moved to "archive" or renamed like log_date an new clean file is used... > >> As interesting approach of system logging may be just extension to file logging: >> Lets expect that directory /var/log/icedtea-web/ with 777 >> permissions on icedtea-web exists (owened by root). Then We can have >> 700 permissions (owned y $USER) directory $USER here, and log 600 >> permissions files (owned y $USER) here in same way as we will do for There can be security issue, that icedtea-web/$USER can be kidnapped, Especially linking can be hard to discover from java without NIO. >> "file logging". Stil the idea of ~.../log/ files should be kept. In >> this case I'm afraid of performance impact :( > > This would put 'user' logs in a funny place and without any benefit to Maybe, but what is the place you are looking into when some app starts to fail? I'm firstly checking /var/log/{,messages,?}. And after that I'm searching app's specific logging facilities. > root (root will not be using icedtea-web, will it?). I don't see the > point of it. Perhaps I am missing something? Use case I had in mind is shareed system, where itw have some global policies. In this system when user see itw do no work, he will contact admin. And he will check the logs. > >> >> >> - it is not widely , nor (haha) by default used/known > > I agree with all of the design decisions here but I don't know enough about system logging implementations to be able to help with choosing one or finding an alternative to syslog-ng. If it won't be in RHEL any time too soon, and if most other systems won't already have it installed, do we really want to make this system logger a new dependency for ITW? Even an optional one? Maybe in the future when it's more widespread. But again I'm not sure what to use in its place otherwise. It seems better to settle on something we can depend on being available on our end users' systems right now, even if that means it won't be as elegant as syslog-ng. > I agree with you, Rather then taking dependency, which can not be everywhere, I would rather proceed with some custom solution. >> - Distors with packages can have syslog-ng as requirement, can start its daemon in post-install and can modify the syslog-ng properties file. (the config to reach above is not to simple). Not sure how to in non-packaging distros. > > In non-packaging distros, users would just need to set it up manually, I suppose. I don't think that's very ideal. We would then need to at least include some readme on how to configure this properly, and I'm sure most users would never bother with it at all anyway. Perhaps these users are a minority compared to those on packaging distros but I don't think we should make something as basic as logging be difficult to set up for them. I don't think it would be feasible for us to maintain a "setup-logging.sh" ourselves for this purpose either. yah :( > >> *Logging settings"* >> Last item I would like to bring up before first line of code, is setting. >> Right now the settings are >> - global >> - debugging on/off checkbook in itw-settings( or ICEDTEAPLUGIN_DEBUG or -verbose for javaws) >> - headers on/of itw settings checkbox >> - which are affecting all underlying outputs: >> - streams >> - file (only java implementation right now) >> - system (nothing implemented) >> >> I'm thinking about individual settings (verbose and headers) of each stream. >> In ideal world I would like to see: >> - streams - debug and headers off >> - file - debug and headers off, and headers off when debug on >> - system (nothing implemented) - debug and headers on >> >> With possibility to switch each separately to on/of for debug, and on/of for headers (so change for checkbox to commbobox in itw-settings, but I have no idea how to deal with -verbose and ICEDTEA_PLUGIN for this granular settings) > > Maybe those two options/switches should just add the minimal level of extra debug output. If that's still not enough then more verbosity can be enabled in settings. Or we can use multiple -verbose switches (and maybe add new short -v flag alias) to increase the amount of verbosity? One -v for some extra debug output, -vvv for maximum verbosity, something like that. I like the idea of having more granular control over what gets logged though. > >> >> Anyway. I'm not sure if this is worthy of effort (especially when I >> know that C headers generation are quite time consuming) > > I would encourage you to approach this from a user's (and root's) point > of view. Please think about what settings make sense and are useful. > I don't think it's a good idea to get very combination of everything > working. Rather, good default to make life simple for users (and > system admin) would be nice. > > For example, I don't think debugging stuff to syslog will be useful at > all. And syslog implementations should be able to add timestamps > automatically. > This is something I was not able decide till now for 100%. I will experiment with it more. From above, and few more hints I'm inclining to following: - the file-log will log to two files - one for plugin, one javaside, - instead of remote logger, another "to file", but merged (one file for both java and c) which will log to /var/log/itw/user, and will be rolled.. /var/log should be probably configured via configure - I would like to log into java console via pipes, few messgaes generated before jvm lunch, can be written ..well somewhere .. to some file and loaded prior.:) - we will stay with global headers/debug on/off, be defult off for all ways. From omajid at redhat.com Sun Nov 3 16:56:44 2013 From: omajid at redhat.com (Omair Majid) Date: Sun, 3 Nov 2013 19:56:44 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <5274D26E.7010209@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> Message-ID: <20131104005643.GB12307@redhat.com> * Jiri Vanek [2013-11-02 06:16]: > On 11/01/2013 05:11 PM, Omair Majid wrote: > >Hi Jiri, > > > >* Jiri Vanek [2013-11-01 11:40]: > >>In itw, there is many times mentioned console, but afaik it was never > >>implemented. > > > >/me points to plugin/icedteanp/java/sun/applet/JavaConsole.java > > > > ok :) How it is used? :))) Last I looked, there were two ways to enable it: 1. Using the ControlPanel, which writes out the deployment configuration property "deployment.console.startup.mode". Not sure if anything is reading it or not. 2. Using the browser. The browser calls into the plugin, and the plugin calls passes a message to the java-side of the plugin asking to display the console [1]. Last I tried this, you had to add an extension to Firefox to add a button to display the console. > have you ever tried to trace it in code? I did, and it is ..not used, > nor connected... Although it have many interesting features, it is not > used at all. Thtas why it was not included in current refactorings. I wouldn't be surprised. It hasn't seen much love in a while. Thanks, Omair [1] http://icedtea.classpath.org/hg/icedtea6/rev/aa17512747b1?revcount=20 From ptisnovs at icedtea.classpath.org Mon Nov 4 00:22:15 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 04 Nov 2013 08:22:15 +0000 Subject: /hg/gfx-test: Another six new tests added into BitBitBltAffineId... Message-ID: changeset 937aab54cacc in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=937aab54cacc author: Pavel Tisnovsky date: Mon Nov 04 09:26:08 2013 +0100 Another six new tests added into BitBitBltAffineIdentityTransformOp.java: diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java | 84 ++++++++++ 2 files changed, 89 insertions(+), 0 deletions(-) diffs (106 lines): diff -r 9a22e2aabf85 -r 937aab54cacc ChangeLog --- a/ChangeLog Fri Oct 25 11:02:45 2013 +0200 +++ b/ChangeLog Mon Nov 04 09:26:08 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-04 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: + Another six new tests added into BitBitBltAffineIdentityTransformOp.java: + 2013-10-25 Pavel Tisnovsky * src/org/gfxtest/testsuites/BBitBltAffineIdentityTransformOp.java: diff -r 9a22e2aabf85 -r 937aab54cacc src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Fri Oct 25 11:02:45 2013 +0200 +++ b/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Mon Nov 04 09:26:08 2013 +0100 @@ -1780,6 +1780,90 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_CUSTOM. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeCustomIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeCustom(image, graphics2d, IdentifyTranspormationOp6); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Mon Nov 4 00:26:50 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 04 Nov 2013 08:26:50 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset 328e46cec04a in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=328e46cec04a author: Pavel Tisnovsky date: Mon Nov 04 09:30:38 2013 +0100 Added new testGetResourcePositiveTest case into BindingsClassTest. diffstat: ChangeLog | 10 ++++- src/org/RhinoTests/BindingsClassTest.java | 61 +++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) diffs (95 lines): diff -r 1ac6ba772ad8 -r 328e46cec04a ChangeLog --- a/ChangeLog Fri Oct 25 11:05:15 2013 +0200 +++ b/ChangeLog Mon Nov 04 09:30:38 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-04 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Added new testGetResourcePositiveTest case into + BindingsClassTest. + 2013-10-25 Pavel Tisnovsky * src/org/RhinoTests/InvocableClassTest.java: @@ -7,8 +13,8 @@ 2013-10-24 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: - Added new testGetResourcePositiveTest case into - BindingsClassTest. + Added new testGetResourceAsStreamPositiveTest case + into BindingsClassTest. 2013-10-23 Pavel Tisnovsky diff -r 1ac6ba772ad8 -r 328e46cec04a src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Fri Oct 25 11:05:15 2013 +0200 +++ b/src/org/RhinoTests/BindingsClassTest.java Mon Nov 04 09:30:38 2013 +0100 @@ -1531,6 +1531,67 @@ } /** + * Test for method javax.script.Bindings.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.bindingsClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.bindingsClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for method javax.script.Bindings.getClass().getResourceAsStreamPositiveTest() */ protected void testGetResourceAsStreamPositiveTest() { From jvanek at redhat.com Mon Nov 4 03:29:25 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 04 Nov 2013 12:29:25 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131104005643.GB12307@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> Message-ID: <52778515.7010507@redhat.com> On 11/04/2013 01:56 AM, Omair Majid wrote: > * Jiri Vanek [2013-11-02 06:16]: >> On 11/01/2013 05:11 PM, Omair Majid wrote: >>> Hi Jiri, >>> >>> * Jiri Vanek [2013-11-01 11:40]: >>>> In itw, there is many times mentioned console, but afaik it was never >>>> implemented. >>> >>> /me points to plugin/icedteanp/java/sun/applet/JavaConsole.java >>> >> >> ok :) How it is used? :))) > > Last I looked, there were two ways to enable it: You had to look centuries ago, afaik it never worked. > > 1. Using the ControlPanel, which writes out the deployment configuration > property "deployment.console.startup.mode". Not sure if anything is > reading it or not. this was never enabled > > 2. Using the browser. The browser calls into the plugin, and the plugin > calls passes a message to the java-side of the plugin asking to display > the console [1]. Last I tried this, you had to add an extension to > Firefox to add a button to display the console. Yes, this was implemented, but unluckily the possibility to show console disapeared from browser(s?) :( > >> have you ever tried to trace it in code? I did, and it is ..not used, >> nor connected... Although it have many interesting features, it is not >> used at all. Thtas why it was not included in current refactorings. > > > [1] http://icedtea.classpath.org/hg/icedtea6/rev/aa17512747b1?revcount=20 > The attache dpatch enables java console for 1.4. Also is answer on "what happend to java.stdout and java.stderr fiels in 1.5 :) before you will wonder about removed redirectStreams, please test patch :). Also it is remove in 1.5. Imho "debug" should have nothing to do with "redirecting" also it was used wrongly, and made consoel even less usefull... Now it is working as it should. ICEDTEAPLIGIN_DEBUG is setting level of verbosity, and console is jsut another form of output. Maybe when deployment.console.startup.mode is in DISABLED, then maybe those two files should not be crated.. But Unelss you insists, I would ratehr left it for another paptch (if ever). For head, much more work is needed: - moce JavaConsole from plugin to netx (..logging package perhaps?) it will: - allow to show it from error dialogue - get rid of perpetual reloading of textAreas - allwo proper integrating with OutputControler - positive consequence will be enabling of it also for javaws - improve it :) - pre-java logs - maybe soem filtering - changing properties in runtime unhappy J. -------------- next part -------------- diff -r 511a213f0206 NEWS --- a/NEWS Wed Oct 30 10:36:43 2013 +0100 +++ b/NEWS Mon Nov 04 12:18:40 2013 +0100 @@ -12,6 +12,7 @@ * Dialogs center on screen before becoming visible * Plugin - RH976833: Multiple applets on one page cause deadlock +* Enabled javaconsole for plugin New in release 1.4.1 (2013-09-19): * Improved and cleaned Temporary internet files panel diff -r 511a213f0206 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Wed Oct 30 10:36:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 12:18:40 2013 +0100 @@ -148,6 +148,7 @@ * Console */ public static final String KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode"; + public static final String VALUE_CONSOLE_STARTUP_MODE_SHOW = "SHOW"; /* * Desktop Integration diff -r 511a213f0206 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Oct 30 10:36:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Nov 04 12:18:40 2013 +0100 @@ -130,9 +130,6 @@ /** whether debug mode is on */ private static boolean debug = false; - /** whether streams should be redirected */ - private static boolean redirectStreams = false; - /** mutex to wait on, for initialization */ public static Object initMutex = new Object(); @@ -364,7 +361,7 @@ private static void initializeStreams() { Boolean enableLogging = Boolean.valueOf(config .getProperty(DeploymentConfiguration.KEY_ENABLE_LOGGING)); - if (redirectStreams || enableLogging) { + String logDir = config.getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); try { @@ -375,17 +372,12 @@ FileUtils.createParentDir(outFile); FileUtils.createRestrictedFile(outFile, true); - if (redirectStreams) { - System.setErr(new PrintStream(new FileOutputStream(errFile))); - System.setOut(new PrintStream(new FileOutputStream(outFile))); - } else { System.setErr(new TeeOutputStream(new FileOutputStream(errFile), System.err)); System.setOut(new TeeOutputStream(new FileOutputStream(outFile), System.out)); - } + } catch (Exception e) { e.printStackTrace(); } - } } /** @@ -527,16 +519,6 @@ debug = enabled; } - /** - * Sets whether the standard output/error streams should be redirected to - * the loggging files. - * - * @throws IllegalStateException if the runtime has already been initialized - */ - public static void setRedirectStreams(boolean redirect) { - checkInitialized(); - redirectStreams = redirect; - } /** * Sets the default update policy. diff -r 511a213f0206 plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Mon Nov 04 12:18:40 2013 +0100 @@ -234,7 +234,7 @@ private ClassLoader liveconnectLoader = ClassLoader.getSystemClassLoader(); int identifier = 0; - public static PluginStreamHandler streamhandler; + private static PluginStreamHandler streamhandler; long startTime = 0; @@ -320,6 +320,12 @@ streamhandler = sh; } + public static PluginStreamHandler getStreamhandler() { + return streamhandler; + } + + + public static Map getLoaderInfo() { Hashtable map = new Hashtable(); diff -r 511a213f0206 plugin/icedteanp/java/sun/applet/PluginMain.java --- a/plugin/icedteanp/java/sun/applet/PluginMain.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java Mon Nov 04 12:18:40 2013 +0100 @@ -106,14 +106,15 @@ try { PluginStreamHandler streamHandler = connect(args[0], args[1]); - boolean redirectStreams = System.getenv().containsKey("ICEDTEAPLUGIN_DEBUG"); - - // must be called before JNLPRuntime.initialize() - JNLPRuntime.setRedirectStreams(redirectStreams); PluginAppletSecurityContext sc = new PluginAppletSecurityContext(0); sc.prePopulateLCClasses(); PluginAppletSecurityContext.setStreamhandler(streamHandler); + //the properties are initialised during classlaoder creation + if (DeploymentConfiguration.VALUE_CONSOLE_STARTUP_MODE_SHOW.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE))) { + PluginAppletSecurityContext.getStreamhandler().showConsole(); + } AppletSecurityContextManager.addContext(0, sc); PluginAppletViewer.setStreamhandler(streamHandler); diff -r 511a213f0206 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Mon Nov 04 12:18:40 2013 +0100 @@ -44,7 +44,6 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.net.MalformedURLException; import java.nio.charset.Charset; import javax.swing.SwingUtilities; @@ -76,7 +75,7 @@ pluginOutputWriter = new BufferedWriter(new OutputStreamWriter (outputstream, Charset.forName("UTF-8"))); - } + } public void startProcessing() { @@ -373,7 +372,7 @@ return; } - private void showConsole() { + public void showConsole() { SwingUtilities.invokeLater(new Runnable() { public void run() { console.showConsole(); From jvanek at redhat.com Mon Nov 4 07:10:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 04 Nov 2013 16:10:50 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <52778515.7010507@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> Message-ID: <5277B8FA.70902@redhat.com> On 11/04/2013 12:29 PM, Jiri Vanek wrote: > On 11/04/2013 01:56 AM, Omair Majid wrote: >> * Jiri Vanek [2013-11-02 06:16]: >>> On 11/01/2013 05:11 PM, Omair Majid wrote: >>>> Hi Jiri, >>>> >>>> * Jiri Vanek [2013-11-01 11:40]: >>>>> In itw, there is many times mentioned console, but afaik it was never >>>>> implemented. >>>> >>>> /me points to plugin/icedteanp/java/sun/applet/JavaConsole.java >>>> >>> >>> ok :) How it is used? :))) >> >> Last I looked, there were two ways to enable it: > > You had to look centuries ago, afaik it never worked. >> >> 1. Using the ControlPanel, which writes out the deployment configuration >> property "deployment.console.startup.mode". Not sure if anything is >> reading it or not. > > this was never enabled >> >> 2. Using the browser. The browser calls into the plugin, and the plugin >> calls passes a message to the java-side of the plugin asking to display >> the console [1]. Last I tried this, you had to add an extension to >> Firefox to add a button to display the console. > > Yes, this was implemented, but unluckily the possibility to show console disapeared from > browser(s?) :( >> >>> have you ever tried to trace it in code? I did, and it is ..not used, >>> nor connected... Although it have many interesting features, it is not >>> used at all. Thtas why it was not included in current refactorings. >> >> >> [1] http://icedtea.classpath.org/hg/icedtea6/rev/aa17512747b1?revcount=20 >> > > The attache dpatch enables java console for 1.4. Also is answer on "what happend to java.stdout and > java.stderr fiels in 1.5 :) > > before you will wonder about removed redirectStreams, please test patch :). Also it is remove in > 1.5. Imho "debug" should have nothing to do with "redirecting" also it was used wrongly, and made > consoel even less usefull... > Now it is working as it should. ICEDTEAPLIGIN_DEBUG is setting level of verbosity, and console is > jsut another form of output. > Maybe when deployment.console.startup.mode is in DISABLED, then maybe those two files should not be > crated.. But Unelss you insists, I would ratehr left it for another paptch (if ever). > > > > For head, much more work is needed: and here is version for head. > - moce JavaConsole from plugin to netx (..logging package perhaps?) > it will: > - allow to show it from error dialogue done > - get rid of perpetual reloading of textAreas done > - allwo proper integrating with OutputControler done > - positive consequence will be enabling of it also for javaws done > fiexed is also handling of "DISABLED" > - improve it :) > - pre-java logs > - maybe soem filtering > - changing properties in runtime tbd :) Also I have found that debug on can cause forever living thread in itw-settings/javaws. It is not casued by this patch, and I'm on it. unhappy J. -------------- next part -------------- diff -r 6a7915fdff8c NEWS --- a/NEWS Fri Nov 01 13:23:25 2013 +0100 +++ b/NEWS Mon Nov 04 16:08:16 2013 +0100 @@ -12,6 +12,7 @@ * IcedTea-Web now using tagsoup as default (tagsoup dependence) sanitizer for input * JDK older then 1.5 no longer supported * IcedTea-Web is now following XDG .config and .cache specification(RH947647) +* Enabled and enhanced javaconsole for plugin and javaws * Cache Viewer - Can be closed by ESC key - Enabling and disabling of operational buttons is handled properly diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/config/Defaults.java --- a/netx/net/sourceforge/jnlp/config/Defaults.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Mon Nov 04 16:08:16 2013 +0100 @@ -337,7 +337,9 @@ BasicValueValidators.getStringValidator(new String[] { DeploymentConfiguration.CONSOLE_DISABLE, DeploymentConfiguration.CONSOLE_HIDE, - DeploymentConfiguration.CONSOLE_SHOW + DeploymentConfiguration.CONSOLE_SHOW, + DeploymentConfiguration.CONSOLE_SHOW_PLUGIN, + DeploymentConfiguration.CONSOLE_SHOW_JAVAWS }), DeploymentConfiguration.CONSOLE_HIDE }, diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 16:08:16 2013 +0100 @@ -64,14 +64,11 @@ public static final int JNLP_ASSOCIATION_ASK_USER = 2; public static final int JNLP_ASSOCIATION_REPLACE_ASK = 3; - /* - * FIXME these should be moved into JavaConsole, but there is a strange - * dependency in the build system. First all of netx is built. Then the - * plugin is built. So we cannot refer to plugin code in here :( - */ public static final String CONSOLE_HIDE = "HIDE"; public static final String CONSOLE_SHOW = "SHOW"; public static final String CONSOLE_DISABLE = "DISABLE"; + public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; + public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; public static final String KEY_USER_CACHE_DIR = "deployment.user.cachedir"; public static final String KEY_USER_PERSISTENCE_CACHE_DIR = "deployment.user.pcachedir"; @@ -160,6 +157,8 @@ * Console */ public static final String KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode"; + //search for values above CONSOLE_* + /* * Desktop Integration diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Mon Nov 04 16:08:16 2013 +0100 @@ -91,9 +91,11 @@ (Translator.R("DPEnableSyslogHint")) }; - ComboItem[] javaConsoleItems = { new ComboItem(Translator.R("DPDisable"), "DISABLE"), - new ComboItem(Translator.R("DPHide"), "HIDE"), - new ComboItem(Translator.R("DPShow"), "SHOW"), }; + ComboItem[] javaConsoleItems = { new ComboItem(Translator.R("DPDisable"), DeploymentConfiguration.CONSOLE_DISABLE), + new ComboItem(Translator.R("DPHide"), DeploymentConfiguration.CONSOLE_HIDE), + new ComboItem(Translator.R("DPShow"), DeploymentConfiguration.CONSOLE_SHOW), + new ComboItem(Translator.R("DPShowPluginOnly"), DeploymentConfiguration.CONSOLE_SHOW_PLUGIN), + new ComboItem(Translator.R("DPShowJavawsOnly"), DeploymentConfiguration.CONSOLE_SHOW_JAVAWS) }; JLabel consoleLabel = new JLabel(Translator.R("DPJavaConsole")); JComboBox consoleComboBox = new JComboBox(); diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Nov 04 16:08:16 2013 +0100 @@ -415,7 +415,10 @@ DPDisable=Disable DPHide=Hide on startup DPShow=Show on startup +DPShowPluginOnly=Show on startup, only for plugin +DPShowJavawsOnly=Show on startup, only for javaws DPJavaConsole=Java Console +DPJavaConsoleDisabledHint=Sorry, java console is disabled, turn it to hide, or show in itw-settings # Control Panel - DesktopShortcutPanel DSPNeverCreate=Never create @@ -525,6 +528,7 @@ SPLASHmainL3 = No further information available, try to launch the browser from the command line and examine the output. SPLASHcloseAndCopyShorter = Close and copy to clipboard SPLASHmainL4 = The folloing exception has occured. For more information, try to launch the browser from the command line and examine the output. +SPLASHmainL2 = You can get some more information by checking console, or even turn debug on in itw-settings SPLASHexWas = Exception was: SPLASHcfl = Can't follow link to SPLASHvendorsInfo = Information from vendor of your application diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Nov 04 16:08:16 2013 +0100 @@ -67,8 +67,8 @@ import net.sourceforge.jnlp.security.VariableX509TrustManager; import net.sourceforge.jnlp.services.XServiceManagerStub; import net.sourceforge.jnlp.util.FileUtils; +import net.sourceforge.jnlp.util.logging.JavaConsole; import net.sourceforge.jnlp.util.logging.OutputController; -import net.sourceforge.jnlp.util.TeeOutputStream; import net.sourceforge.jnlp.util.logging.LogConfig; import sun.net.www.protocol.jar.URLJarFile; @@ -162,9 +162,6 @@ /** a lock which is held to indicate that an instance of netx is running */ private static FileLock fileLock; - public static final String STDERR_FILE = "java.stderr"; - public static final String STDOUT_FILE = "java.stdout"; - /** * Returns whether the JNLP runtime environment has been @@ -196,6 +193,16 @@ try { config.load(); config.copyTo(System.getProperties()); + if (DeploymentConfiguration.CONSOLE_SHOW.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + && !isApplication) + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + && isApplication)) { + JavaConsole.getConsole().showConsoleLater(); + } } catch (ConfigurationException e) { /* exit if there is a fatal exception loading the configuration */ if (isApplication) { diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java --- a/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Mon Nov 04 16:08:16 2013 +0100 @@ -64,7 +64,10 @@ import javax.swing.event.HyperlinkListener; import net.sourceforge.jnlp.LaunchException; import net.sourceforge.jnlp.about.AboutDialog; +import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.runtime.Translator; +import net.sourceforge.jnlp.util.logging.JavaConsole; import net.sourceforge.jnlp.util.logging.OutputController; public class JEditorPaneBasedExceptionDialog extends JDialog implements HyperlinkListener { @@ -74,6 +77,7 @@ private JButton closeAndCopyButton; private JButton homeButton; private JButton aboutButton; + private JButton consoleButton; private JEditorPane htmlErrorAndHelpPanel; private JLabel exceptionLabel; private JLabel iconLabel; @@ -142,6 +146,7 @@ htmlErrorAndHelpPanel = new JEditorPane(); homeButton = new JButton(); aboutButton = new JButton(); + consoleButton = new JButton(); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); @@ -166,9 +171,9 @@ GroupLayout jPanel2Layout = new GroupLayout(topPanel); topPanel.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addContainerGap().addComponent(consoleButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(closeAndCopyButton)).addContainerGap())); + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(consoleButton).addComponent(closeAndCopyButton)).addContainerGap())); exceptionLabel.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N exceptionLabel.setHorizontalAlignment(SwingConstants.CENTER); @@ -204,6 +209,26 @@ } } }); + + consoleButton.setText(Translator.R("DPJavaConsole")); + consoleButton.addActionListener(new java.awt.event.ActionListener() { + + @Override + public void actionPerformed(java.awt.event.ActionEvent evt) { + try{ + JavaConsole.getConsole().showConsoleLater(true); + }catch(Exception ex){ + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ex); + JOptionPane.showConfirmDialog(JEditorPaneBasedExceptionDialog.this, ex); + } + } + }); + if (DeploymentConfiguration.CONSOLE_DISABLE.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + ){ + consoleButton.setEnabled(false); + consoleButton.setToolTipText(Translator.R("DPJavaConsoleDisabledHint")); + } GroupLayout jPanel1Layout = new GroupLayout(mainPanel); mainPanel.setLayout(jPanel1Layout); @@ -271,6 +296,9 @@ StringBuilder s = new StringBuilder(""); String info = "

" + Translator.R(InfoItem.SPLASH + "mainL1", createLink()) + + "

\n" + + "

" + + Translator.R(InfoItem.SPLASH + "mainL2", createLink()) + "

\n"; String t = "

" + Translator.R(InfoItem.SPLASH + "mainL3") diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/util/logging/JavaConsole.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Mon Nov 04 16:08:16 2013 +0100 @@ -0,0 +1,349 @@ +/* JavaConsole -- A java console for the plugin + Copyright (C) 2009 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package net.sourceforge.jnlp.util.logging; + +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; +import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.runtime.JNLPRuntime; +import net.sourceforge.jnlp.util.ImageResources; + +/** + * A simple Java console for IcedTeaPlugin + * + */ +public class JavaConsole { + private static JavaConsole console; + + public static JavaConsole getConsole() { + if (console == null) { + console = new JavaConsole(); + } + return console; + } + + + JDialog consoleWindow; + JTextArea stdErrText; + JTextArea stdOutText; + + public JavaConsole() { + initialize(); + } + + + + /** + * Initialize the console + */ + private void initialize() { + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (Exception e) { + OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); + } + + final String logDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); + + consoleWindow = new JDialog((JFrame)null, "Java Console"); + consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); + + JPanel contentPanel = new JPanel(); + contentPanel.setLayout(new GridBagLayout()); + + GridBagConstraints c; + + Font monoSpace = new Font("Monospaced", Font.PLAIN, 12); + + + stdOutText = new JTextArea(); + JScrollPane stdOutScrollPane = new JScrollPane(stdOutText); + stdOutScrollPane.setBorder(new TitledBorder( + new EmptyBorder(5, 5, 5, 5), "System.out")); + stdOutText.setEditable(false); + stdOutText.setFont(monoSpace); + + stdErrText = new JTextArea(); + JScrollPane stdErrScrollPane = new JScrollPane(stdErrText); + stdErrScrollPane.setBorder(new TitledBorder( + new EmptyBorder(5, 5, 5, 5), "System.err")); + stdErrText.setEditable(false); + stdErrText.setFont(monoSpace); + + JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, + stdOutScrollPane, stdErrScrollPane); + + c = new GridBagConstraints(); + c.fill = GridBagConstraints.BOTH; + c.gridheight = 10; + c.weighty = 1; + + contentPanel.add(splitPane, c); + + /* buttons */ + + c = new GridBagConstraints(); + c.gridy = 10; + c.gridheight = 1; + c.weightx = 0.5; + c.weighty = 0; + + JPanel buttonPanel = new JPanel(); + contentPanel.add(buttonPanel, c); + + JButton gcButton = new JButton("Run GC"); + buttonPanel.add(gcButton); + gcButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + printMemoryInfo(); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Performing Garbage Collection...."); + System.gc(); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); + printMemoryInfo(); + } + + }); + + JButton finalizersButton = new JButton("Run Finalizers"); + buttonPanel.add(finalizersButton); + finalizersButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + printMemoryInfo(); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Running finalization...."); + Runtime.getRuntime().runFinalization(); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); + printMemoryInfo(); + } + }); + + JButton memoryButton = new JButton("Memory Info"); + buttonPanel.add(memoryButton); + memoryButton.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + printMemoryInfo(); + } + + }); + + JButton systemPropertiesButton = new JButton("System Properties"); + buttonPanel.add(systemPropertiesButton); + systemPropertiesButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + printSystemProperties(); + } + + }); + + JButton classloadersButton = new JButton("Classloaders"); + buttonPanel.add(classloadersButton); + classloadersButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + printClassLoaders(); + } + + }); + + JButton threadListButton = new JButton("Thread List"); + buttonPanel.add(threadListButton); + threadListButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + printThreadInfo(); + } + + }); + + JButton closeButton = new JButton("Close"); + buttonPanel.add(closeButton); + closeButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + hideConsole(); + } + }); + } + }); + + consoleWindow.add(contentPanel); + consoleWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + consoleWindow.pack(); + consoleWindow.setSize(new Dimension(900, 600)); + consoleWindow.setMinimumSize(new Dimension(900, 300)); + + splitPane.setDividerLocation(0.5); + splitPane.setResizeWeight(0.5); + } + + public void showConsole() { + showConsole(false); + } + + public void showConsole(boolean b) { + consoleWindow.setModal(b); + consoleWindow.setVisible(true); + } + + public void hideConsole() { + consoleWindow.setModal(false); + consoleWindow.setVisible(false); + } + + public void showConsoleLater() { + showConsoleLater(false); + } + public void showConsoleLater(final boolean b) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + JavaConsole.getConsole().showConsole(b); + } + }); + } + + public void hideConsoleLater() { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + JavaConsole.getConsole().hideConsole(); + } + }); + } + + protected void printSystemProperties() { + + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "System Properties:"); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, ""); + Properties p = System.getProperties(); + Set keys = p.keySet(); + for (Object key : keys) { + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, key.toString() + ": " + p.get(key)); + } + + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); + } + + private void printClassLoaders() { + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Available Classloaders: "); + //disbaled for while + //Set loaders = PluginAppletSecurityContext.getLoaderInfo().keySet(); + //for (String loader : loaders) { + // OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, loader + "\n" + // + " codebase = " + // + PluginAppletSecurityContext.getLoaderInfo().get(loader)); + //} + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); + } + + private void printMemoryInfo() { + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----- "); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Memory Info:"); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Max Memory: " + + String.format("%1$10d", Runtime.getRuntime().maxMemory())); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Total Memory: " + + String.format("%1$10d", Runtime.getRuntime().totalMemory())); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Free Memory: " + + String.format("%1$10d", Runtime.getRuntime().freeMemory())); + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); + + } + + private void printThreadInfo() { + Map map = Thread.getAllStackTraces(); + Set keys = map.keySet(); + for (Thread key : keys) { + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Thread " + key.getId() + ": " + key.getName()); + for (StackTraceElement element : map.get(key)) { + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " " + element); + } + + } + } + + public static void main(String[] args) { + + final JavaConsole console = new JavaConsole(); + + boolean toShowConsole = false; + + for (String arg : args) { + if ("--show-console".equals(arg)) { + toShowConsole = true; + } + } + + if (toShowConsole) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + console.showConsole(); + } + }); + } + + } + + void logOutput(String s) { + stdOutText.setText(stdOutText.getText()+s+"\n"); + } + + void logError(String s) { + stdErrText.setText(stdErrText.getText()+s+"\n"); + } + + + +} diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/util/logging/LogConfig.java --- a/netx/net/sourceforge/jnlp/util/logging/LogConfig.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/logging/LogConfig.java Mon Nov 04 16:08:16 2013 +0100 @@ -156,6 +156,11 @@ void setLogToSysLog(boolean logToSysLog) { this.logToSysLog = logToSysLog; } + + boolean isLogToConsole() { + return !DeploymentConfiguration.CONSOLE_DISABLE.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)); + } diff -r 6a7915fdff8c netx/net/sourceforge/jnlp/util/logging/OutputController.java --- a/netx/net/sourceforge/jnlp/util/logging/OutputController.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Mon Nov 04 16:08:16 2013 +0100 @@ -45,16 +45,30 @@ public class OutputController { - public static enum Level { + public static enum Level { MESSAGE_ALL, // - stdout/log in all cases MESSAGE_DEBUG, // - stdout/log in verbose/debug mode WARNING_ALL, // - stdout+stderr/log in all cases (default for WARNING_DEBUG, // - stdou+stde/logrr in verbose/debug mode ERROR_ALL, // - stderr/log in all cases (default for - ERROR_DEBUG, // - stderr/log in verbose/debug mode + ERROR_DEBUG; // - stderr/log in verbose/debug mode //ERROR_DEBUG is default for Throwable //MESSAGE_VERBOSE is defautrl for String + + private static boolean isOutput(MessageWithLevel s) { + return s.level == Level.MESSAGE_ALL + || s.level == Level.MESSAGE_DEBUG + || s.level == Level.WARNING_ALL + || s.level == Level.WARNING_DEBUG; + } + + private static boolean isError(MessageWithLevel s) { + return s.level == Level.ERROR_ALL + || s.level == Level.ERROR_DEBUG + || s.level == Level.WARNING_ALL + || s.level == Level.WARNING_DEBUG; + } } private static final class MessageWithLevel { @@ -134,16 +148,10 @@ } } if (LogConfig.getLogConfig().isLogToStreams()) { - if (s.level == Level.MESSAGE_ALL - || s.level == Level.MESSAGE_DEBUG - || s.level == Level.WARNING_ALL - || s.level == Level.WARNING_DEBUG) { + if (Level.isOutput(s)) { outLog.log(message); } - if (s.level == Level.ERROR_ALL - || s.level == Level.ERROR_DEBUG - || s.level == Level.WARNING_ALL - || s.level == Level.WARNING_DEBUG) { + if (Level.isError(s)) { errLog.log(message); } } @@ -153,6 +161,14 @@ if (LogConfig.getLogConfig().isLogToSysLog()) { getSystemLog().log(message); } + if (LogConfig.getLogConfig().isLogToConsole()) { + if (Level.isOutput(s)){ + JavaConsole.getConsole().logOutput(message); + } + if (Level.isError(s)){ + JavaConsole.getConsole().logError(message); + } + } } diff -r 6a7915fdff8c plugin/icedteanp/java/sun/applet/JavaConsole.java --- a/plugin/icedteanp/java/sun/applet/JavaConsole.java Fri Nov 01 13:23:25 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,371 +0,0 @@ -/* JavaConsole -- A java console for the plugin - Copyright (C) 2009 Red Hat - -This file is part of IcedTea. - -IcedTea is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -IcedTea is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with IcedTea; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package sun.applet; - -import java.awt.Dimension; -import java.awt.Font; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.Map; -import java.util.Properties; -import java.util.Set; - -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JSplitPane; -import javax.swing.JTextArea; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; -import javax.swing.border.EmptyBorder; -import javax.swing.border.TitledBorder; - -import net.sourceforge.jnlp.config.DeploymentConfiguration; -import net.sourceforge.jnlp.runtime.JNLPRuntime; -import net.sourceforge.jnlp.util.ImageResources; -import net.sourceforge.jnlp.util.logging.OutputController; - -/** - * A simple Java console for IcedTeaPlugin - * - */ -public class JavaConsole { - - private boolean initialized = false; - - JFrame consoleWindow; - JTextArea stdErrText; - JTextArea stdOutText; - - /** - * Initialize the console - */ - public void initialize() { - - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception e) { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); - } - - final String logDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); - - consoleWindow = new JFrame("Java Console"); - consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); - - JPanel contentPanel = new JPanel(); - contentPanel.setLayout(new GridBagLayout()); - - GridBagConstraints c; - - Font monoSpace = new Font("Monospaced", Font.PLAIN, 12); - - /* std out */ - - stdOutText = new JTextArea(); - JScrollPane stdOutScrollPane = new JScrollPane(stdOutText); - stdOutScrollPane.setBorder(new TitledBorder( - new EmptyBorder(5, 5, 5, 5), "System.out")); - stdOutText.setEditable(false); - stdOutText.setFont(monoSpace); - - TextAreaUpdater stdOutUpdater = new TextAreaUpdater(new File(logDir, - PluginMain.PLUGIN_STDOUT_FILE), stdOutText); - stdOutUpdater.setName("IcedteaPlugin Console Thread(System.out)"); - - /* std err */ - - stdErrText = new JTextArea(); - JScrollPane stdErrScrollPane = new JScrollPane(stdErrText); - stdErrScrollPane.setBorder(new TitledBorder( - new EmptyBorder(5, 5, 5, 5), "System.err")); - stdErrText.setEditable(false); - stdErrText.setFont(monoSpace); - - TextAreaUpdater stdErrUpdater = new TextAreaUpdater(new File(logDir, - PluginMain.PLUGIN_STDERR_FILE), stdErrText); - stdErrUpdater.setName("IcedteaPlugin Console Thread(System.err)"); - - JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, - stdOutScrollPane, stdErrScrollPane); - - c = new GridBagConstraints(); - c.fill = GridBagConstraints.BOTH; - c.gridheight = 10; - c.weighty = 1; - - contentPanel.add(splitPane, c); - - /* buttons */ - - c = new GridBagConstraints(); - c.gridy = 10; - c.gridheight = 1; - c.weightx = 0.5; - c.weighty = 0; - - JPanel buttonPanel = new JPanel(); - contentPanel.add(buttonPanel, c); - - JButton gcButton = new JButton("Run GC"); - buttonPanel.add(gcButton); - gcButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - printMemoryInfo(); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Performing Garbage Collection...."); - System.gc(); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); - printMemoryInfo(); - } - - }); - - JButton finalizersButton = new JButton("Run Finalizers"); - buttonPanel.add(finalizersButton); - finalizersButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - printMemoryInfo(); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Running finalization...."); - Runtime.getRuntime().runFinalization(); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); - printMemoryInfo(); - } - }); - - JButton memoryButton = new JButton("Memory Info"); - buttonPanel.add(memoryButton); - memoryButton.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - printMemoryInfo(); - } - - }); - - JButton systemPropertiesButton = new JButton("System Properties"); - buttonPanel.add(systemPropertiesButton); - systemPropertiesButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - printSystemProperties(); - } - - }); - - JButton classloadersButton = new JButton("Classloaders"); - buttonPanel.add(classloadersButton); - classloadersButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - printClassLoaders(); - } - - }); - - JButton threadListButton = new JButton("Thread List"); - buttonPanel.add(threadListButton); - threadListButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - printThreadInfo(); - } - - }); - - JButton closeButton = new JButton("Close"); - buttonPanel.add(closeButton); - closeButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - hideConsole(); - } - }); - } - }); - - stdOutUpdater.start(); - stdErrUpdater.start(); - - consoleWindow.add(contentPanel); - consoleWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); - consoleWindow.pack(); - consoleWindow.setSize(new Dimension(900, 600)); - consoleWindow.setMinimumSize(new Dimension(900, 300)); - - initialized = true; - - splitPane.setDividerLocation(0.5); - splitPane.setResizeWeight(0.5); - } - - public void showConsole() { - - if (!initialized) { - initialize(); - } - - consoleWindow.setVisible(true); - } - - public void hideConsole() { - consoleWindow.setVisible(false); - } - - protected void printSystemProperties() { - - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "System Properties:"); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, ""); - Properties p = System.getProperties(); - Set keys = p.keySet(); - for (Object key : keys) { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, key.toString() + ": " + p.get(key)); - } - - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); - } - - private void printClassLoaders() { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Available Classloaders: "); - Set loaders = PluginAppletSecurityContext.getLoaderInfo().keySet(); - for (String loader : loaders) { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, loader + "\n" - + " codebase = " - + PluginAppletSecurityContext.getLoaderInfo().get(loader)); - } - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); - } - - private void printMemoryInfo() { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----- "); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Memory Info:"); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Max Memory: " - + String.format("%1$10d", Runtime.getRuntime().maxMemory())); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Total Memory: " - + String.format("%1$10d", Runtime.getRuntime().totalMemory())); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " Free Memory: " - + String.format("%1$10d", Runtime.getRuntime().freeMemory())); - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " ----"); - - } - - private void printThreadInfo() { - Map map = Thread.getAllStackTraces(); - Set keys = map.keySet(); - for (Thread key : keys) { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Thread " + key.getId() + ": " + key.getName()); - for (StackTraceElement element : map.get(key)) { - OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, " " + element); - } - - } - } - - public static void main(String[] args) { - - final JavaConsole console = new JavaConsole(); - - boolean toShowConsole = false; - - for (String arg : args) { - if ("--show-console".equals(arg)) { - toShowConsole = true; - } - } - - if (toShowConsole) { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - console.showConsole(); - } - }); - } - - } - - /** - * This thread updates the text on a JTextArea based on the text in a file - */ - class TextAreaUpdater extends Thread { - - File fileToRead; - JTextArea outputTextArea; - - public TextAreaUpdater(File file, JTextArea textArea) { - fileToRead = file; - outputTextArea = textArea; - setDaemon(true); - } - - public void run() { - - try { - BufferedReader reader = new BufferedReader(new FileReader( - fileToRead)); - String line; - while (true) { - while ((line = reader.readLine()) != null) { - outputTextArea.insert(line + "\n", outputTextArea - .getDocument().getLength()); - outputTextArea.setCaretPosition(outputTextArea - .getText().length()); - } - Thread.sleep(1000); - } - - } catch (FileNotFoundException e) { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); - } catch (IOException e) { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); - } catch (InterruptedException e) { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); - Thread.currentThread().interrupt(); - } - - } - - } - -} diff -r 6a7915fdff8c plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Fri Nov 01 13:23:25 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Mon Nov 04 16:08:16 2013 +0100 @@ -235,7 +235,7 @@ private ClassLoader liveconnectLoader = ClassLoader.getSystemClassLoader(); int identifier = 0; - public static PluginStreamHandler streamhandler; + private static PluginStreamHandler streamhandler; long startTime = 0; @@ -321,6 +321,10 @@ streamhandler = sh; } + public static PluginStreamHandler getStreamhandler() { + return streamhandler; + } + public static Map getLoaderInfo() { Hashtable map = new Hashtable(); diff -r 6a7915fdff8c plugin/icedteanp/java/sun/applet/PluginMain.java --- a/plugin/icedteanp/java/sun/applet/PluginMain.java Fri Nov 01 13:23:25 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java Mon Nov 04 16:08:16 2013 +0100 @@ -88,9 +88,6 @@ * The main entry point into PluginAppletViewer. */ public class PluginMain { - // the files where stdout/stderr are sent to - public static final String PLUGIN_STDERR_FILE = "java.stderr"; - public static final String PLUGIN_STDOUT_FILE = "java.stdout"; // This is used in init(). Getting rid of this is desirable but depends // on whether the property that uses it is necessary/standard. diff -r 6a7915fdff8c plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Fri Nov 01 13:23:25 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Mon Nov 04 16:08:16 2013 +0100 @@ -44,11 +44,11 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.net.MalformedURLException; import java.nio.charset.Charset; import javax.swing.SwingUtilities; import net.sourceforge.jnlp.runtime.JNLPRuntime; +import net.sourceforge.jnlp.util.logging.JavaConsole; import net.sourceforge.jnlp.util.logging.OutputController; public class PluginStreamHandler { @@ -58,7 +58,6 @@ private RequestQueue queue = new RequestQueue(); - private JavaConsole console = new JavaConsole(); private PluginMessageConsumer consumer; private volatile boolean shuttingDown = false; @@ -242,9 +241,9 @@ private void handlePluginMessage(String message) { if (message.equals("plugin showconsole")) { - showConsole(); + JavaConsole.getConsole().showConsoleLater(); } else if (message.equals("plugin hideconsole")) { - hideConsole(); + JavaConsole.getConsole().hideConsoleLater(); } else { // else this is something that was specifically requested finishCallRequest(message); @@ -374,20 +373,4 @@ return; } - - private void showConsole() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - console.showConsole(); - } - }); - } - - private void hideConsole() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - console.hideConsole(); - } - }); - } } From aazores at redhat.com Mon Nov 4 07:22:06 2013 From: aazores at redhat.com (Andrew Azores) Date: Mon, 04 Nov 2013 10:22:06 -0500 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager Message-ID: <5277BB9E.2010607@redhat.com> Hi, Calling cl.getPermissions(null) will potentially/usually result in an NPE being thrown and caught/printed within getPermissions, then rethrown again. This is not very helpful for producing debugging output. I don't see any easy way to do what this was intended to do so it's just removed. ChangeLog: * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: (addPermission) removed debug print statements Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: JNLPSecurityManager-bad-debug.patch Type: text/x-patch Size: 1177 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131104/3c1f198a/JNLPSecurityManager-bad-debug.patch From aazores at redhat.com Mon Nov 4 12:19:01 2013 From: aazores at redhat.com (Andrew Azores) Date: Mon, 04 Nov 2013 15:19:01 -0500 Subject: [rfc][icedtea-web] Mixed-signing applet permissions (PR1592) Message-ID: <52780135.4050202@redhat.com> Hi, This patch allows signed JARs within mixed-signing applets to be granted full permissions, while unsigned JARs in the same applets retain sandbox permissions only. The user is warned/prompted for the okay to proceed when this occurs. I was not able to create a working reproducer test for this due to the following error: java.lang.SecurityException: class "MixedSigningApplet"'s signer information does not match signer information of other classes in the same package I'd need to have two different packages in use to get around this, but AFAIK we don't have a way to support this with our reproducer system. Also, even if I had that working, the SecurityDialogs.showNotAllSignedWarningDialog still doesn't really respect the Extended Applet Security settings and will appear to prompt the user even if security is set to lowest. This would break the automation of the reproducer test and make it fairly useless anyway. The patch is split in two. The first one does the actual work. The second patch just removes an old unused local variable and an associated enclosing try/catch. This indentation change creates hard to read diff output, so I included this separately for ease of review. They need to be applied in order. Changelog: * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources) grant full permissions to signed JARs of mixed-signing applets Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: PR1592-1.patch Type: text/x-patch Size: 2681 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131104/7201d2b9/PR1592-1.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: PR1592-2.patch Type: text/x-patch Size: 5686 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131104/7201d2b9/PR1592-2.patch From omajid at redhat.com Mon Nov 4 14:20:07 2013 From: omajid at redhat.com (Omair Majid) Date: Mon, 4 Nov 2013 17:20:07 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <5277B8FA.70902@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <5277B8FA.70902@redhat.com> Message-ID: <20131104222006.GH32439@redhat.com> Hi, Comments in-line below. * Jiri Vanek [2013-11-04 10:10]: > On 11/04/2013 12:29 PM, Jiri Vanek wrote: > > Imho "debug" should have nothing to do with "redirecting" also it > > was used wrongly, and made consoel even less usefull... One of the main motivation behind the console is to see stdout/stderr of applets (especially on platforms where stdout/stderr is not visible by default). > +++ b/NEWS Mon Nov 04 16:08:16 2013 +0100 > +* Enabled and enhanced javaconsole for plugin and javaws A slightly clearer to read version might be: "A console for debugging plugin and javaws" > +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 16:08:16 2013 +0100 > @@ -64,14 +64,11 @@ > public static final String CONSOLE_HIDE = "HIDE"; > public static final String CONSOLE_SHOW = "SHOW"; > public static final String CONSOLE_DISABLE = "DISABLE"; > + public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; > + public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; FWIW, only SHOW, HIDE and DISABLE are documented for Oracle's proprietary implementation. If you are going to add more, they should be documented somewhere. > @@ -160,6 +157,8 @@ > * Console > */ > public static final String KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode"; > + //search for values above CONSOLE_* Please put the comment before the variable. Adding it to the javadoc should be fine too. > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Nov 04 16:08:16 2013 +0100 > +DPShowPluginOnly=Show on startup, only for plugin "Show on plugin startup" > +DPShowJavawsOnly=Show on startup, only for javaws "Show on javaws startup" > +DPJavaConsoleDisabledHint=Sorry, java console is disabled, turn it to hide, or show in itw-settings Sorry, I am having trouble understanding this description. Maybe something like this: "Java console is disabled. Use itweb-settings to configure it to show on startup." > +SPLASHmainL2 = You can get some more information by checking console, or even turn debug on in itw-settings "Additional information may be available in the console or if debugging is enabled" > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Nov 04 16:08:16 2013 +0100 > @@ -196,6 +193,16 @@ > + if (DeploymentConfiguration.CONSOLE_SHOW.equals( > + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals( > + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + && !isApplication) > + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals( > + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + && isApplication)) { > + JavaConsole.getConsole().showConsoleLater(); > + } Is there a better place to put this code? > +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Mon Nov 04 16:08:16 2013 +0100 > @@ -166,9 +171,9 @@ > GroupLayout jPanel2Layout = new GroupLayout(topPanel); > topPanel.setLayout(jPanel2Layout); > jPanel2Layout.setHorizontalGroup( > - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); > + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addContainerGap().addComponent(consoleButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); > jPanel2Layout.setVerticalGroup( > - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(closeAndCopyButton)).addContainerGap())); > + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(consoleButton).addComponent(closeAndCopyButton)).addContainerGap())); > > exceptionLabel.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N > exceptionLabel.setHorizontalAlignment(SwingConstants.CENTER); This is really, really hard to read. The convention, when writing trees like this, is to do something like (code from another project): GroupLayout groupLayout = new GroupLayout(getContentPane()); groupLayout.setHorizontalGroup( groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap() .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) .addComponent(closeButton, GroupLayout.PREFERRED_SIZE, 92, GroupLayout.PREFERRED_SIZE) .addComponent(panel, GroupLayout.DEFAULT_SIZE, 424, Short.MAX_VALUE)) .addContainerGap()) ); Basically, use indentation to 'show' the tree. Parallel branches go in the same indentation level. > +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Mon Nov 04 16:08:16 2013 +0100 There's lots of non-localized strings in this file. I am pointing them out now, but feel free to localize them in a separate patch. > + Copyright (C) 2009 Red Hat Please update the copyright. > + * A simple Java console for IcedTeaPlugin Please update the comment. > +public class JavaConsole { > + * Initialize the console > + */ > + private void initialize() { > + > + try { > + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); > + } catch (Exception e) { > + OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); > + } This seems like the wrong place to set the look and feel. Isn't the look and feel set up once in Launcher? > + final String logDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); Unused variable? Lots of missing localizations: > + consoleWindow = new JDialog((JFrame)null, "Java Console"); > + JButton gcButton = new JButton("Run GC"); > + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Performing Garbage Collection...."); > + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); > + JButton finalizersButton = new JButton("Run Finalizers"); > + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Running finalization...."); > + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); > + JButton memoryButton = new JButton("Memory Info"); > + JButton systemPropertiesButton = new JButton("System Properties"); > + JButton classloadersButton = new JButton("Classloaders"); > + JButton threadListButton = new JButton("Thread List"); > + JButton closeButton = new JButton("Close"); > + public void showConsole() { > + showConsole(false); > + } > + > + public void showConsole(boolean b) { > + consoleWindow.setModal(b); > + consoleWindow.setVisible(true); > + } > + > + public void hideConsole() { > + consoleWindow.setModal(false); > + consoleWindow.setVisible(false); > + } > + > + public void showConsoleLater() { > + showConsoleLater(false); > + } > + public void showConsoleLater(final boolean b) { > + SwingUtilities.invokeLater(new Runnable() { > + public void run() { > + JavaConsole.getConsole().showConsole(b); > + } > + }); > + } > + > + public void hideConsoleLater() { > + SwingUtilities.invokeLater(new Runnable() { > + public void run() { > + JavaConsole.getConsole().hideConsole(); > + } > + }); > + } This seems overly complex. Can you make it non-modal? And just use showConsole() and hideConsole() ? > +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Mon Nov 04 16:08:16 2013 +0100 > } > + if (LogConfig.getLogConfig().isLogToConsole()) { > + if (Level.isOutput(s)){ > + JavaConsole.getConsole().logOutput(message); > + } > + if (Level.isError(s)){ > + JavaConsole.getConsole().logError(message); > + } > + } Cool, but this will not capture an applet's stdout/stderr, will it? Thanks, Omair From jvanek at redhat.com Tue Nov 5 00:44:33 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 09:44:33 +0100 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager In-Reply-To: <5277BB9E.2010607@redhat.com> References: <5277BB9E.2010607@redhat.com> Message-ID: <5278AFF1.4040600@redhat.com> On 11/04/2013 04:22 PM, Andrew Azores wrote: > Hi, > > Calling cl.getPermissions(null) will potentially/usually result in an NPE being thrown and caught/printed within getPermissions, then rethrown again. This is not very helpful for producing debugging output. I don't see any easy way to do what this was intended to do so it's just removed. > hmm, cl.getPermission will lead to npe always, when security do exists: protected PermissionCollection getPermissions(CodeSource cs) { try { Permissions result = new Permissions(); if (security != null) { PermissionCollection permissions = security.getSandBoxPermissions(); if (cs == null) { throw new NullPointerException("Code source was null");} }catch.. just rethrow... } So I would say, that instead of removing the messages, somethinkg like: > if (JNLPRuntime.isDebug()) { if (!cl.isSecurityNull()}{ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Trying to get permission for null source to environment with security, its wrong "); }else { //conntinue as before > if (cl.getPermissions(null).implies(perm)){ } Maybe you can check another NPE which can occur, but it should be not necessary. Also I have suspicions that this can hide more serious bug: - why passing null to getPemrmission - why if (cs == null) { throw new NullPointerException("Code source was null"); } if security is - and esepcially why // Class from host X should be allowed to connect to host X if (cs.getLocation() != null && cs.getLocation().getHost().length() > 0) result.add(new SocketPermission(cs.getLocation().getHost(), "connect, accept")); when is not? Thanx for tickling on it. J. > ChangeLog: > * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: (addPermission) removed debug print statements > > Thanks, > > -- > Andrew A > > > JNLPSecurityManager-bad-debug.patch > > > diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java > @@ -313,16 +313,8 @@ > */ > private void addPermission(Permission perm) { > if (JNLPRuntime.getApplication().getClassLoader() instanceof JNLPClassLoader) { > - > JNLPClassLoader cl = (JNLPClassLoader) JNLPRuntime.getApplication().getClassLoader(); > cl.addPermission(perm); > - if (JNLPRuntime.isDebug()) { > - if (cl.getPermissions(null).implies(perm)){ > - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Added permission: " + perm.toString()); > - } else { > - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Unable to add permission: " + perm.toString()); > - } > - } > } else { > OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Unable to add permission: " + perm + ", classloader not JNLP."); > } From jvanek at redhat.com Tue Nov 5 02:01:45 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 11:01:45 +0100 Subject: [icedtea-web] depending on pkcs11 Message-ID: <5278C209.3020006@redhat.com> see http://www.bouncycastle.org/devmailarchive/msg13383.html thread, may affect itw soon.. or "soon" :) J. From ptisnovs at icedtea.classpath.org Tue Nov 5 01:56:46 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 05 Nov 2013 09:56:46 +0000 Subject: /hg/gfx-test: Another six new tests added into BitBltAffineQuadr... Message-ID: changeset 372bdbeb35f2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=372bdbeb35f2 author: Pavel Tisnovsky date: Tue Nov 05 11:00:40 2013 +0100 Another six new tests added into BitBltAffineQuadrantRotateTransformOp.java diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java | 84 ++++++++++ 2 files changed, 89 insertions(+), 0 deletions(-) diffs (106 lines): diff -r 937aab54cacc -r 372bdbeb35f2 ChangeLog --- a/ChangeLog Mon Nov 04 09:26:08 2013 +0100 +++ b/ChangeLog Tue Nov 05 11:00:40 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-05 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: + Another six new tests added into BitBltAffineQuadrantRotateTransformOp.java + 2013-11-04 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: diff -r 937aab54cacc -r 372bdbeb35f2 src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Mon Nov 04 09:26:08 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Tue Nov 05 11:00:40 2013 +0100 @@ -893,6 +893,90 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBRotateTransformation2Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, RotateTransformationNearest1Op[2]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBRotateTransformation3Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, RotateTransformationNearest1Op[3]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBRotateTransformation4Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, RotateTransformationNearest1Op[4]); + } + + /** + Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBRotateTransformation5Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, RotateTransformationNearest1Op[5]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation0Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[0]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation1Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[1]); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Tue Nov 5 01:58:52 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 05 Nov 2013 09:58:52 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset 0101ff598e7e in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=0101ff598e7e author: Pavel Tisnovsky date: Tue Nov 05 11:02:46 2013 +0100 Added new testGetResourcePositiveTest case into AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 6 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 61 +++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r 328e46cec04a -r 0101ff598e7e ChangeLog --- a/ChangeLog Mon Nov 04 09:30:38 2013 +0100 +++ b/ChangeLog Tue Nov 05 11:02:46 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-05 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added new testGetResourcePositiveTest case into + AbstractScriptEngineClassTest.java. + 2013-11-04 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r 328e46cec04a -r 0101ff598e7e src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Nov 04 09:30:38 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Tue Nov 05 11:02:46 2013 +0100 @@ -1715,6 +1715,67 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.abstractScriptEngineClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.AbstractScriptEngine */ @SuppressWarnings("cast") From jvanek at redhat.com Tue Nov 5 05:09:46 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 14:09:46 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131104222006.GH32439@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <5277B8FA.70902@redhat.com> <20131104222006.GH32439@redhat.com> Message-ID: <5278EE1A.8060604@redhat.com> On 11/04/2013 11:20 PM, Omair Majid wrote: > Hi, > > Comments in-line below. Hello, thanx for them! You did not commented 1.4 version - this was not new version of patch which obsolated the 1.4 but completely separate patch. > > * Jiri Vanek [2013-11-04 10:10]: >> On 11/04/2013 12:29 PM, Jiri Vanek wrote: > >>> Imho "debug" should have nothing to do with "redirecting" also it >>> was used wrongly, and made consoel even less usefull... > > One of the main motivation behind the console is to see stdout/stderr of > applets (especially on platforms where stdout/stderr is not visible by > default). Yes, and exactly this it was never doing. I'm fully aware if it, and I hope this patch i leading to it. Also I have an intention to add also runtime plugin messages and also c++ init messages before java side is even initialised (the initial Console impl have not even thought about it) > >> +++ b/NEWS Mon Nov 04 16:08:16 2013 +0100 > >> +* Enabled and enhanced javaconsole for plugin and javaws > > A slightly clearer to read version might be: > > "A console for debugging plugin and javaws" I'm happy to do so > >> +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 16:08:16 2013 +0100 > >> @@ -64,14 +64,11 @@ > >> public static final String CONSOLE_HIDE = "HIDE"; >> public static final String CONSOLE_SHOW = "SHOW"; >> public static final String CONSOLE_DISABLE = "DISABLE"; >> + public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; >> + public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; > > FWIW, only SHOW, HIDE and DISABLE are documented for Oracle's > proprietary implementation. If you are going to add more, they should > be documented somewhere. probably in wiki in 1.5 release notes, so it have time. However I think they are quite self documenting > >> @@ -160,6 +157,8 @@ >> * Console >> */ >> public static final String KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode"; >> + //search for values above CONSOLE_* > > Please put the comment before the variable. Adding it to the javadoc > should be fine too. happy to full-fill your wish :) > >> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Nov 04 16:08:16 2013 +0100 > >> +DPShowPluginOnly=Show on startup, only for plugin > > "Show on plugin startup" > >> +DPShowJavawsOnly=Show on startup, only for javaws > > "Show on javaws startup" > >> +DPJavaConsoleDisabledHint=Sorry, java console is disabled, turn it to hide, or show in itw-settings > > Sorry, I am having trouble understanding this description. Maybe > something like this: > > "Java console is disabled. Use itweb-settings to configure it to show on startup." nearly - Java console is disabled. Use itweb-settings to configure it out of disabled to any show or hide value. - as hide is ok here to (console showed on demand) > >> +SPLASHmainL2 = You can get some more information by checking console, or even turn debug on in itw-settings > > "Additional information may be available in the console or if debugging > is enabled" - nearly - Additional information may be available in the console or logs. Even more information can be provided if debugging is enabled Sure! Sorry for my English:( > >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Mon Nov 04 16:08:16 2013 +0100 > >> @@ -196,6 +193,16 @@ > >> + if (DeploymentConfiguration.CONSOLE_SHOW.equals( >> + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals( >> + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> +&& !isApplication) >> + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals( >> + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> +&& isApplication)) { >> + JavaConsole.getConsole().showConsoleLater(); >> + } > > Is there a better place to put this code? I doubt. I had it in several palces at at hte end I finished here. The creation of console is depending on JNLPruntime done, especially on config.load. On the other side it should eb enabled as soon as possible. And I would like to avoid more blind copies of config - http://icedtea.classpath.org/hg/icedtea-web/file/a817bb6d12a6/netx/net/sourceforge/jnlp/util/logging/LogConfig.java#l67 Personally I would like to have it "nowhere" and initialize it lazily. However it is not(?) possible while config is handled as wrong as it is. (or maybe whole JNLPruntime). It is something between singelton x static x normal code, and all this "if initialized" stuff really annoys me. On the other side its maybe better then JNLPruntime.getRuntime(){if runtime == null runtime=newe Runtime(); return runtime} and same for config :)) However I moved the "if" logic to console and added headless condition. > >> +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Mon Nov 04 16:08:16 2013 +0100 > >> @@ -166,9 +171,9 @@ >> GroupLayout jPanel2Layout = new GroupLayout(topPanel); >> topPanel.setLayout(jPanel2Layout); >> jPanel2Layout.setHorizontalGroup( >> - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); >> + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addContainerGap().addComponent(consoleButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); >> jPanel2Layout.setVerticalGroup( >> - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(closeAndCopyButton)).addContainerGap())); >> + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(consoleButton).addComponent(closeAndCopyButton)).addContainerGap())); >> >> exceptionLabel.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N >> exceptionLabel.setHorizontalAlignment(SwingConstants.CENTER); > > This is really, really hard to read. The convention, when writing trees > like this, is to do something like (code from another project): > > GroupLayout groupLayout = new GroupLayout(getContentPane()); > groupLayout.setHorizontalGroup( > groupLayout.createParallelGroup(Alignment.TRAILING) > .addGroup(groupLayout.createSequentialGroup() > .addContainerGap() > .addGroup(groupLayout.createParallelGroup(Alignment.TRAILING) > .addComponent(closeButton, GroupLayout.PREFERRED_SIZE, 92, GroupLayout.PREFERRED_SIZE) > .addComponent(panel, GroupLayout.DEFAULT_SIZE, 424, Short.MAX_VALUE)) > .addContainerGap()) > ); > > > Basically, use indentation to 'show' the tree. Parallel branches go in > the same indentation level. sure > >> +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Mon Nov 04 16:08:16 2013 +0100 > > There's lots of non-localized strings in this file. I am pointing them > out now, but feel free to localize them in a separate patch. > >> + Copyright (C) 2009 Red Hat > > Please update the copyright. > done >> + * A simple Java console for IcedTeaPlugin > > Please update the comment. A simple Java console for IcedTeaPlugin and JavaWS (? is thsi what you wonted? there wos not so much chnages as it appeared) > >> +public class JavaConsole { > >> + * Initialize the console >> + */ >> + private void initialize() { >> + >> + try { >> + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); >> + } catch (Exception e) { >> + OutputController.getLogger().log(OutputController.Level.ERROR_ALL,e); >> + } > > This seems like the wrong place to set the look and feel. Isn't the look > and feel set up once in Launcher? You are whipping me for somebody else code :) This was hg move JavaConsole. Tbh i do not know:( Anyway I'm going to work on console appearance so I would let this for that time. > >> + final String logDir = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); > > Unused variable? correct, my apologise > > Lots of missing localizations: > Again... whipped for somebody else work :( But better do it now then later /me had no intention to i18nthis :( /me ashamed for laziness ..at the end..done >> + consoleWindow = new JDialog((JFrame)null, "Java Console"); > >> + JButton gcButton = new JButton("Run GC"); > >> + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Performing Garbage Collection...."); > >> + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); > >> + JButton finalizersButton = new JButton("Run Finalizers"); > >> + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Running finalization...."); > >> + OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Done"); > >> + JButton memoryButton = new JButton("Memory Info"); > >> + JButton systemPropertiesButton = new JButton("System Properties"); > >> + JButton classloadersButton = new JButton("Classloaders"); > >> + JButton threadListButton = new JButton("Thread List"); > >> + JButton closeButton = new JButton("Close"); > >> + public void showConsole() { >> + showConsole(false); >> + } >> + >> + public void showConsole(boolean b) { >> + consoleWindow.setModal(b); >> + consoleWindow.setVisible(true); >> + } >> + >> + public void hideConsole() { >> + consoleWindow.setModal(false); >> + consoleWindow.setVisible(false); >> + } >> + >> + public void showConsoleLater() { >> + showConsoleLater(false); >> + } >> + public void showConsoleLater(final boolean b) { >> + SwingUtilities.invokeLater(new Runnable() { >> + public void run() { >> + JavaConsole.getConsole().showConsole(b); >> + } >> + }); >> + } >> + >> + public void hideConsoleLater() { >> + SwingUtilities.invokeLater(new Runnable() { >> + public void run() { >> + JavaConsole.getConsole().hideConsole(); >> + } >> + }); >> + } > > This seems overly complex. Can you make it non-modal? And just > use showConsole() and hideConsole() ? no:( The reason Why I added modality possibility, was because of JEditorPaneBasedExceptionDialog. The JEditorPaneBasedExceptionDialog is (have to be) already modal, so if the jconsole is NOT modal, then it is shown UNDER the JEditorPaneBasedExceptionDialog. And is not accessible. > >> +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Mon Nov 04 16:08:16 2013 +0100 >> } >> + if (LogConfig.getLogConfig().isLogToConsole()) { >> + if (Level.isOutput(s)){ >> + JavaConsole.getConsole().logOutput(message); >> + } >> + if (Level.isError(s)){ >> + JavaConsole.getConsole().logError(message); >> + } >> + } > > Cool, but this will not capture an applet's stdout/stderr, will it? not yet. But it never did. But it *must* and is on todo:) My current in mind design: - before pipes are ready and jvm initialised (already existing switch in plugin) all "in future by pipes to console messages" are written to tmp, to 600 file. (or to two stdout/err) - once jvm is initialised this file is closed, and all plugin messages are "logged" through pipe to javaside. Javaside is then correctly logging this messages as all others - console, on show, load the "tmp, to 600 file(s)". before the actuall lines, maybe to separate textarea(s) wth explanation that it is pre-java started output - the "tmp, to 600 file(s)." is deleted on plugin's shutdown Two consequences - if this will work, then it may cut the decission issues about the system and file logs - if it will not work, then, on the other hand, the logging decision can help here - the console can use "already existing plugin log(s) - whatever it will be > > Thanks, > Omair Thanx on my side (as always :) ) J. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: resurectedConsoleForHead2 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131105/6ee2ccf3/resurectedConsoleForHead2-0001.ksh From omajid at redhat.com Tue Nov 5 07:12:03 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 5 Nov 2013 10:12:03 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <5278EE1A.8060604@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <5277B8FA.70902@redhat.com> <20131104222006.GH32439@redhat.com> <5278EE1A.8060604@redhat.com> Message-ID: <20131105151202.GA1592@redhat.com> * Jiri Vanek [2013-11-05 08:03]: > On 11/04/2013 11:20 PM, Omair Majid wrote: > >Comments in-line below. > > You did not commented 1.4 version - this was not new version of patch > which obsolated the 1.4 but completely separate patch. Ah. I see. Is a significant change like this suitable for a 1.4.X update? I would imagine the next 1.4 release would be bugfix only. Can we circle back to the 1.4 patch after HEAD is sorted out? > >* Jiri Vanek [2013-11-04 10:10]: > >>On 11/04/2013 12:29 PM, Jiri Vanek wrote: > > > >>>Imho "debug" should have nothing to do with "redirecting" also it > >>>was used wrongly, and made consoel even less usefull... > > > >One of the main motivation behind the console is to see stdout/stderr of > >applets (especially on platforms where stdout/stderr is not visible by > >default). > > Yes, and exactly this it was never doing. Really? I am sure this was working (at one point). > I'm fully aware if it, and I hope this patch i leading to it. Also I > have an intention to add also runtime plugin messages and also c++ > init messages before java side is even initialised (the initial > Console impl have not even thought about it) That's because the console is meant for applet developers. Not sure they would care what the plugin itself is doing, as long as the applet is working (and they can see any debugging output they write). > >>+++ b/NEWS Mon Nov 04 16:08:16 2013 +0100 > > > >>+* Enabled and enhanced javaconsole for plugin and javaws > > > >A slightly clearer to read version might be: > > > >"A console for debugging plugin and javaws" > > I'm happy to do so > > > >>+++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 16:08:16 2013 +0100 > > > >>@@ -64,14 +64,11 @@ > > > >> public static final String CONSOLE_HIDE = "HIDE"; > >> public static final String CONSOLE_SHOW = "SHOW"; > >> public static final String CONSOLE_DISABLE = "DISABLE"; > >>+ public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; > >>+ public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; > > > >FWIW, only SHOW, HIDE and DISABLE are documented for Oracle's > >proprietary implementation. If you are going to add more, they should > >be documented somewhere. > > probably in wiki in 1.5 release notes, so it have time. Please consider adding them as soon as the patch is pushed. Otherwise we are likely to forget this. > However I think they are quite self documenting The documentation is for users. The code is self documenting, but I don't think it's fair to expect users to read the code. > >"Java console is disabled. Use itweb-settings to configure it to show on startup." > nearly - Java console is disabled. Use itweb-settings to configure it out of disabled to any show or hide value. > > - as hide is ok here to (console showed on demand) When is 'on demand'? I had to read it a few times before this version made sense to me (and I am familiar with the implementation). Maybe leave it not-exactly right to make it more obvious to users? > >This seems like the wrong place to set the look and feel. Isn't the look > >and feel set up once in Launcher? > > You are whipping me for somebody else code :) This was hg move JavaConsole. Just so we can both laugh at the joke, this is my code :D (And yes, looking back at it, there's quite a few things I should have done better). Also, there's no whipping intended here.... > Tbh i do not know:( Anyway I'm going to work on console appearance so I would let this for that time. I had it on my TODO list to i18n this correctly, but since you volunteered to fix this up, I thought I should point it out. As I said, you can fix this later :) > > > >>+++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Mon Nov 04 16:08:16 2013 +0100 > >> } > >>+ if (LogConfig.getLogConfig().isLogToConsole()) { > >>+ if (Level.isOutput(s)){ > >>+ JavaConsole.getConsole().logOutput(message); > >>+ } > >>+ if (Level.isError(s)){ > >>+ JavaConsole.getConsole().logError(message); > >>+ } > >>+ } > > > >Cool, but this will not capture an applet's stdout/stderr, will it? > > not yet. But it never did. Are you sure about this? JNLPRuntime would redirect streams to java.stdout/java.stderr (we definitely know this was working) and the console would read the file (see the TextAreaUpdater class) to display stdout/stderr. > But it *must* and is on todo:) > > My current in mind design: Please keep in mind that in mind that the main purpose of the Java Console is to display System.out and System.err [1]. Additional information (especially exceptions) are probably okay, but may not be relevant to a developer developing a custom applet. > +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Tue Nov 05 14:06:25 2013 +0100 > + /** > + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", > + * then console is not visible by default, but may be shown Out of curiosity, how will it be shown? On an exception only? > */ > public static final String CONSOLE_HIDE = "HIDE"; > +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Tue Nov 05 14:06:25 2013 +0100 > + public static boolean canShowOnStartup(boolean isApplication) { Since the only place this is called is from JNLPRuntime, maybe you can pass in the configuration object and avoid the repeated JNLPRuntime.getConfiguration() calls? > + return DeploymentConfiguration.CONSOLE_SHOW.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + && !isApplication) > + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) > + && isApplication); > + } Thanks, Omair [1] http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/console.html From aazores at redhat.com Tue Nov 5 07:33:50 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 05 Nov 2013 10:33:50 -0500 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager In-Reply-To: <5278AFF1.4040600@redhat.com> References: <5277BB9E.2010607@redhat.com> <5278AFF1.4040600@redhat.com> Message-ID: <52790FDE.1040809@redhat.com> On 11/05/2013 03:44 AM, Jiri Vanek wrote: > So I would say, that instead of removing the messages, somethinkg like: > > > if (JNLPRuntime.isDebug()) { > if (!cl.isSecurityNull()}{ > OutputController.getLogger().log(OutputController.Level.ERROR_ALL, > "Trying to get permission for null source to environment with > security, its wrong "); > }else { //conntinue as before > > if (cl.getPermissions(null).implies(perm)){ > } Ehh, if these debug messages are important I guess. The method now contains significantly more logic for dealing with if/when/how to produce debug output than actually doing its job :) and what if "security" appears in between checking if it's null and calling getPermissions(null)? Then we can still end up with an NPE being thrown that would never have occurred if we weren't in debug mode. I don't know if that situation would ever arise right now, where we would have a thread calling addPermission on the security manager while the classloader is still in the process of being initialized by another thread. But there's a small chance of that happening anyway. > Also I have suspicions that this can hide more serious bug: > - why passing null to getPemrmission I have no idea, I'm guessing this was written expecting getPermissions to just skip that block of code rather than throwing an NPE. If it just skipped that block of code rather than throwing an NPE then the debug statement actually makes some sense, since calling addPermission here adds it to the classloader's runtimePermissions field. getPermissions' result would include permissions from that field if the NPE was not thrown. > - why if (cs == null) { throw new > NullPointerException("Code source was null"); } if > security is Well the rest of the code in that block is pretty dependent on having that CodeSource... > - and esepcially why // Class from host X should be allowed to > connect to host X > if (cs.getLocation() != null && > cs.getLocation().getHost().length() > 0) > result.add(new > SocketPermission(cs.getLocation().getHost(), > "connect, accept")); > when is not? I don't know, I'm assuming this is just here to ensure that that permission is included in the result whether or not "security" exists. If security exists I'd imagine this permission would be included in the result collection by this point, but if security is null then it probably won't be (unless somehow it was a user-granted permission). Allowing permission to accept local socket connections seems fine to me. Thanks, -- Andrew A From jvanek at redhat.com Tue Nov 5 07:48:34 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 16:48:34 +0100 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager In-Reply-To: <52790FDE.1040809@redhat.com> References: <5277BB9E.2010607@redhat.com> <5278AFF1.4040600@redhat.com> <52790FDE.1040809@redhat.com> Message-ID: <52791352.9040205@redhat.com> On 11/05/2013 04:33 PM, Andrew Azores wrote: > On 11/05/2013 03:44 AM, Jiri Vanek wrote: >> So I would say, that instead of removing the messages, somethinkg like: >> >> > if (JNLPRuntime.isDebug()) { >> if (!cl.isSecurityNull()}{ >> OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Trying to get permission for null source to environment with security, its wrong "); >> }else { //conntinue as before >> > if (cl.getPermissions(null).implies(perm)){ >> } > > Ehh, if these debug messages are important I guess. The method now contains significantly more logic for dealing with if/when/how to produce debug output than actually doing its job :) and what if "security" appears in between checking if it's null and calling getPermissions(null)? Then we can still end up with an NPE being thrown that would never have occurred if we weren't in debug mode. I don't know if that situation would ever arise right now, where we would have a thread calling addPermission on the security manager while the classloader is still in the process of being initialized by another thread. But there's a small chance of that happening anyway. Then I would maybe add try/cacth npe or anyE > >> Also I have suspicions that this can hide more serious bug: >> - why passing null to getPemrmission > > I have no idea, I'm guessing this was written expecting getPermissions to just skip that block of code rather than throwing an NPE. If it just skipped that block of code rather than throwing an NPE then the debug statement actually makes some sense, since calling addPermission here adds it to the classloader's runtimePermissions field. getPermissions' result would include permissions from that field if the NPE was not thrown. > >> - why if (cs == null) { throw new NullPointerException("Code source was null"); } if security is > > Well the rest of the code in that block is pretty dependent on having that CodeSource... > >> - and esepcially why // Class from host X should be allowed to connect to host X >> if (cs.getLocation() != null && cs.getLocation().getHost().length() > 0) >> result.add(new SocketPermission(cs.getLocation().getHost(), >> "connect, accept")); >> when is not? > > I don't know, I'm assuming this is just here to ensure that that permission is included in the result whether or not "security" exists. If security exists I'd imagine this permission would be included in the result collection by this point, but if security is null then it probably won't be (unless somehow it was a user-granted permission). Allowing permission to accept local socket connections seems fine to me. > Both answers are fair enough, but I'm still against removing this lines. From omajid at redhat.com Tue Nov 5 07:44:38 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 5 Nov 2013 10:44:38 -0500 Subject: [icedtea-web] depending on pkcs11 In-Reply-To: <5278C209.3020006@redhat.com> References: <5278C209.3020006@redhat.com> Message-ID: <20131105154438.GE1592@redhat.com> * Jiri Vanek [2013-11-05 05:04]: > see http://www.bouncycastle.org/devmailarchive/msg13383.html thread, > may affect itw soon.. or "soon" :) IcedTea-Web has been built with OpenJDK 7 for a long time [1]. Why do you expect to run into issues now? As that thread points out, the sun.security.pkcs11 package is still available in linux and 32-bit windows. Is there any other problem that I missed? Thanks, Omair [1] http://icedtea.classpath.org/hg/icedtea-web/rev/9d46cc3428eb?revcount=20 From bugzilla-daemon at icedtea.classpath.org Tue Nov 5 07:52:09 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Nov 2013 15:52:09 +0000 Subject: [Bug 1482] Log4j fails when JNLP is remote, works when local In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1482 Andrew Azores changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WORKSFORME -- 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/20131105/487f5ff1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 5 07:52:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Nov 2013 15:52:37 +0000 Subject: [Bug 1528] Chrome and Firefox freeze loading .jar (due permissions fail?) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1528 Andrew Azores changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID -- 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/20131105/1d4cf5fd/attachment.html From aazores at redhat.com Tue Nov 5 07:54:09 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 05 Nov 2013 10:54:09 -0500 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager In-Reply-To: <52790FDE.1040809@redhat.com> References: <5277BB9E.2010607@redhat.com> <5278AFF1.4040600@redhat.com> <52790FDE.1040809@redhat.com> Message-ID: <527914A1.4010801@redhat.com> On 11/05/2013 10:33 AM, Andrew Azores wrote: > On 11/05/2013 03:44 AM, Jiri Vanek wrote: >> So I would say, that instead of removing the messages, somethinkg like: >> >> > if (JNLPRuntime.isDebug()) { >> if (!cl.isSecurityNull()}{ >> OutputController.getLogger().log(OutputController.Level.ERROR_ALL, >> "Trying to get permission for null source to environment with >> security, its wrong "); >> }else { //conntinue as before >> > if (cl.getPermissions(null).implies(perm)){ >> } > > Ehh, if these debug messages are important I guess. The method now > contains significantly more logic for dealing with if/when/how to > produce debug output than actually doing its job :) and what if > "security" appears in between checking if it's null and calling > getPermissions(null)? Then we can still end up with an NPE being > thrown that would never have occurred if we weren't in debug mode. I > don't know if that situation would ever arise right now, where we > would have a thread calling addPermission on the security manager > while the classloader is still in the process of being initialized by > another thread. But there's a small chance of that happening anyway. > >> Also I have suspicions that this can hide more serious bug: >> - why passing null to getPemrmission > > I have no idea, I'm guessing this was written expecting getPermissions > to just skip that block of code rather than throwing an NPE. If it > just skipped that block of code rather than throwing an NPE then the > debug statement actually makes some sense, since calling addPermission > here adds it to the classloader's runtimePermissions field. > getPermissions' result would include permissions from that field if > the NPE was not thrown. > >> - why if (cs == null) { throw new >> NullPointerException("Code source was null"); } if >> security is > > Well the rest of the code in that block is pretty dependent on having > that CodeSource... > >> - and esepcially why // Class from host X should be allowed to >> connect to host X >> if (cs.getLocation() != null && >> cs.getLocation().getHost().length() > 0) >> result.add(new >> SocketPermission(cs.getLocation().getHost(), >> "connect, accept")); >> when is not? > > I don't know, I'm assuming this is just here to ensure that that > permission is included in the result whether or not "security" exists. > If security exists I'd imagine this permission would be included in > the result collection by this point, but if security is null then it > probably won't be (unless somehow it was a user-granted permission). > Allowing permission to accept local socket connections seems fine to me. > > Thanks, > Oops, forgot the attachment. Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: JNLPSecurityManager-bad-debug-2.patch Type: text/x-patch Size: 1482 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131105/748546cc/JNLPSecurityManager-bad-debug-2-0001.patch From jvanek at redhat.com Tue Nov 5 08:53:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 17:53:38 +0100 Subject: [rfc][icedtea-web] Remove bad debug logging statements from JNLPSecurityManager In-Reply-To: <527914A1.4010801@redhat.com> References: <5277BB9E.2010607@redhat.com> <5278AFF1.4040600@redhat.com> <52790FDE.1040809@redhat.com> <527914A1.4010801@redhat.com> Message-ID: <52792292.4000905@redhat.com> On 11/05/2013 04:54 PM, Andrew Azores wrote: > On 11/05/2013 10:33 AM, Andrew Azores wrote: >> On 11/05/2013 03:44 AM, Jiri Vanek wrote: >>> So I would say, that instead of removing the messages, somethinkg like: >>> >>> > if (JNLPRuntime.isDebug()) { >>> if (!cl.isSecurityNull()}{ >>> OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Trying to get permission for null source to environment with security, its wrong "); >>> }else { //conntinue as before >>> > if (cl.getPermissions(null).implies(perm)){ >>> } >> >> Ehh, if these debug messages are important I guess. The method now contains significantly more logic for dealing with if/when/how to produce debug output than actually doing its job :) and what if "security" appears in between checking if it's null and calling getPermissions(null)? Then we can still end up with an NPE being thrown that would never have occurred if we weren't in debug mode. I don't know if that situation would ever arise right now, where we would have a thread calling addPermission on the security manager while the classloader is still in the process of being initialized by another thread. But there's a small chance of that happening anyway. >> >>> Also I have suspicions that this can hide more serious bug: >>> - why passing null to getPemrmission >> >> I have no idea, I'm guessing this was written expecting getPermissions to just skip that block of code rather than throwing an NPE. If it just skipped that block of code rather than throwing an NPE then the debug statement actually makes some sense, since calling addPermission here adds it to the classloader's runtimePermissions field. getPermissions' result would include permissions from that field if the NPE was not thrown. >> >>> - why if (cs == null) { throw new NullPointerException("Code source was null"); } if security is >> >> Well the rest of the code in that block is pretty dependent on having that CodeSource... >> >>> - and esepcially why // Class from host X should be allowed to connect to host X >>> if (cs.getLocation() != null && cs.getLocation().getHost().length() > 0) >>> result.add(new SocketPermission(cs.getLocation().getHost(), >>> "connect, accept")); >>> when is not? >> >> I don't know, I'm assuming this is just here to ensure that that permission is included in the result whether or not "security" exists. If security exists I'd imagine this permission would be included in the result collection by this point, but if security is null then it probably won't be (unless somehow it was a user-granted permission). Allowing permission to accept local socket connections seems fine to me. >> >> Thanks, >> > > Oops, forgot the attachment. > ok then :) From jvanek at redhat.com Tue Nov 5 09:11:54 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 05 Nov 2013 18:11:54 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131105151202.GA1592@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <5277B8FA.70902@redhat.com> <20131104222006.GH32439@redhat.com> <5278EE1A.8060604@redhat.com> <20131105151202.GA1592@redhat.com> Message-ID: <527926DA.4060204@redhat.com> On 11/05/2013 04:12 PM, Omair Majid wrote: > * Jiri Vanek [2013-11-05 08:03]: >> On 11/04/2013 11:20 PM, Omair Majid wrote: >>> Comments in-line below. >> >> You did not commented 1.4 version - this was not new version of patch >> which obsolated the 1.4 but completely separate patch. > > Ah. I see. > > Is a significant change like this suitable for a 1.4.X update? I would > imagine the next 1.4 release would be bugfix only. Can we circle back to > the 1.4 patch after HEAD is sorted out? well you will see that change for 1.4 is absolutely minimal - It is just about 4 liens of code :) It is just enbaling what was done > >>> * Jiri Vanek [2013-11-04 10:10]: >>>> On 11/04/2013 12:29 PM, Jiri Vanek wrote: >>> >>>>> Imho "debug" should have nothing to do with "redirecting" also it >>>>> was used wrongly, and made consoel even less usefull... >>> >>> One of the main motivation behind the console is to see stdout/stderr of >>> applets (especially on platforms where stdout/stderr is not visible by >>> default). >> >> Yes, and exactly this it was never doing. > > Really? I am sure this was working (at one point). > >> I'm fully aware if it, and I hope this patch i leading to it. Also I >> have an intention to add also runtime plugin messages and also c++ >> init messages before java side is even initialised (the initial >> Console impl have not even thought about it) Ah, here we misunderstood. When you wrote plugin, I was epexcting also C part. Anyway the error in console was caused by messed redirect streams and plugin debug (and of course ignoring deployment.console.startup.mode value). > > That's because the console is meant for applet developers. Not sure they > would care what the plugin itself is doing, as long as the applet is > working (and they can see any debugging output they write). Ok, this I did not realized. I will keep in mind when I will implement the connection (if any). > >>>> +++ b/NEWS Mon Nov 04 16:08:16 2013 +0100 >>> >>>> +* Enabled and enhanced javaconsole for plugin and javaws >>> >>> A slightly clearer to read version might be: >>> >>> "A console for debugging plugin and javaws" >> >> I'm happy to do so >>> >>>> +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Mon Nov 04 16:08:16 2013 +0100 >>> >>>> @@ -64,14 +64,11 @@ >>> >>>> public static final String CONSOLE_HIDE = "HIDE"; >>>> public static final String CONSOLE_SHOW = "SHOW"; >>>> public static final String CONSOLE_DISABLE = "DISABLE"; >>>> + public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; >>>> + public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; >>> >>> FWIW, only SHOW, HIDE and DISABLE are documented for Oracle's >>> proprietary implementation. If you are going to add more, they should >>> be documented somewhere. >> >> probably in wiki in 1.5 release notes, so it have time. > > Please consider adding them as soon as the patch is pushed. Otherwise we > are likely to forget this. ok. > >> However I think they are quite self documenting > > The documentation is for users. The code is self documenting, but I > don't think it's fair to expect users to read the code. I did not meant in code :) I ment "on plugin startup" and "on javaws startup" :) > >>> "Java console is disabled. Use itweb-settings to configure it to show on startup." >> nearly - Java console is disabled. Use itweb-settings to configure it out of disabled to any show or hide value. >> >> - as hide is ok here to (console showed on demand) > > When is 'on demand'? I had to read it a few times before this version in error dialogue. Well I think the added button may not do any harm. Maybe I'm a bit more advanced user, but when app crash, I'm hunting any information which may help me. btw - thsi effort with console was rised by Tomas Hoger, who had some supicions about itw and selinux was blocking the stdout/err. So he was desperate for console. So here you may find another inspiration of user who may use it. > made sense to me (and I am familiar with the implementation). Maybe > leave it not-exactly right to make it more obvious to users? > >>> This seems like the wrong place to set the look and feel. Isn't the look >>> and feel set up once in Launcher? >> >> You are whipping me for somebody else code :) This was hg move JavaConsole. > > Just so we can both laugh at the joke, this is my code :D (And yes, > looking back at it, there's quite a few things I should have done > better). :DDD Is it?? Then my apologise! ps: My girlfriend is sending regards, as she she now how nice I'm speaking about your skills, and now she red this " whipping me for somebody else code /this is my code :D" exchange. Ad she really smiled :) > > Also, there's no whipping intended here.... > sure:) >> Tbh i do not know:( Anyway I'm going to work on console appearance so I would let this for that time. > > I had it on my TODO list to i18n this correctly, but since you > volunteered to fix this up, I thought I should point it out. As I said, > you can fix this later :) Well its done now, feel free to delete. > >>> >>>> +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Mon Nov 04 16:08:16 2013 +0100 >>>> } >>>> + if (LogConfig.getLogConfig().isLogToConsole()) { >>>> + if (Level.isOutput(s)){ >>>> + JavaConsole.getConsole().logOutput(message); >>>> + } >>>> + if (Level.isError(s)){ >>>> + JavaConsole.getConsole().logError(message); >>>> + } >>>> + } >>> >>> Cool, but this will not capture an applet's stdout/stderr, will it? >> >> not yet. But it never did. > > Are you sure about this? JNLPRuntime would redirect streams to > java.stdout/java.stderr (we definitely know this was working) and the > console would read the file (see the TextAreaUpdater class) to display > stdout/stderr. Se the 1.4 patch. But no I'm not. As I wrote, we misunderstood , by "applet" I imagined output from plgin (== C) part. > >> But it *must* and is on todo:) >> >> My current in mind design: > > > Please keep in mind that in mind that the main purpose of the Java > Console is to display System.out and System.err [1]. Additional Yes, this I did not. I thought all should be here. But I will keep in mind and probably support some filtering. > information (especially exceptions) are probably okay, but may not be > relevant to a developer developing a custom applet. > >> +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Tue Nov 05 14:06:25 2013 +0100 > >> + /** >> + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", >> + * then console is not visible by default, but may be shown > > Out of curiosity, how will it be shown? On an exception only? yes, in exception dialogue for applet.. Now when you speaking about it also javaws error dialog deserves this button. And of ocurse if plugin sends the showing message :) > >> */ >> public static final String CONSOLE_HIDE = "HIDE"; > >> +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Tue Nov 05 14:06:25 2013 +0100 > >> + public static boolean canShowOnStartup(boolean isApplication) { > > Since the only place this is called is from JNLPRuntime, maybe you can > pass in the configuration object and avoid the repeated > JNLPRuntime.getConfiguration() calls? ok :) > >> + return DeploymentConfiguration.CONSOLE_SHOW.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> +&& !isApplication) >> + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) >> +&& isApplication); >> + } > > Thanks, > Omair > > [1] http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/console.html ^hmm :) looooong description :) /// updated patch (console for javaws error dialogue) and cleaned canShowOnStartup included. J. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: resurectedConsoleForHead3 Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131105/bc556786/resurectedConsoleForHead3-0001.ksh From omajid at redhat.com Tue Nov 5 10:12:07 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 5 Nov 2013 13:12:07 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <527926DA.4060204@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <5277B8FA.70902@redhat.com> <20131104222006.GH32439@redhat.com> <5278EE1A.8060604@redhat.com> <20131105151202.GA1592@redhat.com> <527926DA.4060204@redhat.com> Message-ID: <20131105181207.GF1592@redhat.com> * Jiri Vanek [2013-11-05 12:05]: > On 11/05/2013 04:12 PM, Omair Majid wrote: > >The documentation is for users. The code is self documenting, but I > >don't think it's fair to expect users to read the code. > > I did not meant in code :) I ment "on plugin startup" and "on javaws startup" :) Sure, but there should be a way for a non-developer to know that these options exist. > btw - thsi effort with console was rised by Tomas Hoger, who had some > supicions about itw and selinux was blocking the stdout/err. So he was > desperate for console. > > So here you may find another inspiration of user who may use it. Thanks for pointing this out. We should summarize this somewhere and not rely on bits of information sticking in someone's head. > >* Jiri Vanek [2013-11-05 08:03]: > >>You are whipping me for somebody else code :) This was hg move JavaConsole. > > > >Just so we can both laugh at the joke, this is my code :D (And yes, > >looking back at it, there's quite a few things I should have done > >better). > > :DDD Is it?? Then my apologise! Eh, why? If it's bad code, it's bad code. Doesn't really matter who wrote it :) > ps: My girlfriend is sending regards, as she she now how nice I'm > speaking about your skills, and now she red this " whipping me for > somebody else code /this is my code :D" exchange. Ad she really smiled > :) Please pass on my regards to her too. I am happy to hear I made someone smile :) > >Also, there's no whipping intended here.... > > > sure:) I want to apologize if I was rude here. I pointed out everything that I thought could be better in the patch (including the bugs in code I had written). I did not mean to blame anyone (least of all you) for it. > >Please keep in mind that in mind that the main purpose of the Java > >Console is to display System.out and System.err [1]. Additional > > Yes, this I did not. I thought all should be here. But I will keep in > mind and probably support some filtering. There's a "deployment.trace" option that might be good enough as a binary switch. > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Nov 05 18:11:10 2013 +0100 > +SPLASHmainL2 = Additional information may be available in the console or logs. Even more information can be provided if debugging is enabled "Even more information is available if debugging is enabled" > +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Tue Nov 05 18:11:10 2013 +0100 > + public static JButton getShowButton(final Component parent) { This is a little subjective, but this button probably belongs elsewhere. Please feel free to push after fixing the string (and moving the show button to some place more appropriate) Cheers, Omair From aazores at icedtea.classpath.org Tue Nov 5 10:27:09 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Tue, 05 Nov 2013 18:27:09 +0000 Subject: /hg/icedtea-web: Avoid potential NPE in JNLPSecurityManager#addP... Message-ID: changeset b3a5748145ca in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b3a5748145ca author: Andrew Azores date: Tue Nov 05 13:26:59 2013 -0500 Avoid potential NPE in JNLPSecurityManager#addPermission when debug is enabled * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: (addPermission) avoid NPE in JNLPClassLoader#getPermissions with debug enabled diffstat: ChangeLog | 6 ++++++ netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diffs (34 lines): diff -r 6a7915fdff8c -r b3a5748145ca ChangeLog --- a/ChangeLog Fri Nov 01 13:23:25 2013 +0100 +++ b/ChangeLog Tue Nov 05 13:26:59 2013 -0500 @@ -1,3 +1,9 @@ +2013-11-05 Andrew Azores + + * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: + (addPermission) avoid NPE in JNLPClassLoader#getPermissions with debug + enabled + 2013-11-01 Jiri Vanek Synced headers between PLUGIN_DEBUG, PLUGIN_ERROR and javaside diff -r 6a7915fdff8c -r b3a5748145ca netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri Nov 01 13:23:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Tue Nov 05 13:26:59 2013 -0500 @@ -317,10 +317,14 @@ JNLPClassLoader cl = (JNLPClassLoader) JNLPRuntime.getApplication().getClassLoader(); cl.addPermission(perm); if (JNLPRuntime.isDebug()) { - if (cl.getPermissions(null).implies(perm)){ - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Added permission: " + perm.toString()); + if (cl.getSecurity() == null) { + if (cl.getPermissions(null).implies(perm)){ + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Added permission: " + perm.toString()); + } else { + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Unable to add permission: " + perm.toString()); + } } else { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Unable to add permission: " + perm.toString()); + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "Cannot get permissions for null codesource when classloader security is not null"); } } } else { From jvanek at icedtea.classpath.org Tue Nov 5 11:01:16 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Tue, 05 Nov 2013 19:01:16 +0000 Subject: /hg/icedtea-web: Java console resurrected and connected to new l... Message-ID: changeset dcd51951d507 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=dcd51951d507 author: Jiri Vanek date: Tue Nov 05 20:07:27 2013 +0100 Java console resurrected and connected to new logging. diffstat: ChangeLog | 36 +- NEWS | 1 + netx/net/sourceforge/jnlp/config/Defaults.java | 4 +- netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java | 38 +- netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java | 8 +- netx/net/sourceforge/jnlp/resources/Messages.properties | 18 + netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java | 8 +- netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java | 32 +- netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java | 29 + netx/net/sourceforge/jnlp/util/logging/JavaConsole.java | 384 ++++++++++ netx/net/sourceforge/jnlp/util/logging/LogConfig.java | 4 + netx/net/sourceforge/jnlp/util/logging/OutputController.java | 36 +- plugin/icedteanp/java/sun/applet/JavaConsole.java | 371 --------- plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 6 +- plugin/icedteanp/java/sun/applet/PluginMain.java | 12 +- plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 32 +- 16 files changed, 594 insertions(+), 425 deletions(-) diffs (truncated from 1351 to 500 lines): diff -r b3a5748145ca -r dcd51951d507 ChangeLog --- a/ChangeLog Tue Nov 05 13:26:59 2013 -0500 +++ b/ChangeLog Tue Nov 05 20:07:27 2013 +0100 @@ -1,3 +1,35 @@ +2013-11-05 Jiri Vanek + + Java console resurrected and connected to new logging. + * NEWS: mentioned console for plugin and javaws + * Changelog: removed one wrong tab + * netx/net/sourceforge/jnlp/config/Defaults.java: added + DeploymentConfiguration.CONSOLE_SHOW_PLUGIN, + and DeploymentConfiguration.CONSOLE_SHOW_JAVAWS. + * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: + added and javadoc-ed CONSOLE_SHOW_PLUGIN,CONSOLE_SHOW_JAVAWS, DISABLE, + SHOW, HIDE, KEY_CONSOLE_STARTUP_MODE. + * netx/net/sourceforge/jnlp/resources/Messages.properties: localized console + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java : removed legacy STD*_FILE + * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: Added button + to show console on demand. Added (getShowButton) method to share code with + * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: + Added button to show console on demand and explaining line. + * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: moved from + plugin, and reworked. Especially get rid of perpetual loading of file. + Made singleton. + * netx/net/sourceforge/jnlp/util/logging/LogConfig.java: added (isLogToConsole) + returning (JavaConsole.isEnabled) status. + * netx/net/sourceforge/jnlp/util/logging/OutputController.java: added (Level.isError) + and (Level.isOutput) methods to determine original channel, and can log to console. + * plugin/icedteanp/java/sun/applet/JavaConsole.java: moved to netx + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + (streamhandler) made private with setter + * plugin/icedteanp/java/sun/applet/PluginMain.java : removed legacy STD*_FILE, + added set of classloaders information provider to console. (handlePluginMessage) + show and hide of console is checking it's status. (showConsole) and (hideConsole) + moved to JavaConsole. + 2013-11-05 Andrew Azores * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: @@ -10,7 +42,7 @@ * netx/net/sourceforge/jnlp/util/logging/OutputController.java: (getHeader) added thread id and name to log header. * plugin/icedteanp/IcedTeaPluginUtils.h: (PLUGIN_DEBUG) (PLUGIN_ERROR) - headerrs generation code moved to macro (CREATE_HEADER0). Both + headers generation code moved to macro (CREATE_HEADER0). Both headers now contains pthread_self and g_thread_self. Fixed indentation. 2013-11-01 Jiri Vanek @@ -63,7 +95,7 @@ TEST(PLUGIN_DEBUG_ERROR_PROFILING_debug_on_headers_on) TEST(PLUGIN_DEBUG_ERROR_PROFILING_debug_off_headers_on) (100x slower then without headers) - + 2013-10-25 Jiri Vanek all output messages redirected to PLUGIN_{DEBUG,ERROR} macros diff -r b3a5748145ca -r dcd51951d507 NEWS --- a/NEWS Tue Nov 05 13:26:59 2013 -0500 +++ b/NEWS Tue Nov 05 20:07:27 2013 +0100 @@ -12,6 +12,7 @@ * IcedTea-Web now using tagsoup as default (tagsoup dependence) sanitizer for input * JDK older then 1.5 no longer supported * IcedTea-Web is now following XDG .config and .cache specification(RH947647) +* A console for debugging plugin and javaws * Cache Viewer - Can be closed by ESC key - Enabling and disabling of operational buttons is handled properly diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/config/Defaults.java --- a/netx/net/sourceforge/jnlp/config/Defaults.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Tue Nov 05 20:07:27 2013 +0100 @@ -337,7 +337,9 @@ BasicValueValidators.getStringValidator(new String[] { DeploymentConfiguration.CONSOLE_DISABLE, DeploymentConfiguration.CONSOLE_HIDE, - DeploymentConfiguration.CONSOLE_SHOW + DeploymentConfiguration.CONSOLE_SHOW, + DeploymentConfiguration.CONSOLE_SHOW_PLUGIN, + DeploymentConfiguration.CONSOLE_SHOW_JAVAWS }), DeploymentConfiguration.CONSOLE_HIDE }, diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Tue Nov 05 20:07:27 2013 +0100 @@ -64,14 +64,31 @@ public static final int JNLP_ASSOCIATION_ASK_USER = 2; public static final int JNLP_ASSOCIATION_REPLACE_ASK = 3; - /* - * FIXME these should be moved into JavaConsole, but there is a strange - * dependency in the build system. First all of netx is built. Then the - * plugin is built. So we cannot refer to plugin code in here :( + /** + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", + * then console is not visible by default, but may be shown */ public static final String CONSOLE_HIDE = "HIDE"; + /** + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", + * then console show for both javaws and plugin + */ public static final String CONSOLE_SHOW = "SHOW"; + /** + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", + * then console is not visible by default, nop data are passed to it (save memory and cpu) but can not be shown + */ public static final String CONSOLE_DISABLE = "DISABLE"; + /** + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", + * then console show for plugin + */ + public static final String CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; + /** + * when set to as value of KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode", + * then console show for javaws + */ + public static final String CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; public static final String KEY_USER_CACHE_DIR = "deployment.user.cachedir"; public static final String KEY_USER_PERSISTENCE_CACHE_DIR = "deployment.user.pcachedir"; @@ -156,10 +173,19 @@ public static final String KEY_ENABLE_LOGGING_TOSTREAMS = "deployment.log.stdstreams"; public static final String KEY_ENABLE_LOGGING_TOSYSTEMLOG = "deployment.log.system"; - /* - * Console + /** + * Console initial status. + * One of CONSOLE_* values + * See declaration above: + * CONSOLE_HIDE = "HIDE"; + * CONSOLE_SHOW = "SHOW"; + * CONSOLE_DISABLE = "DISABLE"; + * CONSOLE_SHOW_PLUGIN = "SHOW_PLUGIN_ONLY"; + * CONSOLE_SHOW_JAVAWS = "SHOW_JAVAWS_ONLY"; */ public static final String KEY_CONSOLE_STARTUP_MODE = "deployment.console.startup.mode"; + + /* * Desktop Integration diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Tue Nov 05 20:07:27 2013 +0100 @@ -91,9 +91,11 @@ (Translator.R("DPEnableSyslogHint")) }; - ComboItem[] javaConsoleItems = { new ComboItem(Translator.R("DPDisable"), "DISABLE"), - new ComboItem(Translator.R("DPHide"), "HIDE"), - new ComboItem(Translator.R("DPShow"), "SHOW"), }; + ComboItem[] javaConsoleItems = { new ComboItem(Translator.R("DPDisable"), DeploymentConfiguration.CONSOLE_DISABLE), + new ComboItem(Translator.R("DPHide"), DeploymentConfiguration.CONSOLE_HIDE), + new ComboItem(Translator.R("DPShow"), DeploymentConfiguration.CONSOLE_SHOW), + new ComboItem(Translator.R("DPShowPluginOnly"), DeploymentConfiguration.CONSOLE_SHOW_PLUGIN), + new ComboItem(Translator.R("DPShowJavawsOnly"), DeploymentConfiguration.CONSOLE_SHOW_JAVAWS) }; JLabel consoleLabel = new JLabel(Translator.R("DPJavaConsole")); JComboBox consoleComboBox = new JComboBox(); diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Nov 05 20:07:27 2013 +0100 @@ -415,7 +415,24 @@ DPDisable=Disable DPHide=Hide on startup DPShow=Show on startup +DPShowPluginOnly=Show on plugin startup +DPShowJavawsOnly=Show on javaws startup DPJavaConsole=Java Console +DPJavaConsoleDisabledHint=Java console is disabled. Use itweb-settings to configure it out of disabled to any show or hide value. + +#conole itself labels +CONSOLErungc = Run GC +CONSOLErunFinalizers = Run Finalizers +CONSOLErunningFinalizers = Running finalization.... +CONSOLEmemoryInfo = Memory Info +CONSOLEsystemProperties = System Properties +CONSOLEclassLoaders = Available Classloaders +CONSOLEthreadList = Thread List +CONSOLEthread = Thread +CONSOLEnoClassLoaders = No Classloader info exists in system +CONSOLEmemoryMax = Max Memory +CONSOLEmemoryTotal = Total Memory +CONSOLEmemoryFree = Free Memory # Control Panel - DesktopShortcutPanel DSPNeverCreate=Never create @@ -525,6 +542,7 @@ SPLASHmainL3 = No further information available, try to launch the browser from the command line and examine the output. SPLASHcloseAndCopyShorter = Close and copy to clipboard SPLASHmainL4 = The folloing exception has occured. For more information, try to launch the browser from the command line and examine the output. +SPLASHmainL2 = Additional information may be available in the console or logs. Even more information is available if debugging is enabled. SPLASHexWas = Exception was: SPLASHcfl = Can't follow link to SPLASHvendorsInfo = Information from vendor of your application diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Tue Nov 05 20:07:27 2013 +0100 @@ -67,8 +67,8 @@ import net.sourceforge.jnlp.security.VariableX509TrustManager; import net.sourceforge.jnlp.services.XServiceManagerStub; import net.sourceforge.jnlp.util.FileUtils; +import net.sourceforge.jnlp.util.logging.JavaConsole; import net.sourceforge.jnlp.util.logging.OutputController; -import net.sourceforge.jnlp.util.TeeOutputStream; import net.sourceforge.jnlp.util.logging.LogConfig; import sun.net.www.protocol.jar.URLJarFile; @@ -162,8 +162,7 @@ /** a lock which is held to indicate that an instance of netx is running */ private static FileLock fileLock; - public static final String STDERR_FILE = "java.stderr"; - public static final String STDOUT_FILE = "java.stdout"; + /** @@ -196,6 +195,9 @@ try { config.load(); config.copyTo(System.getProperties()); + if (JavaConsole.canShowOnStartup(isApplication)) { + JavaConsole.getConsole().showConsoleLater(); + } } catch (ConfigurationException e) { /* exit if there is a fatal exception loading the configuration */ if (isApplication) { diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java --- a/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Tue Nov 05 20:07:27 2013 +0100 @@ -40,8 +40,6 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.WindowEvent; -import java.io.PrintWriter; -import java.io.StringWriter; import java.text.DateFormat; import java.util.Date; import java.util.List; @@ -65,6 +63,7 @@ import net.sourceforge.jnlp.LaunchException; import net.sourceforge.jnlp.about.AboutDialog; import net.sourceforge.jnlp.runtime.Translator; +import net.sourceforge.jnlp.util.BasicExceptionDialog; import net.sourceforge.jnlp.util.logging.OutputController; public class JEditorPaneBasedExceptionDialog extends JDialog implements HyperlinkListener { @@ -74,6 +73,7 @@ private JButton closeAndCopyButton; private JButton homeButton; private JButton aboutButton; + private JButton consoleButton; private JEditorPane htmlErrorAndHelpPanel; private JLabel exceptionLabel; private JLabel iconLabel; @@ -142,6 +142,7 @@ htmlErrorAndHelpPanel = new JEditorPane(); homeButton = new JButton(); aboutButton = new JButton(); + consoleButton = BasicExceptionDialog.getShowButton(JEditorPaneBasedExceptionDialog.this); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); @@ -166,9 +167,27 @@ GroupLayout jPanel2Layout = new GroupLayout(topPanel); topPanel.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addContainerGap().addComponent(closeButton).addContainerGap().addComponent(aboutButton).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE).addComponent(closeAndCopyButton).addContainerGap())); + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addComponent(closeButton) + .addContainerGap() + .addComponent(aboutButton) + .addContainerGap() + .addComponent(consoleButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 314, Short.MAX_VALUE) + .addComponent(closeAndCopyButton) + .addContainerGap())); jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup().addContainerGap(24, Short.MAX_VALUE).addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(closeButton).addComponent(aboutButton).addComponent(closeAndCopyButton)).addContainerGap())); + jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addContainerGap(24, Short.MAX_VALUE) + .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(closeButton) + .addComponent(aboutButton) + .addComponent(consoleButton) + .addComponent(closeAndCopyButton)) + .addContainerGap())); exceptionLabel.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N exceptionLabel.setHorizontalAlignment(SwingConstants.CENTER); @@ -204,7 +223,7 @@ } } }); - + GroupLayout jPanel1Layout = new GroupLayout(mainPanel); mainPanel.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( @@ -271,6 +290,9 @@ StringBuilder s = new StringBuilder(""); String info = "

" + Translator.R(InfoItem.SPLASH + "mainL1", createLink()) + + "

\n" + + "

" + + Translator.R(InfoItem.SPLASH + "mainL2", createLink()) + "

\n"; String t = "

" + Translator.R(InfoItem.SPLASH + "mainL3") diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java --- a/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Tue Nov 05 13:26:59 2013 -0500 +++ b/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Tue Nov 05 20:07:27 2013 +0100 @@ -41,6 +41,7 @@ import static net.sourceforge.jnlp.runtime.Translator.R; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -55,6 +56,8 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; +import net.sourceforge.jnlp.runtime.Translator; +import net.sourceforge.jnlp.util.logging.JavaConsole; /** * A dialog that displays some basic information about an exception @@ -91,6 +94,10 @@ viewDetails.setActionCommand("show"); quickInfoPanel.add(viewDetails); + final JButton consoleButton = getShowButton(errorDialog); + consoleButton.setAlignmentY(JComponent.LEFT_ALIGNMENT); + quickInfoPanel.add(consoleButton); + JTextArea textArea = new JTextArea(); textArea.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); textArea.setEditable(false); @@ -120,4 +127,26 @@ errorDialog.setVisible(true); errorDialog.dispose(); } + + public static JButton getShowButton(final Component parent) { + JButton consoleButton = new JButton(); + consoleButton.setText(R("DPJavaConsole")); + consoleButton.addActionListener(new java.awt.event.ActionListener() { + + @Override + public void actionPerformed(java.awt.event.ActionEvent evt) { + try { + JavaConsole.getConsole().showConsoleLater(true); + } catch (Exception ex) { + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ex); + JOptionPane.showConfirmDialog(parent, ex); + } + } + }); + if (!JavaConsole.isEnabled()) { + consoleButton.setEnabled(false); + consoleButton.setToolTipText(R("DPJavaConsoleDisabledHint")); + } + return consoleButton; + } } diff -r b3a5748145ca -r dcd51951d507 netx/net/sourceforge/jnlp/util/logging/JavaConsole.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Tue Nov 05 20:07:27 2013 +0100 @@ -0,0 +1,384 @@ +/* JavaConsole -- A java console for the plugin +Copyright (C) 2009, 2013 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ +package net.sourceforge.jnlp.util.logging; + +import static net.sourceforge.jnlp.runtime.Translator.R; + +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.border.TitledBorder; +import net.sourceforge.jnlp.config.DeploymentConfiguration; +import net.sourceforge.jnlp.runtime.JNLPRuntime; +import net.sourceforge.jnlp.util.ImageResources; + +/** + * A simple Java console for IcedTeaPlugin and JavaWS + * + */ +public class JavaConsole { + + public static interface ClassLoaderInfoProvider { + + public Map getLoaderInfo(); + } + private static JavaConsole console; + + public static JavaConsole getConsole() { + if (console == null) { + console = new JavaConsole(); + } + return console; + } + + public static boolean isEnabled() { + return isEnabled(JNLPRuntime.getConfiguration()); + } + + public static boolean isEnabled(DeploymentConfiguration config) { + return !DeploymentConfiguration.CONSOLE_DISABLE.equals(config.getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + && !JNLPRuntime.isHeadless(); + } + + public static boolean canShowOnStartup(boolean isApplication) { + return canShowOnStartup(isApplication, JNLPRuntime.getConfiguration()); + } + + public static boolean canShowOnStartup(boolean isApplication, DeploymentConfiguration config) { + if (!isEnabled(config)) { + return false; + } + return DeploymentConfiguration.CONSOLE_SHOW.equals(config.getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + || (DeploymentConfiguration.CONSOLE_SHOW_PLUGIN.equals(config.getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + && !isApplication) + || (DeploymentConfiguration.CONSOLE_SHOW_JAVAWS.equals(config.getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE)) + && isApplication); + } + private JDialog consoleWindow; + private JTextArea stdErrText; + private JTextArea stdOutText; + private ClassLoaderInfoProvider classLoaderInfoProvider; + + public JavaConsole() { + initialize(); + } + + /** + * Initialize the console + */ + private void initialize() { + + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (Exception e) { From omajid at redhat.com Tue Nov 5 11:44:09 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 5 Nov 2013 14:44:09 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <52778515.7010507@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> Message-ID: <20131105194409.GG1592@redhat.com> * Jiri Vanek [2013-11-04 06:31]: > before you will wonder about removed redirectStreams, please test > patch :). Also it is remove in 1.5. Imho "debug" should have nothing > to do with "redirecting" also it was used wrongly, and made consoel > even less usefull... Let me break down the code: If the user has asked for logging, then log to java.stdout and java.stderr as well as the actual stdout/stderr. If the user has said ICEDTEAPLUGIN_DEBUG=true, then the C side of the plugin will be printing it's information on stdout/stderr. In that case, redirect the java-side to java.stdout and java.stderr. Can you explain the problem with this scheme? > Now it is working as it should. ICEDTEAPLIGIN_DEBUG is setting level > of verbosity, and console is jsut another form of output. This patch is always logging to java.stdout/java.stderr, even if not asked for. > +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java Mon Nov 04 12:18:40 2013 +0100 > @@ -106,14 +106,15 @@ > > PluginAppletSecurityContext.setStreamhandler(streamHandler); > + //the properties are initialised during classlaoder creation > + if (DeploymentConfiguration.VALUE_CONSOLE_STARTUP_MODE_SHOW.equals( > + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE))) { > + PluginAppletSecurityContext.getStreamhandler().showConsole(); > + } > AppletSecurityContextManager.addContext(0, sc); The addition of these lines look okay, but I am a little sceptical about the rest of the rest of the patch. Thanks, Omair From bugzilla-daemon at icedtea.classpath.org Tue Nov 5 14:27:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 05 Nov 2013 22:27:08 +0000 Subject: [Bug 1596] New: Fatal Error on XWiki running in Tomcat after upgrade Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1596 Bug ID: 1596 Summary: Fatal Error on XWiki running in Tomcat after upgrade Classification: Unclassified Product: IcedTea Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: major Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: thomas.steinbach at nhochdrei.de CC: unassigned at icedtea.classpath.org Created attachment 970 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=970&action=edit The mentioned error log Upgraded Debian 6 today, restarted tomcat with xwiki and got following bug in catalina.out 2013-11-05 23:01:15,187 [https://xwiki.mydomain.de/xwiki/bin/login/XWiki/XWikiLogin?xredirect=%2Fxwiki%2Fbin%2FMain%2FAllDocs] WARN o.x.v.i.DefaultVelocityEngine - Deprecated usage of method [com.xpn.xwiki.api.XWiki.parseMessage] in /templates/login.vm at 29,33 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f45297f6641, pid=2298, tid=139934507071232 # # JRE version: 6.0_27-b27 # Java VM: OpenJDK 64-Bit Server VM (20.0-b12 mixed mode linux-amd64 compressed oops) # Derivative: IcedTea6 1.12.6 # Distribution: Debian GNU/Linux 6.0.4 (squeeze), package 6b27-1.12.6-1~deb6u1 # Problematic frame: # C [ld-linux-x86-64.so.2+0x13641] _dl_make_stack_executable+0x20c1 # # An error report file with more information is saved as: # /tmp/hs_err_pid2298.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131105/9bc06086/attachment.html From camilo.lopez at timpik.com Wed Nov 6 04:32:41 2013 From: camilo.lopez at timpik.com (Camilo) Date: Wed, 6 Nov 2013 12:32:41 +0000 (UTC) Subject: [Bug 1557] JVM Crash on Latest Amazon EC2 =?utf-8?b?Ni4wXzI0LWIyNA==?= =?utf-8?b?SWNlZFRlYTYJMS4xMS4xMS45MA==?= References: Message-ID: Hi! We are experiencing the same problem, same JRE version and also Amazon EC2. Did you find any solution? Thanks!! From jvanek at redhat.com Wed Nov 6 06:12:22 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 06 Nov 2013 15:12:22 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131106124942.GA1575@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <20131105194409.GG1592@redhat.com> <5279FFDE.5000707@redhat.com> <20131106124942.GA1575@redhat.com> Message-ID: <527A4E46.9010009@redhat.com> On 11/06/2013 01:49 PM, Omair Majid wrote: > * Jiri Vanek [2013-11-06 03:31]: >> On 11/05/2013 08:44 PM, Omair Majid wrote: >>> * Jiri Vanek [2013-11-04 06:31]: >>>> before you will wonder about removed redirectStreams, please test >>>> patch :). Also it is remove in 1.5. Imho "debug" should have nothing >>>> to do with "redirecting" also it was used wrongly, and made consoel >>>> even less usefull... >>> >>> Let me break down the code: >>> >>> If the user has asked for logging, then log to java.stdout and >>> java.stderr as well as the actual stdout/stderr. >>> >>> If the user has said ICEDTEAPLUGIN_DEBUG=true, then the C side of the >>> plugin will be printing it's information on stdout/stderr. In that case, >>> redirect the java-side to java.stdout and java.stderr. >>> >>> Can you explain the problem with this scheme? > > Thanks for explaining! There's some things which I agree are a bug and > should be fixed. Some other things, I am not sure about. > >> What is wrong, is that debug is suddenly changing not the verbosity of >> output, but destination of output(without changing the verbosity >> actually). >> >> - In 1.4 we have javaconsole and stdout/err as debugging outputs >> >> - there is variable redirectStreams which is true if >> ICEDTEAPLUGIN_DEBUG is declared >> >> - in 1.4 ICEDTEAPLUGIN_DEBUG was affecting only C part, so it is >> suspicious >> >> - there is variable enableLogging, which is always false, because it >> is read from properties, *before* they are read from file (bug in >> 1.4, fixed in head) (it also depneds on -verbose, but for simplicity >> i will stay of as this (console) is just for applets part in 1.4) >> >> - as it is used, it is also duplicated withs console >> DISABLED/all_other_values >> >> - now the original "logging" was under condition redirectStreams || >> enableLogging, so it was depnding only on value of redirectStreams >> and so on ICEDTEAPLUGIN_DEBUG set. >> >> - suspicions isnt it? > > No, not if you look at the actual effects. ok. With your latest sentence this gave a bit more sense. > >> - if one declared ICEDTEAPLUGIN_DEBUG (whic is normally affecting verbosity of C part), sudddenly >> - the console starts to work > > Okay, this is a bug that we should fix. > >> - the verbosity of java part is still not-debug (so nothing interesting in console) > > That should be controlled by 'deployment.trace' option. which was never implemented (and got removed in 1.5 .. so not worthy to fix) > >> - the stdou/err is suddenly silenced > > No, the C side of the plugin is using the stdout/stderr of the browser. > It will print tons of information. The java side writes its > stdout/stderr to another location to keep things separate. oooooh.....yes. Now it gives much more sense. That you wish to keep the logs separated is something what never crossed my mind. (I still doubt its useful, but at least I see your point!) Ok. With " C side of the plugin is using the stdout/stderr of the browser. > It will print tons of information. The java side writes its > stdout/stderr to another location to keep things separate" I think we can close this issue and I will keep importance of separated logs for 1.5 in mind. J. From jvanek at icedtea.classpath.org Wed Nov 6 05:51:05 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 06 Nov 2013 13:51:05 +0000 Subject: /hg/release/icedtea-web-1.4: Enabled java console for plugin Message-ID: changeset acbada276d23 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=acbada276d23 author: Jiri Vanek date: Wed Nov 06 14:46:43 2013 +0100 Enabled java console for plugin diffstat: ChangeLog | 11 ++++++++++ NEWS | 1 + plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 8 ++++++- plugin/icedteanp/java/sun/applet/PluginMain.java | 5 ++++ plugin/icedteanp/java/sun/applet/PluginStreamHandler.java | 3 +- 5 files changed, 25 insertions(+), 3 deletions(-) diffs (89 lines): diff -r 511a213f0206 -r acbada276d23 ChangeLog --- a/ChangeLog Wed Oct 30 10:36:43 2013 +0100 +++ b/ChangeLog Wed Nov 06 14:46:43 2013 +0100 @@ -1,3 +1,14 @@ +2013-11-06 Jiri Vanek + + Enabled java console for plugin + * NEWS: mentioned + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + (streamhandler) made private, added setter. + * plugin/icedteanp/java/sun/applet/PluginMain.java: added condition for + showing the console + * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java: (showConsole) + made public + 2013-10-30 Jiri Vanek * netx/net/sourceforge/jnlp/JARDesc.java: made immutable diff -r 511a213f0206 -r acbada276d23 NEWS --- a/NEWS Wed Oct 30 10:36:43 2013 +0100 +++ b/NEWS Wed Nov 06 14:46:43 2013 +0100 @@ -12,6 +12,7 @@ * Dialogs center on screen before becoming visible * Plugin - RH976833: Multiple applets on one page cause deadlock + - Enabled javaconsole New in release 1.4.1 (2013-09-19): * Improved and cleaned Temporary internet files panel diff -r 511a213f0206 -r acbada276d23 plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Wed Nov 06 14:46:43 2013 +0100 @@ -234,7 +234,7 @@ private ClassLoader liveconnectLoader = ClassLoader.getSystemClassLoader(); int identifier = 0; - public static PluginStreamHandler streamhandler; + private static PluginStreamHandler streamhandler; long startTime = 0; @@ -320,6 +320,12 @@ streamhandler = sh; } + public static PluginStreamHandler getStreamhandler() { + return streamhandler; + } + + + public static Map getLoaderInfo() { Hashtable map = new Hashtable(); diff -r 511a213f0206 -r acbada276d23 plugin/icedteanp/java/sun/applet/PluginMain.java --- a/plugin/icedteanp/java/sun/applet/PluginMain.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java Wed Nov 06 14:46:43 2013 +0100 @@ -114,6 +114,11 @@ PluginAppletSecurityContext sc = new PluginAppletSecurityContext(0); sc.prePopulateLCClasses(); PluginAppletSecurityContext.setStreamhandler(streamHandler); + //the properties are initialised during classlaoder creation + if (DeploymentConfiguration.CONSOLE_SHOW.equals( + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE))) { + PluginAppletSecurityContext.getStreamhandler().showConsole(); + } AppletSecurityContextManager.addContext(0, sc); PluginAppletViewer.setStreamhandler(streamHandler); diff -r 511a213f0206 -r acbada276d23 plugin/icedteanp/java/sun/applet/PluginStreamHandler.java --- a/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Oct 30 10:36:43 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginStreamHandler.java Wed Nov 06 14:46:43 2013 +0100 @@ -44,7 +44,6 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.net.MalformedURLException; import java.nio.charset.Charset; import javax.swing.SwingUtilities; @@ -373,7 +372,7 @@ return; } - private void showConsole() { + public void showConsole() { SwingUtilities.invokeLater(new Runnable() { public void run() { console.showConsole(); From ptisnovs at icedtea.classpath.org Wed Nov 6 01:30:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 06 Nov 2013 09:30:58 +0000 Subject: /hg/gfx-test: Ten new tests added into CAGOperationsOnCircleAndR... Message-ID: changeset 1519d3e53dea in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=1519d3e53dea author: Pavel Tisnovsky date: Wed Nov 06 10:31:05 2013 +0100 Ten new tests added into CAGOperationsOnCircleAndRectangle test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java | 250 ++++++++++ 2 files changed, 255 insertions(+), 0 deletions(-) diffs (272 lines): diff -r 372bdbeb35f2 -r 1519d3e53dea ChangeLog --- a/ChangeLog Tue Nov 05 11:00:40 2013 +0100 +++ b/ChangeLog Wed Nov 06 10:31:05 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-06 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java: + Ten new tests added into CAGOperationsOnCircleAndRectangle test suite. + 2013-11-05 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: diff -r 372bdbeb35f2 -r 1519d3e53dea src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java Tue Nov 05 11:00:40 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java Wed Nov 06 10:31:05 2013 +0100 @@ -2064,6 +2064,256 @@ } /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using union operator. The shape is + * rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleUnionWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingUnionOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using subtract operator. The shape + * is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleSubtractWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using inverse subtract operator. + * The shape is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleInverseSubtractWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using inverse subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingInverseSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using intersect operator. The shape + * is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleIntersectWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using intersect operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingIntersectOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using XOR operator. The shape is + * rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleXorWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using XOR operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingXorOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using union operator. The shape is + * rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleUnionExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set extra wide stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingUnionOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using subtract operator. The shape + * is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleSubtractExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set extra wide stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // create area using subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using inverse subtract operator. + * The shape is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleInverseSubtractExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set extra wide stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // create area using inverse subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingInverseSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using intersect operator. The shape + * is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleIntersectExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set extra wide stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // create area using intersect operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingIntersectOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from circle and rectangle using XOR operator. The shape is + * rendered using extra wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleXorExtraWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke extra width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // create area using XOR operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingXorOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Wed Nov 6 01:38:13 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 06 Nov 2013 09:38:13 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest case into Abst... Message-ID: changeset bf9c54aa5bb9 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=bf9c54aa5bb9 author: Pavel Tisnovsky date: Wed Nov 06 10:42:08 2013 +0100 Added new testGetResourceNPETest case into AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/AbstractScriptEngineClassTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diffs (36 lines): diff -r 0101ff598e7e -r bf9c54aa5bb9 ChangeLog --- a/ChangeLog Tue Nov 05 11:02:46 2013 +0100 +++ b/ChangeLog Wed Nov 06 10:42:08 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-06 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added new testGetResourceNPETest case into + AbstractScriptEngineClassTest.java. + 2013-11-05 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r 0101ff598e7e -r bf9c54aa5bb9 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Tue Nov 05 11:02:46 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Wed Nov 06 10:42:08 2013 +0100 @@ -1776,6 +1776,19 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getResourceAsStreamNPETest() + */ + protected void testGetResourceAsStreamNPETest() { + try { + Object resource = this.abstractScriptEngineClass.getResourceAsStream(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** * Test for instanceof operator applied to a class javax.script.AbstractScriptEngine */ @SuppressWarnings("cast") From omajid at redhat.com Wed Nov 6 04:49:42 2013 From: omajid at redhat.com (Omair Majid) Date: Wed, 6 Nov 2013 07:49:42 -0500 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <5279FFDE.5000707@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <20131105194409.GG1592@redhat.com> <5279FFDE.5000707@redhat.com> Message-ID: <20131106124942.GA1575@redhat.com> * Jiri Vanek [2013-11-06 03:31]: > On 11/05/2013 08:44 PM, Omair Majid wrote: > >* Jiri Vanek [2013-11-04 06:31]: > >>before you will wonder about removed redirectStreams, please test > >>patch :). Also it is remove in 1.5. Imho "debug" should have nothing > >>to do with "redirecting" also it was used wrongly, and made consoel > >>even less usefull... > > > >Let me break down the code: > > > >If the user has asked for logging, then log to java.stdout and > >java.stderr as well as the actual stdout/stderr. > > > >If the user has said ICEDTEAPLUGIN_DEBUG=true, then the C side of the > >plugin will be printing it's information on stdout/stderr. In that case, > >redirect the java-side to java.stdout and java.stderr. > > > >Can you explain the problem with this scheme? Thanks for explaining! There's some things which I agree are a bug and should be fixed. Some other things, I am not sure about. > What is wrong, is that debug is suddenly changing not the verbosity of > output, but destination of output(without changing the verbosity > actually). > > - In 1.4 we have javaconsole and stdout/err as debugging outputs > > - there is variable redirectStreams which is true if > ICEDTEAPLUGIN_DEBUG is declared > > - in 1.4 ICEDTEAPLUGIN_DEBUG was affecting only C part, so it is > suspicious > > - there is variable enableLogging, which is always false, because it > is read from properties, *before* they are read from file (bug in > 1.4, fixed in head) (it also depneds on -verbose, but for simplicity > i will stay of as this (console) is just for applets part in 1.4) > > - as it is used, it is also duplicated withs console > DISABLED/all_other_values > > - now the original "logging" was under condition redirectStreams || > enableLogging, so it was depnding only on value of redirectStreams > and so on ICEDTEAPLUGIN_DEBUG set. > > - suspicions isnt it? No, not if you look at the actual effects. > - if one declared ICEDTEAPLUGIN_DEBUG (whic is normally affecting verbosity of C part), sudddenly > - the console starts to work Okay, this is a bug that we should fix. > - the verbosity of java part is still not-debug (so nothing interesting in console) That should be controlled by 'deployment.trace' option. > - the stdou/err is suddenly silenced No, the C side of the plugin is using the stdout/stderr of the browser. It will print tons of information. The java side writes its stdout/stderr to another location to keep things separate. Thanks, Omair From jvanek at redhat.com Wed Nov 6 00:37:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 06 Nov 2013 09:37:50 +0100 Subject: [icedtea-web] resurrection of (output)console? In-Reply-To: <20131105194409.GG1592@redhat.com> References: <5273CB7E.6010602@redhat.com> <20131101161127.GD1617@redhat.com> <5274D26E.7010209@redhat.com> <20131104005643.GB12307@redhat.com> <52778515.7010507@redhat.com> <20131105194409.GG1592@redhat.com> Message-ID: <5279FFDE.5000707@redhat.com> On 11/05/2013 08:44 PM, Omair Majid wrote: > * Jiri Vanek [2013-11-04 06:31]: >> before you will wonder about removed redirectStreams, please test >> patch :). Also it is remove in 1.5. Imho "debug" should have nothing >> to do with "redirecting" also it was used wrongly, and made consoel >> even less usefull... > > Let me break down the code: > > If the user has asked for logging, then log to java.stdout and > java.stderr as well as the actual stdout/stderr. > > If the user has said ICEDTEAPLUGIN_DEBUG=true, then the C side of the > plugin will be printing it's information on stdout/stderr. In that case, > redirect the java-side to java.stdout and java.stderr. > > Can you explain the problem with this scheme? What is wrong, is that debug is suddenly changing not the verbosity of output, but destination of output(without changing the verbosity actually). - In 1.4 we have javaconsole and stdout/err as debugging outputs - there is variable redirectStreams which is true if ICEDTEAPLUGIN_DEBUG is declared - in 1.4 ICEDTEAPLUGIN_DEBUG was affecting only C part, so it is suspicious - there is variable enableLogging, which is always false, because it is read from properties, *before* they are read from file (bug in 1.4, fixed in head) (it also depneds on -verbose, but for simplicity i will stay of as this (console) is just for applets part in 1.4) - as it is used, it is also duplicated withs console DISABLED/all_other_values - now the original "logging" was under condition redirectStreams || enableLogging, so it was depnding only on value of redirectStreams and so on ICEDTEAPLUGIN_DEBUG set. - suspicions isnt it? - if one declared ICEDTEAPLUGIN_DEBUG (whic is normally affecting verbosity of C part), sudddenly - the console starts to work - the verbosity of java part is still not-debug (so nothing interesting in console) - the stdou/err is suddenly silenced What I would expect: - if console is disabled, then "logging" is going just to stdou/err (not included in my patch) - when it is enabled (shown or not) then stdout/err do tea both to files and stdout/err - if console is enabled, stdout/err is still working fine (included in patch) - when "debug" is on (whatever it is in 1.4) more information is printed both to console and plugin (included in this patch) - actually correct with your idea "its for java developers on systems which do not have access to stdout/err" Its a week now when I wrote it (with blood in eyes:) ) so I hope I did not mess the explanation. > >> Now it is working as it should. ICEDTEAPLIGIN_DEBUG is setting level >> of verbosity, and console is jsut another form of output. > > This patch is always logging to java.stdout/java.stderr, even if not > asked for. > >> +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java Mon Nov 04 12:18:40 2013 +0100 >> @@ -106,14 +106,15 @@ >> >> PluginAppletSecurityContext.setStreamhandler(streamHandler); >> + //the properties are initialised during classlaoder creation >> + if (DeploymentConfiguration.VALUE_CONSOLE_STARTUP_MODE_SHOW.equals( >> + JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_CONSOLE_STARTUP_MODE))) { >> + PluginAppletSecurityContext.getStreamhandler().showConsole(); >> + } >> AppletSecurityContextManager.addContext(0, sc); > > The addition of these lines look okay, but I am a little sceptical about > the rest of the rest of the patch. btw I did an mistake in patch: the + public static final String VALUE_CONSOLE_STARTUP_MODE_SHOW = "SHOW"; is redundatn SHOW is already declared as CONSOLE_SHOW. I will push this part and we weill discuse the rest. But it really do not have sense for me :) J. From aazores at redhat.com Wed Nov 6 12:49:40 2013 From: aazores at redhat.com (Andrew Azores) Date: Wed, 06 Nov 2013 15:49:40 -0500 Subject: [rfc][icedtea-web] Reproducers deprecation warning cleanup Message-ID: <527AAB64.7040409@redhat.com> The attached archive contains 39 (!) patches. Each one corresponds to a testcase file, or the ServerAccess or ProcessWrapper classes. In the case of the testcases and ProcessWrapper, the changes include minor formatting fixes, or fixing the filename in license headers a few times, as well as changing references to ServerAccess.ProcessResult to use the standalone ProcessResult class, and changing the package name for JUnit. In ServerAccess, it's just formatting and the removal of the deprecated inner ProcessResult class. Changelog: * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: removed ProcessResult inner class * tests/test-extensions/net/sourceforge/jnlp/ProcessWrapper.java: use standalone ProcessResult rather than ServerAccess.ProcessResult * tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java: use standalone ProcessResult rather than ServerAccess.ProcessResult, use new JUnit package, fix formatting * tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java: same etc. for 35 more files... Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: reproducer_stabilization.tar.gz Type: application/gzip Size: 12319 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131106/c4f55441/reproducer_stabilization.tar.gz From ptisnovs at icedtea.classpath.org Thu Nov 7 00:19:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 07 Nov 2013 08:19:58 +0000 Subject: /hg/gfx-test: New tests added into CAGOperationsOnTwoConcentricC... Message-ID: changeset b233bf900e56 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=b233bf900e56 author: Pavel Tisnovsky date: Thu Nov 07 09:23:52 2013 +0100 New tests added into CAGOperationsOnTwoConcentricCircles test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java | 50 ++++++++++ 2 files changed, 55 insertions(+), 0 deletions(-) diffs (72 lines): diff -r 1519d3e53dea -r b233bf900e56 ChangeLog --- a/ChangeLog Wed Nov 06 10:31:05 2013 +0100 +++ b/ChangeLog Thu Nov 07 09:23:52 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-07 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java: + New tests added into CAGOperationsOnTwoConcentricCircles test suite. + 2013-11-06 Pavel Tisnovsky * src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java: diff -r 1519d3e53dea -r b233bf900e56 src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java Wed Nov 06 10:31:05 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java Thu Nov 07 09:23:52 2013 +0100 @@ -1059,6 +1059,56 @@ } /** + * Checks the process of creating and rendering new geometric shape + * constructed from two concentric circles using union operator. The shape is rendered + * using texture paint (fill). + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testUnionTextureFillUsingCheckerTexture(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTextureFillUsingCheckerTexture(image, graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromTwoConcentricCirclesUsingUnionOperator(image); + // draw the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from two concentric circles using union operator. The shape is rendered + * using texture paint (fill). + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testUnionTextureFillUsingDiagonalCheckerTexture(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set fill color + CommonRenderingStyles.setTextureFillUsingDiagonalCheckerTexture(image, graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromTwoConcentricCirclesUsingUnionOperator(image); + // draw the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Thu Nov 7 00:27:36 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 07 Nov 2013 08:27:36 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNegativeTest case into Message-ID: changeset a3744343ed0d in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=a3744343ed0d author: Pavel Tisnovsky date: Thu Nov 07 09:31:31 2013 +0100 Added new testGetResourceNegativeTest case into SimpleScriptContextClassTest. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/SimpleScriptContextClassTest.java | 8 ++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diffs (31 lines): diff -r bf9c54aa5bb9 -r a3744343ed0d ChangeLog --- a/ChangeLog Wed Nov 06 10:42:08 2013 +0100 +++ b/ChangeLog Thu Nov 07 09:31:31 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-07 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + Added new testGetResourceNegativeTest case into + SimpleScriptContextClassTest. + 2013-11-06 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r bf9c54aa5bb9 -r a3744343ed0d src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Wed Nov 06 10:42:08 2013 +0100 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Thu Nov 07 09:31:31 2013 +0100 @@ -1723,6 +1723,14 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getResourceNegativeTest() + */ + protected void testGetResourceNegativeTest() { + Object resource = this.simpleScriptContextClass.getResource("unknown"); + assertNull(resource, "getResource() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleScriptContext */ @SuppressWarnings("cast") From jvanek at redhat.com Thu Nov 7 01:33:42 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 07 Nov 2013 10:33:42 +0100 Subject: [rfc][icedtea-web] awt threads cant stop with console enabled Message-ID: <527B5E76.9040404@redhat.com> After console ressurection, the console window was never disposed, so jvm never terminated without system. exit(). This patch is handling it. Backport to 1.4 should not be necessary as in 1.4 console is shown only for plugin, and plugin.terminate is killing jvm quite successfully. However backport is possible if reviewer thinks differently. 2013-11-07 Jiri Vanek Fixed deadlock in awt threads. JavaConsole window is no disposed instead of hidden. * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: (lastSize) new global variable to remember last size of window.(contentPanel) moved from local to global scope. (initializeWindow) extracted from (initialize), is handling creation and filling of window. (showConsole) is now initializing window, and (hideConsole) is disposing it. * netx/net/sourceforge/jnlp/util/logging/OutputController.java: messageQueConsumer thread is now named, and its wait, have timeout. -------------- next part -------------- A non-text attachment was scrubbed... Name: removedAwtDeadlock.patch Type: text/x-patch Size: 4433 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131107/8547bb78/removedAwtDeadlock-0001.patch From jvanek at redhat.com Thu Nov 7 01:59:26 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 07 Nov 2013 10:59:26 +0100 Subject: [rfc][icedtea-web] Reproducers deprecation warning cleanup In-Reply-To: <527AAB64.7040409@redhat.com> References: <527AAB64.7040409@redhat.com> Message-ID: <527B647E.3080103@redhat.com> On 11/06/2013 09:49 PM, Andrew Azores wrote: > The attached archive contains 39 (!) patches. Each one corresponds to a testcase file, or the > ServerAccess or ProcessWrapper classes. In the case of the testcases and ProcessWrapper, the changes > include minor formatting fixes, or fixing the filename in license headers a few times, as well as > changing references to ServerAccess.ProcessResult to use the standalone ProcessResult class, and > changing the package name for JUnit. In ServerAccess, it's just formatting and the removal of the > deprecated inner ProcessResult class. > > Changelog: > * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: removed ProcessResult inner class > * tests/test-extensions/net/sourceforge/jnlp/ProcessWrapper.java: use standalone ProcessResult > rather than ServerAccess.ProcessResult > * tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java: use standalone ProcessResult > rather than ServerAccess.ProcessResult, use new JUnit package, fix formatting > * tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java: same > etc. for 35 more files... > Its fir work behind this clean up, thanx for it. Few hints: - I would dicourage you from CreateClassLoaderLunch1 -> CreateClassLoaderLunch renaming - it will make mess in statistics - I would dicourage you from listing all affected files. I would just wrote so,mething like get rid of ServerAccess.ProcessResult and junit.framework.Assert (in favour of ProcessResult and org.junit.Assert. - however for other chnages (like strict typing, or rmeoval of inner class) those files should be mentioned - few times there are no op changes like " " to " " empty lines. I would probbaly rather not include those changes. After those, please feel free to push. tahnx!! J. From aazores at icedtea.classpath.org Thu Nov 7 07:03:56 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Thu, 07 Nov 2013 15:03:56 +0000 Subject: /hg/icedtea-web: Reproducer test cleanup to remove deprecation w... Message-ID: changeset 630384e150d9 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=630384e150d9 author: Andrew Azores date: Thu Nov 07 09:59:22 2013 -0500 Reproducer test cleanup to remove deprecation warnings and type checking warnings. ServerAccess.ProcessResult removed and reference replaced with ProcessResult. junit.framework.assert replaced in favour of org.junit.Assert. Added parameterized typing to instantiation of several fields and local variables where the declaration was already parameterized. diffstat: ChangeLog | 22 ++++++ tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java | 4 +- tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java | 14 ++-- tests/reproducers/signed/DownloadService/testcases/DownloadServiceTest.java | 2 +- tests/reproducers/signed/EmptySignedJar/testcases/EmptySignedJarTest.java | 9 +- tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java | 9 +- tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java | 14 ++-- tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java | 14 ++-- tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java | 7 +- tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java | 12 +- tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java | 10 +- tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java | 6 +- tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java | 5 +- tests/reproducers/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java | 10 +- tests/reproducers/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java | 28 ++++---- tests/reproducers/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java | 28 ++++---- tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java | 3 +- tests/reproducers/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java | 7 +- tests/reproducers/simple/AppletTagWithMissingCodeAttribute/testcases/AppletTagWithMissingCodeAttribute.java | 2 +- tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java | 2 +- tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java | 5 +- tests/reproducers/simple/EmbeddedJnlpInApplet/testcases/EmbeddedJnlpInAppletTest.java | 2 +- tests/reproducers/simple/GeneratedId/testcases/GeneratedIdTest.java | 2 +- tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java | 4 +- tests/reproducers/simple/LocalesTest/testcases/LocalesTestTest.java | 2 +- tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java | 2 +- tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java | 35 +++++---- tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java | 4 +- tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java | 6 +- tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java | 3 +- tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java | 3 +- tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java | 3 +- tests/reproducers/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java | 25 +++--- tests/reproducers/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java | 7 +- tests/reproducers/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java | 9 +- tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java | 6 +- tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java | 8 +- tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java | 8 +- tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java | 6 +- tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java | 14 ++-- tests/test-extensions/net/sourceforge/jnlp/ContentReader.java | 2 +- tests/test-extensions/net/sourceforge/jnlp/ProcessWrapper.java | 14 ++-- tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java | 16 +--- 43 files changed, 212 insertions(+), 182 deletions(-) diffs (truncated from 1751 to 500 lines): diff -r dcd51951d507 -r 630384e150d9 ChangeLog --- a/ChangeLog Tue Nov 05 20:07:27 2013 +0100 +++ b/ChangeLog Thu Nov 07 09:59:22 2013 -0500 @@ -1,3 +1,25 @@ +2013-11-07 Andrew Azores + + Reproducer test cleanup. Replaced ServerAccess.ProcessResult in favour of + ProcessResult, and junit.framework.Assert in favour of org.junit.Assert. + Other notable changes below. + * tests/reproducers/simple/simpletest1/testcases/XDGspecificationTests.java: + (removeXdgValues, setXdgValues) list 'rr' uses parameterized type. + (getContentOfDirectory) list 'result' uses parameterized type + * tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: + (ProcessResult) inner class removed. (getBrowserParams) list 'l' uses + parameterized type + * tests/reproducers/simple/LocalesTest/testcases/LocalesTestTest.java: + (getChangedLocalesForSubproces) list 'rr' uses parameterized type + * tests/reproducers/simple/LocalisedInformationElement/testcases/LocalisedInformationElementTest.java: + same + * tests/test-extensions/net/sourceforge/jnlp/ProcessWrapper.java: + constructor for (String, List, String) lists 'urledArgs' and + 'otherArgs' use parameterized type. (stdoutl, stderrl) use parameterized + type. + * tests/test-extensions/net/sourceforge/jnlp/ContentReader.java: + (listeners) use parameterized type + 2013-11-05 Jiri Vanek Java console resurrected and connected to new logging. diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java --- a/tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java Thu Nov 07 09:59:22 2013 -0500 @@ -35,7 +35,7 @@ exception statement from your version. */ -import net.sourceforge.jnlp.ServerAccess.ProcessResult; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; @@ -58,4 +58,4 @@ String s0 = "This was ran from a folder specified in the archive tag."; Assert.assertTrue("Expected '"+s0+"', stdout was: " + pr.stdout, pr.stdout.contains(s0)); } -} \ No newline at end of file +} diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java --- a/tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/ClasspathManifestTest/testcases/ClasspathManifestTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -38,8 +38,8 @@ import java.util.ArrayList; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; -import net.sourceforge.jnlp.ServerAccess.ProcessResult; import net.sourceforge.jnlp.annotations.KnownToFail; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; @@ -76,14 +76,14 @@ commands.add(server.getJavawsLocation()); commands.add(ServerAccess.HEADLES_OPTION); commands.add("ClasspathManifestApplicationTest.jnlp"); - ServerAccess.ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); + ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); checkAppFails(pr, "ApplicationJNLPLocalTest"); } @NeedsDisplay @Test public void AppletJNLPRemoteTest() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(null, "/ClasspathManifestAppletTest.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(null, "/ClasspathManifestAppletTest.jnlp"); checkAppFails(pr, "AppletJNLPRemoteTest"); } @@ -95,7 +95,7 @@ commands.add(server.getJavawsLocation()); commands.add(ServerAccess.HEADLES_OPTION); commands.add("ClasspathManifestAppletTest.jnlp"); - ServerAccess.ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); + ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); checkAppFails(pr, "AppletJNLPRLocalTest"); } @@ -103,7 +103,7 @@ @TestInBrowsers(testIn = {Browsers.one}) @Test public void BrowserJNLPHrefRemoteTest() throws Exception { - ServerAccess.ProcessResult pr = server.executeBrowser("/ClasspathManifestJNLPHrefTest.html"); + ProcessResult pr = server.executeBrowser("/ClasspathManifestJNLPHrefTest.html"); checkAppFails(pr, "BrowserJNLPHrefRemoteTest"); } @@ -115,7 +115,7 @@ List commands=new ArrayList(2); commands.add(server.getBrowserLocation()); commands.add("ClasspathManifestJNLPHrefTest.html"); - ServerAccess.ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); + ProcessResult pr = ServerAccess.executeProcess(commands, server.getDir()); checkAppFails(pr, "BrowserJNLPHrefLocalTest"); } @@ -123,7 +123,7 @@ @TestInBrowsers(testIn = {Browsers.one}) @Test public void BrowserAppletRemoteTest() throws Exception { - ServerAccess.ProcessResult pr = server.executeBrowser("/ClasspathManifestAppletTest.html"); + ProcessResult pr = server.executeBrowser("/ClasspathManifestAppletTest.html"); Assert.assertTrue("ClasspathManifest.BrowserAppletRemoteTest stdout should contain " + s1 + " but didn't", pr.stdout.contains(s1)); // Should be the only one to search manifest for classpath. Assert.assertTrue("ClasspathManifest.BrowserAppletRemoteTest stdout should contain " + s2 + " but didn't", pr.stdout.contains(s2)); diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/DownloadService/testcases/DownloadServiceTest.java --- a/tests/reproducers/signed/DownloadService/testcases/DownloadServiceTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/DownloadService/testcases/DownloadServiceTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -40,10 +40,10 @@ import java.util.ArrayList; import java.util.List; -import junit.framework.Assert; import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; +import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/EmptySignedJar/testcases/EmptySignedJarTest.java --- a/tests/reproducers/signed/EmptySignedJar/testcases/EmptySignedJarTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/EmptySignedJar/testcases/EmptySignedJarTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -1,4 +1,4 @@ -/* EmptySignedJar.java +/* EmptySignedJarTest.java Copyright (C) 2012 Red Hat, Inc. This file is part of IcedTea. @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; import net.sourceforge.jnlp.annotations.Bug; @@ -53,21 +54,21 @@ @Test public void checkingForRequiredResources() throws Exception { String s = "Running SignedJarResource.."; - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJarResource.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJarResource.jnlp"); Assert.assertTrue("Could not locate SignedJarResource class within SignedJarResource jar", pr.stdout.contains(s)); } @Bug(id = "PR1049") @Test public void usingExtensionWithEmptyJar() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/EmptySignedJarInExtensionJnlp.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/EmptySignedJarInExtensionJnlp.jnlp"); Assert.assertTrue("Stdout should contain " + jarOutput + " but did not", pr.stdout.contains(jarOutput)); } @Bug(id = "PR1049") @Test public void usingLauncherWithEmptyJar() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/EmptySignedJarInLaunchingJnlp.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/EmptySignedJarInLaunchingJnlp.jnlp"); Assert.assertTrue("Stdout should contain " + jarOutput + " but did not", pr.stdout.contains(jarOutput)); } } diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java --- a/tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/ExtensionJnlp/testcases/ExtensionJnlpTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; import net.sourceforge.jnlp.annotations.Bug; @@ -55,7 +56,7 @@ @Test public void checkingForRequiredResources() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJar.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJar.jnlp"); Assert.assertTrue("Could not locate SignedJarResource class within SignedJarResource jar", pr.stdout.contains(jarOutput)); String s = "Running SignedJnlpResource.."; @@ -66,21 +67,21 @@ @Bug(id = "PR1040") @Test public void usingSignedExtension() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJarExtension.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJarExtension.jnlp"); Assert.assertTrue("Stdout should contain " + jarOutput + " but did not", pr.stdout.contains(jarOutput)); } @Bug(id = "PR1041") @Test public void mainJarInExtension() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJnlpJarAndSignedJarExtension.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJnlpJarAndSignedJarExtension.jnlp"); Assert.assertTrue("Stdout should contain " + jarOutput + " but did not", pr.stdout.contains(jarOutput)); } @Bug(id = "PR1042") @Test public void checkingSignedJnlpInExtension() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJnlpExtension.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/UsesSignedJnlpExtension.jnlp"); Assert.assertTrue("Stdout should contain " + signedJnlpException + " but did not", pr.stderr.contains(signedJnlpException)); } } diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java --- a/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -39,8 +39,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; -import net.sourceforge.jnlp.ServerAccess.ProcessResult; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; @@ -78,7 +78,7 @@ @Test @Bug(id = {"RH816592","PR858"}) public void launchInternalClassloaderWithDownloadedResourceAsJnlpApplication() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-new.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-new.jnlp"); evaluate(pr); Assert.assertFalse("should not be terminated but was", pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); @@ -94,7 +94,7 @@ @Test @Bug(id = {"RH816592","PR858"}) public void launchInternalClassloaderWithDownloadedResourceAsJnlpApplet() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-applet-new.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-applet-new.jnlp"); evaluate(pr); Assert.assertFalse("should not be terminated but was", pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); @@ -105,7 +105,7 @@ @NeedsDisplay @TestInBrowsers(testIn={Browsers.all}) public void launchInternalClassloaderWithDownloadedResourceAsHtmlApplet() throws Exception { - ServerAccess.ProcessResult pr = server.executeBrowser("/InternalClassloaderWithDownloadedResource-new.html"); + ProcessResult pr = server.executeBrowser("/InternalClassloaderWithDownloadedResource-new.html"); evaluate(pr); Assert.assertTrue("should be terminated but was not", pr.wasTerminated); } @@ -113,7 +113,7 @@ @Test @Bug(id = {"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-May/018737.html"}) public void launchInternalClassloaderWithDownloadedResourceAsJnlpApplicationHack() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-hack.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-hack.jnlp"); evaluate(pr); Assert.assertFalse("should not be terminated but was", pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); @@ -122,7 +122,7 @@ @Test @Bug(id = {"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-May/018737.html"}) public void launchInternalClassloaderWithDownloadedResourceAsJnlpAppletHack() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-applet-hack.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/InternalClassloaderWithDownloadedResource-applet-hack.jnlp"); evaluate(pr); Assert.assertFalse("should not be terminated but was", pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); @@ -133,7 +133,7 @@ @Bug(id = {"http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-May/018737.html"}) @TestInBrowsers(testIn={Browsers.all}) public void launchInternalClassloaderWithDownloadedResourceAsHtmlAppletHack() throws Exception { - ServerAccess.ProcessResult pr = server.executeBrowser("/InternalClassloaderWithDownloadedResource-hack.html"); + ProcessResult pr = server.executeBrowser("/InternalClassloaderWithDownloadedResource-hack.html"); evaluate(pr); Assert.assertTrue("should be terminated but was not", pr.wasTerminated); } diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java --- a/tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -1,4 +1,4 @@ -/* MissingJar.java +/* MissingJarTest.java Copyright (C) 2011 Red Hat, Inc. This file is part of IcedTea. @@ -38,10 +38,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; -import net.sourceforge.jnlp.ServerAccess.ProcessResult; + import org.junit.Assert; - import org.junit.Test; public class MissingJarTest { @@ -60,25 +60,25 @@ @Test public void MissingJarTest1() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar.jnlp"); evaluateResult(pr); } @Test public void MissingJarTest2() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar2.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar2.jnlp"); evaluateResult(pr); } @Test public void MissingJarTest3() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar3.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar3.jnlp"); evaluateResult(pr); } @Test public void MissingJarTest4() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar4.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/MissingJar4.jnlp"); evaluateResult(pr); } } diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java --- a/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -1,4 +1,4 @@ -/* ReadPropertiesSignedTest.java +/* ReadPropertiesBySignedHackTest.java Copyright (C) 2011 Red Hat, Inc. This file is part of IcedTea. @@ -35,11 +35,12 @@ exception statement from your version. */ - import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; + import org.junit.Assert; import org.junit.Test; @@ -52,7 +53,7 @@ @Test public void ReadPropertiesBySignedHackWithjoutXtrustAll() throws Exception { //no request for permissions - ServerAccess.ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesBySignedHack.jnlp"); + ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesBySignedHack.jnlp"); String s="java.lang.SecurityException: class \"ReadProperties\"'s signer information does not match signer information of other classes in the same package"; Assert.assertTrue("Stderr should contains "+s+" but did not",pr.stderr.contains(s)); String ss="ClassNotFoundException"; diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java --- a/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -35,11 +35,12 @@ exception statement from your version. */ - import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; + import org.junit.Assert; import org.junit.Test; @@ -53,7 +54,7 @@ @Test public void ReadSignedPropertiesWithoutPermissionsWithXtrustAll() throws Exception { //no request for permissions - ServerAccess.ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesSigned1.jnlp"); + ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesSigned1.jnlp"); Assert.assertTrue("Stderr should match "+accessMatcher+" but did not",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); @@ -65,7 +66,7 @@ @Test public void ReadSignedPropertiesWithPermissionsWithXtrustAll() throws Exception { //request for allpermissions - ServerAccess.ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesSigned2.jnlp"); + ProcessResult pr=server.executeJavawsHeadless(l,"/ReadPropertiesSigned2.jnlp"); Assert.assertFalse("Stderr should NOT match "+accessMatcher+" but did",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); @@ -76,16 +77,15 @@ @Test public void EnsureXtrustallNotAffectingUnsignedBehaviour() throws Exception { - ServerAccess.ProcessResult pr=server.executeJavawsHeadless(l,"/ReadProperties1.jnlp"); + ProcessResult pr=server.executeJavawsHeadless(l,"/ReadProperties1.jnlp"); Assert.assertTrue("Stderr should match "+accessMatcher+" but did not",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); Assert.assertFalse("stdout lenght should not be >2 but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("should not be terminated but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); - ServerAccess.ProcessResult pr2=server.executeJavawsHeadless(null,"/ReadProperties1.jnlp"); + ProcessResult pr2=server.executeJavawsHeadless(null,"/ReadProperties1.jnlp"); Assert.assertEquals(pr.stderr, pr2.stderr); Assert.assertEquals(pr.stdout, pr2.stdout); - } } diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java --- a/tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -38,7 +38,9 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; + import org.junit.Assert; import org.junit.Test; @@ -52,7 +54,7 @@ @Test public void launchingFileMatchesSignedApplication1() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication1.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication1.jnlp"); String s = "Running signed application in main"; Assert.assertTrue("Stdout should contains " + s + " but did not", pr.stdout.contains(s)); } @@ -62,7 +64,7 @@ */ @Test public void launchingFileDoesNotMatchSignedApplication1() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication2.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication2.jnlp"); Assert.assertTrue("Stderr should contains " + signedException + " but did not", pr.stderr.contains(signedException)); } @@ -71,7 +73,7 @@ */ @Test public void launchingFileDoesNotMatchSignedApplication2() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication3.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpApplication3.jnlp"); Assert.assertTrue("Stderr should contains " + signedException + " but did not", pr.stderr.contains(signedException)); } -} \ No newline at end of file +} diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java --- a/tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -38,7 +38,9 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; + import org.junit.Assert; import org.junit.Test; @@ -49,14 +51,14 @@ @Test public void launchingFileMatchesSigned() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpCaseTestOne1.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpCaseTestOne1.jnlp"); String s = "Running signed application in main"; Assert.assertTrue("Stdout should contains " + s + " but did not", pr.stdout.contains(s)); } @Test public void launchingFileDoesNotMatchSigned() throws Exception { - ServerAccess.ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpCaseTestOne2.jnlp"); + ProcessResult pr = server.executeJavawsHeadless(l, "/SignedJnlpCaseTestOne2.jnlp"); String s = "net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The signed " + "JNLP file did not match the launching JNLP file. Missing Resource: Signed Application did not match " + "launching JNLP File"; diff -r dcd51951d507 -r 630384e150d9 tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java --- a/tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java Tue Nov 05 20:07:27 2013 +0100 +++ b/tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java Thu Nov 07 09:59:22 2013 -0500 @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; From jvanek at redhat.com Thu Nov 7 07:19:40 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 07 Nov 2013 16:19:40 +0100 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class Message-ID: <527BAF8C.6000404@redhat.com> As jnlp file is argument passed to various security dialogues, it should have access to attributes. This is continuation of http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-October/025070.html I do not have good feelings from patch, but jnlpfile x jnlp classloader encapsulation ... or "encapsulation" is what it is :( As the result this patch is implementing http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name Also I have found http://icedtea.classpath.org/hg/icedtea-web/file/dcd51951d507/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java#l831 So I would like to ask if this condition is correct. IMO not. There should be : if (launchDesc != null) { mainClass = launchDesc.getMainClass(); } Or am I missing something? Also there is a lot of "if (mainClass == null){work}if (mainClass == null){work} " as speed up there should be some "if (mainClass == null ) return" hmm? J. -------------- next part -------------- A non-text attachment was scrubbed... Name: addedAccessToManifestsAttributesFromJnlpFile.patch Type: text/x-patch Size: 24604 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131107/00500d69/addedAccessToManifestsAttributesFromJnlpFile.patch From aazores at redhat.com Thu Nov 7 08:02:35 2013 From: aazores at redhat.com (Andrew Azores) Date: Thu, 07 Nov 2013 11:02:35 -0500 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527BAF8C.6000404@redhat.com> References: <527BAF8C.6000404@redhat.com> Message-ID: <527BB99B.7010808@redhat.com> On 11/07/2013 10:19 AM, Jiri Vanek wrote: > As jnlp file is argument passed to various security dialogues, it > should have access to attributes. > This is continuation of > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-October/025070.html > > I do not have good feelings from patch, but jnlpfile x jnlp > classloader encapsulation ... or "encapsulation" is what it is :( > > As the result this patch is implementing > http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name > > Also I have found > http://icedtea.classpath.org/hg/icedtea-web/file/dcd51951d507/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java#l831 > So I would like to ask if this condition is correct. IMO not. There > should be : > if (launchDesc != null) { > mainClass = launchDesc.getMainClass(); > } > > Or am I missing something? I don't know, your suggestion seems to make sense but the JNLPClassLoader is just such a mess to deal with that I'm not sure I really can okay this change :S. If you can produce some test cases to show that this still works and doesn't cause problems... > Also there is a lot of "if (mainClass == null){work}if (mainClass == > null){work} " as speed up there should be some "if (mainClass == null > ) return" hmm? I haven't looked deeply into it but I think this might break applets where they have a library JAR and a plain .class for the main-class in the codebase, depending on where you're thinking of putting it. Where do you mean to put this? And would it really make things much faster? > > > J. Little nits: PluginBridge#getTitle : - Spacing around '!=' in the first null check perhaps? - Spelling in comment. "specification recommends main class instead of HTML parameter" ResourceDesc#getMainJar : - 'else' on same line as closing brace of the 'if', just to be consistent with other code Other than that, I think it looks good - so long as the other two new attributes get implemented as well :) Thanks, -- Andrew A From aazores at redhat.com Thu Nov 7 11:47:24 2013 From: aazores at redhat.com (Andrew Azores) Date: Thu, 07 Nov 2013 14:47:24 -0500 Subject: [icedtea-web] "Not All Signed" dialog and low-security setting Message-ID: <527BEE4C.5030005@redhat.com> Hi, Should the "Not All Signed" dialog (SecurityDialogs.showNotAllSignedWarningDialog(JNLPFile)) still appear when extended applet security is set to "low?" This can happen with signed applets with external main-classes, or applets with mixed signing. To me it seems like it should not appear when running one of these applets on low security. Changing this behaviour would also make it possible for me to add a reproducer for the recent signed applet with external main-class fix (PR1513). Thanks, -- Andrew A From ptisnovs at icedtea.classpath.org Fri Nov 8 00:48:47 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 08 Nov 2013 08:48:47 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBitBltAffineIdentityTr... Message-ID: changeset 3a35b601e7ad in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=3a35b601e7ad author: Pavel Tisnovsky date: Fri Nov 08 09:52:39 2013 +0100 Ten new tests added into BitBitBltAffineIdentityTransformOp.java: diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r b233bf900e56 -r 3a35b601e7ad ChangeLog --- a/ChangeLog Thu Nov 07 09:23:52 2013 +0100 +++ b/ChangeLog Fri Nov 08 09:52:39 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-08 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: + Ten new tests added into BitBitBltAffineIdentityTransformOp.java: + 2013-11-07 Pavel Tisnovsky * src/org/gfxtest/testsuites/CAGOperationsOnTwoConcentricCircles.java: diff -r b233bf900e56 -r 3a35b601e7ad src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Thu Nov 07 09:23:52 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Fri Nov 08 09:52:39 2013 +0100 @@ -1864,6 +1864,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGB(image, graphics2d, IdentifyTranspormationOp6); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp4); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Fri Nov 8 00:50:38 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 08 Nov 2013 08:50:38 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNegativeTest case into Message-ID: changeset 084069106e7f in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=084069106e7f author: Pavel Tisnovsky date: Fri Nov 08 09:54:31 2013 +0100 Added new testGetResourceNegativeTest case into InvocableClassTest. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/InvocableClassTest.java | 8 ++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diffs (31 lines): diff -r a3744343ed0d -r 084069106e7f ChangeLog --- a/ChangeLog Thu Nov 07 09:31:31 2013 +0100 +++ b/ChangeLog Fri Nov 08 09:54:31 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-08 Pavel Tisnovsky + + * src/org/RhinoTests/InvocableClassTest.java: + Added new testGetResourceNegativeTest case into + InvocableClassTest. + 2013-11-07 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r a3744343ed0d -r 084069106e7f src/org/RhinoTests/InvocableClassTest.java --- a/src/org/RhinoTests/InvocableClassTest.java Thu Nov 07 09:31:31 2013 +0100 +++ b/src/org/RhinoTests/InvocableClassTest.java Fri Nov 08 09:54:31 2013 +0100 @@ -1450,6 +1450,14 @@ } /** + * Test for method javax.script.Invocable.getClass().getResourceNegativeTest() + */ + protected void testGetResourceNegativeTest() { + Object resource = this.invocableClass.getResource("unknown"); + assertNull(resource, "getResource() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.Invocable */ @SuppressWarnings("cast") From jvanek at redhat.com Fri Nov 8 04:24:03 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 08 Nov 2013 13:24:03 +0100 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527BB99B.7010808@redhat.com> References: <527BAF8C.6000404@redhat.com> <527BB99B.7010808@redhat.com> Message-ID: <527CD7E3.2000603@redhat.com> On 11/07/2013 05:02 PM, Andrew Azores wrote: > On 11/07/2013 10:19 AM, Jiri Vanek wrote: >> As jnlp file is argument passed to various security dialogues, it should have access to attributes. >> This is continuation of >> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-October/025070.html >> >> I do not have good feelings from patch, but jnlpfile x jnlp classloader encapsulation ... or >> "encapsulation" is what it is :( >> >> As the result this patch is implementing >> http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name >> >> Also I have found >> http://icedtea.classpath.org/hg/icedtea-web/file/dcd51951d507/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java#l831 >> So I would like to ask if this condition is correct. IMO not. There should be : >> if (launchDesc != null) { >> mainClass = launchDesc.getMainClass(); >> } >> >> Or am I missing something? > > I don't know, your suggestion seems to make sense but the JNLPClassLoader is just such a mess to > deal with that I'm not sure I really can okay this change :S. If you can produce some test cases to > show that this still works and doesn't cause problems... I will send this as separate patch. And cc Adam who introduced those lines. > >> Also there is a lot of "if (mainClass == null){work}if (mainClass == null){work} " as speed up >> there should be some "if (mainClass == null ) return" hmm? > > I haven't looked deeply into it but I think this might break applets where they have a library JAR > and a plain .class for the main-class in the codebase, depending on where you're thinking of putting > it. Where do you mean to put this? And would it really make things much faster? Checked again, it is not worthy. > >> >> >> J. > > Little nits: > PluginBridge#getTitle : > - Spacing around '!=' in the first null check perhaps? > - Spelling in comment. "specification recommends main class instead of HTML parameter" > > ResourceDesc#getMainJar : > - 'else' on same line as closing brace of the 'if', just to be consistent with other code > > Other than that, I think it looks good - so long as the other two new attributes get implemented as > well :) Above fixed, also littl ebut improved (some logic moved from pluginBridge to jnlpfile) As this should go to 1.4 , please double check before aprove. J. 2013-11-08 Jiri Vanek Enabled access to manifests' attributes from JNLPFile class Implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name * netx/net/sourceforge/jnlp/JNLPFile.java: Added (manifestsAttributes) field. Added (ManifestsAttributes) inner class, to encapsulate access to attributes. (getTitle) can handle manifests too. * netx/net/sourceforge/jnlp/PluginBridge.java: is following app_name recommendations. * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) made more granular * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (init) inject itself to file's ManifestsAttributes. (checkForAttributeInJars) renamed field mainClassInThisJar to attributeInThisJar. Added getter for mainClass. * netx/net/sourceforge/jnlp/security/CertWarningPane.java: bracketing cleanup. * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java: new test to check new functionalites * tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java: same -------------- next part -------------- A non-text attachment was scrubbed... Name: addedAccessToManifestsAttributesFromJnlpFile2.patch Type: text/x-patch Size: 29818 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131108/f5624b8a/addedAccessToManifestsAttributesFromJnlpFile2-0001.patch From jvanek at redhat.com Fri Nov 8 04:29:13 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 08 Nov 2013 13:29:13 +0100 Subject: [rfc][icedtea-web] suspicious return from check for main Message-ID: <527CD919.9030801@redhat.com> Hi Adam, You have introduced those lines - http://icedtea.classpath.org/hg/icedtea-web/annotate/dcd51951d507/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java#l831 - and I have no clue why. They should look like the suggested in patch. May you check? J. ps: I was trying to catch you on #openjdk but had no luck. I wonted to thank you fro Cpp-unittests, they are appearing to be extraordinary helpful companions. So here The Thanx lay :) -------------- next part -------------- A non-text attachment was scrubbed... Name: suspiciousReturnFromCheckForMain.patch Type: text/x-patch Size: 705 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131108/f19a0211/suspiciousReturnFromCheckForMain.patch From jvanek at redhat.com Fri Nov 8 05:05:16 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 08 Nov 2013 14:05:16 +0100 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527CD7E3.2000603@redhat.com> References: <527BAF8C.6000404@redhat.com> <527BB99B.7010808@redhat.com> <527CD7E3.2000603@redhat.com> Message-ID: <527CE18C.6080704@redhat.com> Small brekage, fix on fix.... On 11/08/2013 01:24 PM, Jiri Vanek wrote: > On 11/07/2013 05:02 PM, Andrew Azores wrote: >> On 11/07/2013 10:19 AM, Jiri Vanek wrote: >>> As jnlp file is argument passed to various security dialogues, it should have access to attributes. >>> This is continuation of >>> http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-October/025070.html >>> >>> I do not have good feelings from patch, but jnlpfile x jnlp classloader encapsulation ... or >>> "encapsulation" is what it is :( >>> >>> As the result this patch is implementing >>> http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name >>> >>> Also I have found >>> http://icedtea.classpath.org/hg/icedtea-web/file/dcd51951d507/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java#l831 >>> >>> So I would like to ask if this condition is correct. IMO not. There should be : >>> if (launchDesc != null) { >>> mainClass = launchDesc.getMainClass(); >>> } >>> >>> Or am I missing something? >> >> I don't know, your suggestion seems to make sense but the JNLPClassLoader is just such a mess to >> deal with that I'm not sure I really can okay this change :S. If you can produce some test cases to >> show that this still works and doesn't cause problems... > > I will send this as separate patch. And cc Adam who introduced those lines. > >> >>> Also there is a lot of "if (mainClass == null){work}if (mainClass == null){work} " as speed up >>> there should be some "if (mainClass == null ) return" hmm? >> >> I haven't looked deeply into it but I think this might break applets where they have a library JAR >> and a plain .class for the main-class in the codebase, depending on where you're thinking of putting >> it. Where do you mean to put this? And would it really make things much faster? > > Checked again, it is not worthy. >> >>> >>> >>> J. >> >> Little nits: >> PluginBridge#getTitle : >> - Spacing around '!=' in the first null check perhaps? >> - Spelling in comment. "specification recommends main class instead of HTML parameter" >> >> ResourceDesc#getMainJar : >> - 'else' on same line as closing brace of the 'if', just to be consistent with other code >> >> Other than that, I think it looks good - so long as the other two new attributes get implemented as >> well :) > > Above fixed, also littl ebut improved (some logic moved from pluginBridge to jnlpfile) > > As this should go to 1.4 , please double check before aprove. > > > J. > > > 2013-11-08 Jiri Vanek > > Enabled access to manifests' attributes from JNLPFile class > Implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name > * netx/net/sourceforge/jnlp/JNLPFile.java: Added (manifestsAttributes) field. > Added (ManifestsAttributes) inner class, to encapsulate access to attributes. > (getTitle) can handle manifests too. > * netx/net/sourceforge/jnlp/PluginBridge.java: is following app_name recommendations. > * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) made more granular > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (init) inject itself > to file's ManifestsAttributes. (checkForAttributeInJars) renamed field > mainClassInThisJar to attributeInThisJar. Added getter for mainClass. > * netx/net/sourceforge/jnlp/security/CertWarningPane.java: bracketing cleanup. > * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java: new test to > check new functionalites > * tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java: same -------------- next part -------------- diff -r 705ee12ba503 netx/net/sourceforge/jnlp/JNLPFile.java --- a/netx/net/sourceforge/jnlp/JNLPFile.java Fri Nov 08 13:14:52 2013 +0100 +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Fri Nov 08 14:04:26 2013 +0100 @@ -326,9 +326,6 @@ return manifestTitle; } String mainClass = getManifestsAttributes().getMainClass(); - if (mainClass == null){ - return "Unnown application title"; - } return mainClass; } diff -r 705ee12ba503 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java Fri Nov 08 13:14:52 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java Fri Nov 08 14:04:26 2013 +0100 @@ -99,7 +99,7 @@ Assert.assertNull(jnlpFile.getTitleFromJnlp()); Assert.assertNull(jnlpFile.getTitleFromManifest()); - Assert.assertNotNull(jnlpFile.getTitle());//some dummy value + Assert.assertNull(jnlpFile.getTitle()); setTitle(jnlpFile); @@ -111,7 +111,7 @@ Assert.assertNull(jnlpFile.getTitleFromJnlp()); Assert.assertNull(jnlpFile.getTitleFromManifest()); - Assert.assertNotNull(jnlpFile.getTitle());//some dummy value + Assert.assertNull(jnlpFile.getTitle()); final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); From bugzilla-daemon at icedtea.classpath.org Fri Nov 8 06:32:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Nov 2013 14:32:16 +0000 Subject: [Bug 1597] New: Can't read such terrible fonts, can't make bigger with CTRL++ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1597 Bug ID: 1597 Summary: Can't read such terrible fonts, can't make bigger with CTRL++ Classification: Unclassified Product: IcedTea-Web Version: 1.4 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: jidanni at jidanni.org CC: unassigned at icedtea.classpath.org -- 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/20131108/686a6788/attachment.html From aazores at redhat.com Fri Nov 8 06:32:16 2013 From: aazores at redhat.com (Andrew Azores) Date: Fri, 08 Nov 2013 09:32:16 -0500 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527CD7E3.2000603@redhat.com> References: <527BAF8C.6000404@redhat.com> <527BB99B.7010808@redhat.com> <527CD7E3.2000603@redhat.com> Message-ID: <527CF5F0.7030908@redhat.com> On 11/08/2013 07:24 AM, Jiri Vanek wrote: > Above fixed, also littl ebut improved (some logic moved from > pluginBridge to jnlpfile) > > As this should go to 1.4 , please double check before aprove. > > > J. Few nits again: JNLPFile: - instead of named String constants APP_NAME etc., maybe use an enum here? If not, at least make them final, especially since they're public. IMO enum is better though. - #getTitle() - last return statement has a typo. "Unnown" should be "Unknown" - #getTitleFromManifest() - typo, "manifes" is missing its 't'. Maybe "Check with application vendor" rather than "Check vendor of application" ? ManifestAttributes: - #getApplicationName() uses APP_NAME named constant - why not for the other two similar calls? You just have a hardcoded string in those. Thanks, -- Andrew A From bugzilla-daemon at icedtea.classpath.org Fri Nov 8 06:38:48 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Nov 2013 14:38:48 +0000 Subject: [Bug 1597] Can't read such terrible fonts, can't make bigger with CTRL++ In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1597 --- Comment #1 from jidanni at jidanni.org --- Created attachment 971 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=971&action=edit grep -v Cookie plugin.log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131108/d3ffeb25/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Nov 8 06:43:11 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Nov 2013 14:43:11 +0000 Subject: [Bug 1597] Can't read such terrible fonts, can't make bigger with CTRL++ In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1597 --- Comment #2 from jidanni at jidanni.org --- Created attachment 972 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=972&action=edit java.stderr java version "1.7.0_25" OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4) OpenJDK Server VM (build 23.7-b01, mixed mode) ???? 2.2 ? Package: icedtea-7-plugin Version: 1.4.1-1 -- System Information: Debian Release: jessie/sid APT prefers experimental APT policy: (990, 'experimental'), (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 3.11-1-686-pae (SMP w/2 CPU cores) Locale: LANG=zh_TW.UTF-8, LC_CTYPE=zh_TW.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages icedtea-7-plugin depends on: ii icedtea-netx 1.4.1-1 ii libc6 2.17-93 ii libgcc1 1:4.8.2-2 ii libglib2.0-0 2.38.1-2 ii libstdc++6 4.8.2-2 ii openjdk-7-jre 7u25-2.3.12-4 icedtea-7-plugin recommends no packages. icedtea-7-plugin suggests no packages. -- no debconf information -- 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/20131108/50d74c90/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Nov 8 06:53:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Nov 2013 14:53:36 +0000 Subject: [Bug 1597] Can't read such terrible fonts, can't make bigger with CTRL++ In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1597 --- Comment #3 from jidanni at jidanni.org --- Created attachment 973 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=973&action=edit too dotty How can anybody read such dotty fonts. If I am to replace the fonts, please make a wiki page saying how. -- 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/20131108/a506eb9e/attachment-0001.html From aazores at redhat.com Fri Nov 8 07:27:33 2013 From: aazores at redhat.com (Andrew Azores) Date: Fri, 08 Nov 2013 10:27:33 -0500 Subject: [rfc][icedtea-web] awt threads cant stop with console enabled In-Reply-To: <527B5E76.9040404@redhat.com> References: <527B5E76.9040404@redhat.com> Message-ID: <527D02E5.7040402@redhat.com> On 11/07/2013 04:33 AM, Jiri Vanek wrote: > After console ressurection, the console window was never disposed, so > jvm never terminated without system. exit(). This patch is handling it. > Backport to 1.4 should not be necessary as in 1.4 console is shown > only for plugin, and plugin.terminate is killing jvm quite > successfully. However backport is possible if reviewer thinks > differently. > > 2013-11-07 Jiri Vanek > > Fixed deadlock in awt threads. JavaConsole window is no disposed > instead of hidden. > * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: > (lastSize) new > global variable to remember last size of window.(contentPanel) > moved from > local to global scope. (initializeWindow) extracted from > (initialize), is > handling creation and filling of window. (showConsole) is now > initializing > window, and (hideConsole) is disposing it. > * netx/net/sourceforge/jnlp/util/logging/OutputController.java: > messageQueConsumer > thread is now named, and its wait, have timeout. Since contentPanel is now global, perhaps you don't need to pass it as a parameter? I can't see why initializeWindow would need to be passed any other JPanel instance other than that one. Also, I know this isn't part of this patch, but maybe the parameter for showConsole could be given a more informative name, eg "modal" - "b" is really not informative at all unless you go look at the source. I don't know if this "hanging VM" problem is quite a "deadlock" per se, so maybe word that comment a little differently as well, just so in the future someone maintaining this code doesn't think there was actually some issue with competing threads involved with this code. Unless I'm just missing the point and this really is resolving competition for resources :) Otherwise, I think this looks okay. Thanks, -- Andrew A From andrew at icedtea.classpath.org Fri Nov 8 11:32:19 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 08 Nov 2013 19:32:19 +0000 Subject: /hg/release/icedtea7-forest-2.4/jdk: 8025255: (tz) Support tzdat... Message-ID: changeset 18ee4113fc37 in /hg/release/icedtea7-forest-2.4/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk?cmd=changeset;node=18ee4113fc37 author: aefimov date: Fri Nov 08 19:32:09 2013 +0000 8025255: (tz) Support tzdata2013g Reviewed-by: okutsu, mfang diffstat: make/sun/javazic/tzdata/VERSION | 2 +- make/sun/javazic/tzdata/africa | 52 ++- make/sun/javazic/tzdata/antarctica | 27 +- make/sun/javazic/tzdata/asia | 91 ++++-- make/sun/javazic/tzdata/australasia | 31 +- make/sun/javazic/tzdata/backward | 12 +- make/sun/javazic/tzdata/etcetera | 4 +- make/sun/javazic/tzdata/europe | 126 ++++++-- make/sun/javazic/tzdata/iso3166.tab | 6 +- make/sun/javazic/tzdata/leapseconds | 70 +---- make/sun/javazic/tzdata/northamerica | 142 +++------ make/sun/javazic/tzdata/southamerica | 57 +++- make/sun/javazic/tzdata/zone.tab | 32 +- src/share/classes/sun/util/resources/TimeZoneNames.java | 10 +- src/share/classes/sun/util/resources/TimeZoneNames_de.java | 60 ++-- src/share/classes/sun/util/resources/TimeZoneNames_es.java | 36 +- src/share/classes/sun/util/resources/TimeZoneNames_fr.java | 28 +- src/share/classes/sun/util/resources/TimeZoneNames_it.java | 46 +- src/share/classes/sun/util/resources/TimeZoneNames_ja.java | 52 +- src/share/classes/sun/util/resources/TimeZoneNames_ko.java | 52 +- src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java | 48 +- src/share/classes/sun/util/resources/TimeZoneNames_sv.java | 50 +- src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java | 52 +- src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java | 52 +- 24 files changed, 597 insertions(+), 541 deletions(-) diffs (truncated from 2900 to 500 lines): diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/VERSION --- a/make/sun/javazic/tzdata/VERSION Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/VERSION Fri Nov 08 19:32:09 2013 +0000 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2013d +tzdata2013g diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/africa --- a/make/sun/javazic/tzdata/africa Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/africa Fri Nov 08 19:32:09 2013 +0000 @@ -881,13 +881,23 @@ # transitions would be 2013-07-07 and 2013-08-10; see: # http://www.maroc.ma/en/news/morocco-suspends-daylight-saving-time-july-7-aug10 -# From Paul Eggert (2013-07-03): +# From Steffen Thorsen (2013-09-28): +# Morocco extends DST by one month, on very short notice, just 1 day +# before it was going to end. There is a new decree (2.13.781) for +# this, where DST from now on goes from last Sunday of March at 02:00 +# to last Sunday of October at 03:00, similar to EU rules. Official +# source (French): +# http://www.maroc.gov.ma/fr/actualites/lhoraire-dete-gmt1-maintenu-jusquau-27-octobre-2013 +# Another source (specifying the time for start and end in the decree): +# http://www.lemag.ma/Heure-d-ete-au-Maroc-jusqu-au-27-octobre_a75620.html + +# From Paul Eggert (2013-09-30): # To estimate what the Moroccan government will do in future years, -# transition dates for 2014 through 2021 were determined by running +# transition dates for 2014 through 2037 were determined by running # the following program under GNU Emacs 24.3: # # (let ((islamic-year 1435)) -# (while (< islamic-year 1444) +# (while (< islamic-year 1460) # (let ((a # (calendar-gregorian-from-absolute # (calendar-islamic-to-absolute (list 9 1 islamic-year)))) @@ -902,13 +912,14 @@ # (car (cdr (cdr b))) (calendar-month-name (car b) t) (car (cdr b))))) # (setq islamic-year (+ 1 islamic-year)))) # -# with the results hand-edited for 2020-2022, when the normal spring-forward -# date falls during the estimated Ramadan. -# -# From 2023 through 2038 Ramadan is not predicted to overlap with -# daylight saving time. Starting in 2039 there will be overlap again, +# with spring-forward transitions removed for 2023-2025, when the +# normal spring-forward date falls during the estimated Ramadan; with +# all transitions removed for 2026-2035, where the estimated Ramadan +# falls entirely outside daylight-saving time; and with fall-back +# transitions removed for 2036-2037, where the normal fall-back +# date falls during the estimated Ramadan. Problems continue after that, # but 32-bit time_t values roll around in 2038 so for now do not worry -# about dates after 2038. +# about dates after 2037. # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -935,12 +946,14 @@ Rule Morocco 2010 only - Aug 8 0:00 0 - Rule Morocco 2011 only - Apr 3 0:00 1:00 S Rule Morocco 2011 only - Jul 31 0 0 - -Rule Morocco 2012 2019 - Apr lastSun 2:00 1:00 S -Rule Morocco 2012 max - Sep lastSun 3:00 0 - +Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 S +Rule Morocco 2012 only - Sep 30 3:00 0 - Rule Morocco 2012 only - Jul 20 3:00 0 - Rule Morocco 2012 only - Aug 20 2:00 1:00 S Rule Morocco 2013 only - Jul 7 3:00 0 - Rule Morocco 2013 only - Aug 10 2:00 1:00 S +Rule Morocco 2013 2035 - Oct lastSun 3:00 0 - +Rule Morocco 2014 2022 - Mar lastSun 2:00 1:00 S Rule Morocco 2014 only - Jun 29 3:00 0 - Rule Morocco 2014 only - Jul 29 2:00 1:00 S Rule Morocco 2015 only - Jun 18 3:00 0 - @@ -953,10 +966,21 @@ Rule Morocco 2018 only - Jun 15 2:00 1:00 S Rule Morocco 2019 only - May 6 3:00 0 - Rule Morocco 2019 only - Jun 5 2:00 1:00 S +Rule Morocco 2020 only - Apr 24 3:00 0 - Rule Morocco 2020 only - May 24 2:00 1:00 S +Rule Morocco 2021 only - Apr 13 3:00 0 - Rule Morocco 2021 only - May 13 2:00 1:00 S +Rule Morocco 2022 only - Apr 3 3:00 0 - Rule Morocco 2022 only - May 3 2:00 1:00 S -Rule Morocco 2023 max - Apr lastSun 2:00 1:00 S +Rule Morocco 2023 only - Apr 22 2:00 1:00 S +Rule Morocco 2024 only - Apr 10 2:00 1:00 S +Rule Morocco 2025 only - Mar 31 2:00 1:00 S +Rule Morocco 2026 max - Mar lastSun 2:00 1:00 S +Rule Morocco 2036 only - Oct 21 3:00 0 - +Rule Morocco 2037 only - Oct 11 3:00 0 - +Rule Morocco 2038 only - Sep 30 3:00 0 - +Rule Morocco 2038 only - Oct 30 2:00 1:00 S +Rule Morocco 2038 max - Oct lastSun 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26 @@ -1123,9 +1147,7 @@ 3:00 - EAT # South Sudan -Zone Africa/Juba 2:06:24 - LMT 1931 - 2:00 Sudan CA%sT 2000 Jan 15 12:00 - 3:00 - EAT +Link Africa/Khartoum Africa/Juba # Swaziland # Zone NAME GMTOFF RULES FORMAT [UNTIL] diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/antarctica --- a/make/sun/javazic/tzdata/antarctica Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/antarctica Fri Nov 08 19:32:09 2013 +0000 @@ -39,9 +39,9 @@ # # Except for the French entries, # I made up all time zone abbreviations mentioned here; corrections welcome! -# FORMAT is `zzz' and GMTOFF is 0 for locations while uninhabited. +# FORMAT is 'zzz' and GMTOFF is 0 for locations while uninhabited. -# These rules are stolen from the `southamerica' file. +# These rules are stolen from the 'southamerica' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule ArgAQ 1964 1966 - Mar 1 0:00 0 - Rule ArgAQ 1964 1966 - Oct 15 0:00 1:00 S @@ -251,9 +251,10 @@ # Scott Island (never inhabited) # # year-round base -# Scott, Ross Island, since 1957-01, is like Antarctica/McMurdo. +# Scott Base, Ross Island, since 1957-01. +# See Pacific/Auckland. # -# These rules for New Zealand are stolen from the `australasia' file. +# These rules for New Zealand are stolen from the 'australasia' file. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule NZAQ 1974 only - Nov 3 2:00s 1:00 D Rule NZAQ 1975 1988 - Oct lastSun 2:00s 1:00 D @@ -291,11 +292,11 @@ # From Lee Hotz (2001-03-08): # I queried the folks at Columbia who spent the summer at Vostok and this is # what they had to say about time there: -# ``in the US Camp (East Camp) we have been on New Zealand (McMurdo) +# "in the US Camp (East Camp) we have been on New Zealand (McMurdo) # time, which is 12 hours ahead of GMT. The Russian Station Vostok was # 6 hours behind that (although only 2 miles away, i.e. 6 hours ahead # of GMT). This is a time zone I think two hours east of Moscow. The -# natural time zone is in between the two: 8 hours ahead of GMT.'' +# natural time zone is in between the two: 8 hours ahead of GMT." # # From Paul Eggert (2001-05-04): # This seems to be hopelessly confusing, so I asked Lee Hotz about it @@ -360,16 +361,8 @@ -4:00 ChileAQ CL%sT # # -# McMurdo, Ross Island, since 1955-12 -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Antarctica/McMurdo 0 - zzz 1956 - 12:00 NZAQ NZ%sT -# -# Amundsen-Scott, South Pole, continuously occupied since 1956-11-20 -# -# From Paul Eggert (1996-09-03): -# Normally it wouldn't have a separate entry, since it's like the -# larger Antarctica/McMurdo since 1970, but it's too famous to omit. +# McMurdo Station, Ross Island, since 1955-12 +# Amundsen-Scott South Pole Station, continuously occupied since 1956-11-20 # # From Chris Carrier (1996-06-27): # Siple, the first commander of the South Pole station, @@ -391,4 +384,4 @@ # we have to go around and set them back 5 minutes or so. # Maybe if we let them run fast all of the time, we'd get to leave here sooner!! # -Link Antarctica/McMurdo Antarctica/South_Pole +# See 'australasia' for Antarctica/McMurdo. diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/asia --- a/make/sun/javazic/tzdata/asia Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/asia Fri Nov 08 19:32:09 2013 +0000 @@ -29,7 +29,7 @@ # go ahead and edit the file (and please send any changes to # tz at iana.org for general use in the future). -# From Paul Eggert (2013-02-21): +# From Paul Eggert (2013-08-11): # # A good source for time zone historical data outside the U.S. is # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), @@ -67,11 +67,11 @@ # 4:00 GST Gulf* # 5:30 IST India # 7:00 ICT Indochina* -# 7:00 WIT west Indonesia -# 8:00 CIT central Indonesia +# 7:00 WIB west Indonesia (Waktu Indonesia Barat) +# 8:00 WITA central Indonesia (Waktu Indonesia Tengah) # 8:00 CST China # 9:00 CJT Central Japanese Time (1896/1937)* -# 9:00 EIT east Indonesia +# 9:00 WIT east Indonesia (Waktu Indonesia Timur) # 9:00 JST JDT Japan # 9:00 KST KDT Korea # 9:30 CST (Australian) Central Standard Time @@ -779,7 +779,7 @@ 8:00 - TLT 1942 Feb 21 23:00 # E Timor Time 9:00 - JST 1945 Sep 23 9:00 - TLT 1976 May 3 - 8:00 - CIT 2000 Sep 17 00:00 + 8:00 - WITA 2000 Sep 17 00:00 9:00 - TLT # India @@ -816,36 +816,53 @@ # (Hollandia). For now, assume all Indonesian locations other than Jayapura # switched on 1945-09-23. # +# From Paul Eggert (2013-08-11): +# Normally the tz database uses English-language abbreviations, but in +# Indonesia it's typical to use Indonesian-language abbreviations even +# when writing in English. For example, see the English-language +# summary published by the Time and Frequency Laboratory of the +# Research Center for Calibration, Instrumentation and Metrology, +# Indonesia, (2006-09-29). +# The abbreviations are: +# +# WIB - UTC+7 - Waktu Indonesia Barat (Indonesia western time) +# WITA - UTC+8 - Waktu Indonesia Tengah (Indonesia central time) +# WIT - UTC+9 - Waktu Indonesia Timur (Indonesia eastern time) +# # Zone NAME GMTOFF RULES FORMAT [UNTIL] +# Java, Sumatra Zone Asia/Jakarta 7:07:12 - LMT 1867 Aug 10 # Shanks & Pottenger say the next transition was at 1924 Jan 1 0:13, # but this must be a typo. - 7:07:12 - JMT 1923 Dec 31 23:47:12 # Jakarta + 7:07:12 - BMT 1923 Dec 31 23:47:12 # Batavia 7:20 - JAVT 1932 Nov # Java Time - 7:30 - WIT 1942 Mar 23 + 7:30 - WIB 1942 Mar 23 9:00 - JST 1945 Sep 23 - 7:30 - WIT 1948 May - 8:00 - WIT 1950 May - 7:30 - WIT 1964 - 7:00 - WIT + 7:30 - WIB 1948 May + 8:00 - WIB 1950 May + 7:30 - WIB 1964 + 7:00 - WIB +# west and central Borneo Zone Asia/Pontianak 7:17:20 - LMT 1908 May 7:17:20 - PMT 1932 Nov # Pontianak MT - 7:30 - WIT 1942 Jan 29 + 7:30 - WIB 1942 Jan 29 9:00 - JST 1945 Sep 23 - 7:30 - WIT 1948 May - 8:00 - WIT 1950 May - 7:30 - WIT 1964 - 8:00 - CIT 1988 Jan 1 - 7:00 - WIT + 7:30 - WIB 1948 May + 8:00 - WIB 1950 May + 7:30 - WIB 1964 + 8:00 - WITA 1988 Jan 1 + 7:00 - WIB +# Sulawesi, Lesser Sundas, east and south Borneo Zone Asia/Makassar 7:57:36 - LMT 1920 7:57:36 - MMT 1932 Nov # Macassar MT - 8:00 - CIT 1942 Feb 9 + 8:00 - WITA 1942 Feb 9 9:00 - JST 1945 Sep 23 - 8:00 - CIT + 8:00 - WITA +# Maluku Islands, West Papua, Papua Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov - 9:00 - EIT 1944 Sep 1 + 9:00 - WIT 1944 Sep 1 9:30 - CST 1964 - 9:00 - EIT + 9:00 - WIT # Iran @@ -1387,9 +1404,11 @@ # until about the same time next year (at least). # http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?NewsID=88950 # -# From Paul Eggert (2012-10-25): -# For now, assume this is just a one-year measure. If it becomes -# permanent, we should move Jordan from EET to AST effective tomorrow. +# From Paul Eggert (2013-09-21): +# It's looking like this change will be permanent; see +# Petra News Agency, Cancelling winter saved Jordan $7 million (2013-02-20) +# . +# So move Jordan to UTC+3 as of the abovementioned date. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Jordan 1973 only - Jun 6 0:00 1:00 S @@ -1415,15 +1434,15 @@ Rule Jordan 1999 only - Jul 1 0:00s 1:00 S Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 - Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S -Rule Jordan 2002 max - Mar lastThu 24:00 1:00 S +Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S Rule Jordan 2003 only - Oct 24 0:00s 0 - Rule Jordan 2004 only - Oct 15 0:00s 0 - Rule Jordan 2005 only - Sep lastFri 0:00s 0 - -Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 - -Rule Jordan 2013 max - Oct lastFri 0:00s 0 - +Rule Jordan 2006 2012 - Oct lastFri 0:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Amman 2:23:44 - LMT 1931 - 2:00 Jordan EE%sT + 2:00 Jordan EE%sT 2012 Oct 26 0:00s + 3:00 - AST # Kazakhstan @@ -2303,9 +2322,18 @@ # http://www.samanews.com/index.php?act=Show&id=154120 # http://safa.ps/details/news/99844/%D8%B1%D8%A7%D9%85-%D8%A7%D9%84%D9%84%D9%87-%D8%A8%D8%AF%D8%A1-%D8%A7%D9%84%D8%AA%D9%88%D9%82%D9%8A%D8%AA-%D8%A7%D9%84%D8%B5%D9%8A%D9%81%D9%8A-29-%D8%A7%D9%84%D8%AC%D8%A7%D8%B1%D9%8A.html -# From Paul Eggert (2013-04-15): +# From Steffen Thorsen (2013-09-24): +# The Gaza and West Bank are ending DST Thursday at midnight +# (2013-09-27 00:00:00) (one hour earlier than last year...). +# This source in English, says "that winter time will go into effect +# at midnight on Thursday in the West Bank and Gaza Strip": +# http://english.wafa.ps/index.php?action=detail&id=23246 +# official source...: +# http://www.palestinecabinet.gov.ps/ar/Views/ViewDetails.aspx?pid=1252 + +# From Paul Eggert (2013-09-24): # For future dates, guess the last Thursday in March at 24:00 through -# the first Friday on or after September 21 at 01:00. This is consistent with +# the first Friday on or after September 21 at 00:00. This is consistent with # the predictions in today's editions of the following URLs, # which are for Gaza and Hebron respectively: # http://www.timeanddate.com/worldclock/timezone.html?n=702 @@ -2336,7 +2364,8 @@ Rule Palestine 2011 only - Aug 30 0:00 1:00 S Rule Palestine 2011 only - Sep 30 0:00 0 - Rule Palestine 2012 max - Mar lastThu 24:00 1:00 S -Rule Palestine 2012 max - Sep Fri>=21 1:00 0 - +Rule Palestine 2012 only - Sep 21 1:00 0 - +Rule Palestine 2013 max - Sep Fri>=21 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Gaza 2:17:52 - LMT 1900 Oct diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/australasia --- a/make/sun/javazic/tzdata/australasia Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/australasia Fri Nov 08 19:32:09 2013 +0000 @@ -375,16 +375,25 @@ # today confirmed that Fiji will start daylight savings at 2 am on Sunday 21st # October 2012 and end at 3 am on Sunday 20th January 2013. # http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=6702&catid=71&Itemid=155 + +# From the Fijian Government Media Center (2013-08-30) via David Wheeler: +# Fiji will start daylight savings on Sunday 27th October, 2013 and end at 3am +# on Sunday 19th January, 2014.... move clocks forward by one hour from 2am +# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-27th-OCTOBER-201.aspx # -# From Paul Eggert (2012-08-31): -# For now, guess a pattern of the penultimate Sundays in October and January. +# From Paul Eggert (2013-09-09): +# For now, guess that Fiji springs forward the Sunday before the fourth +# Monday in October. This matches both recent practice and +# timeanddate.com's current spring-forward prediction. +# For the January 2014 transition we guessed right while timeanddate.com +# guessed wrong, so leave the fall-back prediction alone. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - Rule Fiji 2009 only - Nov 29 2:00 1:00 S Rule Fiji 2010 only - Mar lastSun 3:00 0 - -Rule Fiji 2010 max - Oct Sun>=18 2:00 1:00 S +Rule Fiji 2010 max - Oct Sun>=21 2:00 1:00 S Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - Rule Fiji 2012 max - Jan Sun>=18 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -510,6 +519,7 @@ Zone Pacific/Chatham 12:13:48 - LMT 1957 Jan 1 12:45 Chatham CHA%sT +Link Pacific/Auckland Antarctica/McMurdo # Auckland Is # uninhabited; Maori and Moriori, colonial settlers, pastoralists, sealers, @@ -759,7 +769,7 @@ # 1886-1891; Baker was similar but exact dates are not known. # Inhabited by civilians 1935-1942; U.S. military bases 1943-1944; # uninhabited thereafter. -# Howland observed Hawaii Standard Time (UTC-10:30) in 1937; +# Howland observed Hawaii Standard Time (UT-10:30) in 1937; # see page 206 of Elgen M. Long and Marie K. Long, # Amelia Earhart: the Mystery Solved, Simon & Schuster (2000). # So most likely Howland and Baker observed Hawaii Time from 1935 @@ -772,8 +782,17 @@ # no information; was probably like Pacific/Kiritimati # Johnston -# Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Pacific/Johnston -10:00 - HST +# +# From Paul Eggert (2013-09-03): +# In his memoirs of June 6th to October 4, 1945 +# (2005), Herbert C. Bach writes, +# "We started our letdown to Kwajalein Atoll and landed there at 5:00 AM +# Johnston time, 1:30 AM Kwajalein time." This was in June 1945, and +# confirms that Johnston kept the same time as Honolulu in summer 1945. +# We have no better information, so for now, assume this has been true +# indefinitely into the past. +# +# See 'northamerica' for Pacific/Johnston. # Kingman # uninhabited diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/backward --- a/make/sun/javazic/tzdata/backward Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/backward Fri Nov 08 19:32:09 2013 +0000 @@ -45,15 +45,17 @@ Link America/Argentina/Mendoza America/Mendoza Link America/Rio_Branco America/Porto_Acre Link America/Argentina/Cordoba America/Rosario -Link America/St_Thomas America/Virgin +Link America/Denver America/Shiprock +Link America/Port_of_Spain America/Virgin +Link Pacific/Auckland Antarctica/South_Pole Link Asia/Ashgabat Asia/Ashkhabad +Link Asia/Kolkata Asia/Calcutta Link Asia/Chongqing Asia/Chungking Link Asia/Dhaka Asia/Dacca Link Asia/Kathmandu Asia/Katmandu -Link Asia/Kolkata Asia/Calcutta Link Asia/Macau Asia/Macao +Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Jerusalem Asia/Tel_Aviv -Link Asia/Ho_Chi_Minh Asia/Saigon Link Asia/Thimphu Asia/Thimbu Link Asia/Makassar Asia/Ujung_Pandang Link Asia/Ulaanbaatar Asia/Ulan_Bator @@ -111,10 +113,10 @@ Link Pacific/Chatham NZ-CHAT Link America/Denver Navajo Link Asia/Shanghai PRC +Link Pacific/Pohnpei Pacific/Ponape Link Pacific/Pago_Pago Pacific/Samoa +Link Pacific/Chuuk Pacific/Truk Link Pacific/Chuuk Pacific/Yap -Link Pacific/Chuuk Pacific/Truk -Link Pacific/Pohnpei Pacific/Ponape Link Europe/Warsaw Poland Link Europe/Lisbon Portugal Link Asia/Taipei ROC diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/etcetera --- a/make/sun/javazic/tzdata/etcetera Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/etcetera Fri Nov 08 19:32:09 2013 +0000 @@ -54,9 +54,9 @@ # even though this is the opposite of what many people expect. # POSIX has positive signs west of Greenwich, but many people expect # positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses -# the abbreviation "GMT+4" and corresponds to 4 hours behind UTC +# the abbreviation "GMT+4" and corresponds to 4 hours behind UT # (i.e. west of Greenwich) even though many people would expect it to -# mean 4 hours ahead of UTC (i.e. east of Greenwich). +# mean 4 hours ahead of UT (i.e. east of Greenwich). # # In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for # TZ='+4'; if you want time zone abbreviations conforming to diff -r cdfd161703ed -r 18ee4113fc37 make/sun/javazic/tzdata/europe --- a/make/sun/javazic/tzdata/europe Wed Oct 23 05:22:55 2013 +0100 +++ b/make/sun/javazic/tzdata/europe Fri Nov 08 19:32:09 2013 +0000 @@ -65,7 +65,7 @@ # (1998-09-21, in Portuguese) # -# I invented the abbreviations marked `*' in the following table; +# I invented the abbreviations marked '*' in the following table; # the rest are from earlier versions of this file, or from other sources. # Corrections are welcome! # std dst 2dst @@ -119,7 +119,7 @@ # and a sketch map showing some of the sightlines involved. One paragraph # of the text said: # -# `An old stone obelisk marking a forgotten terrestrial meridian stands +# 'An old stone obelisk marking a forgotten terrestrial meridian stands # beside the river at Kew. In the 18th century, before time and longitude # was standardised by the Royal Observatory in Greenwich, scholars observed # this stone and the movement of stars from Kew Observatory nearby. They @@ -163,7 +163,7 @@ # From Paul Eggert (2003-09-27): # Summer Time was first seriously proposed by William Willett (1857-1915), # a London builder and member of the Royal Astronomical Society -# who circulated a pamphlet ``The Waste of Daylight'' (1907) +# who circulated a pamphlet "The Waste of Daylight" (1907) # that proposed advancing clocks 20 minutes on each of four Sundays in April, # and retarding them by the same amount on four Sundays in September. From bugzilla-daemon at icedtea.classpath.org Fri Nov 8 13:46:30 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 08 Nov 2013 21:46:30 +0000 Subject: [Bug 1597] Can't read such terrible fonts, can't make bigger with CTRL++ In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1597 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|dbhole at redhat.com |jvanek at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131108/4749c725/attachment.html From jvanek at icedtea.classpath.org Sun Nov 10 02:24:38 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Sun, 10 Nov 2013 10:24:38 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 85680dbfe7d6 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=85680dbfe7d6 author: Jiri Vanek date: Sun Nov 10 10:54:03 2013 +0100 Removed suspicious return when (searchForMain) had null launchDesc in netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java. changeset d6caaf4298af in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d6caaf4298af author: Jiri Vanek date: Sun Nov 10 11:30:43 2013 +0100 Fixed lock in awt threads. JavaConsole window is now disposed instead of hidden. diffstat: ChangeLog | 17 ++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 6 +- netx/net/sourceforge/jnlp/util/logging/JavaConsole.java | 70 ++++++++--- netx/net/sourceforge/jnlp/util/logging/OutputController.java | 4 +- 4 files changed, 72 insertions(+), 25 deletions(-) diffs (265 lines): diff -r 630384e150d9 -r d6caaf4298af ChangeLog --- a/ChangeLog Thu Nov 07 09:59:22 2013 -0500 +++ b/ChangeLog Sun Nov 10 11:30:43 2013 +0100 @@ -1,3 +1,20 @@ +2013-11-10 Jiri Vanek + + Fixed lock in awt threads. JavaConsole window is now disposed instead of hidden. + * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: (lastSize) new + global variable to remember last size of window.(contentPanel) moved from + local to global scope. (initializeWindow) extracted from (initialize), is + handling creation and filling of window. (showConsole) is now initializing + window, and (hideConsole) is disposing it. Added override annotations and + removed duplicate code. + * netx/net/sourceforge/jnlp/util/logging/OutputController.java: messageQueConsumer + thread is now named, and its wait, have timeout. + +2013-11-10 Jiri Vanek + + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: + removed suspicious return when (searchForMain) had null launchDesc + 2013-11-07 Andrew Azores Reproducer test cleanup. Replaced ServerAccess.ProcessResult in favour of diff -r 630384e150d9 -r d6caaf4298af netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Nov 07 09:59:22 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sun Nov 10 11:30:43 2013 +0100 @@ -828,11 +828,9 @@ // Check launch info if (mainClass == null) { LaunchDesc launchDesc = file.getLaunchInfo(); - if (launchDesc == null) { - return; + if (launchDesc != null) { + mainClass = launchDesc.getMainClass(); } - - mainClass = launchDesc.getMainClass(); } // The main class may be specified in the manifest diff -r 630384e150d9 -r d6caaf4298af netx/net/sourceforge/jnlp/util/logging/JavaConsole.java --- a/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Thu Nov 07 09:59:22 2013 -0500 +++ b/netx/net/sourceforge/jnlp/util/logging/JavaConsole.java Sun Nov 10 11:30:43 2013 +0100 @@ -44,6 +44,8 @@ import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.util.Map; import java.util.Properties; import java.util.Set; @@ -73,6 +75,7 @@ public Map getLoaderInfo(); } private static JavaConsole console; + private static Dimension lastSize; public static JavaConsole getConsole() { if (console == null) { @@ -107,12 +110,42 @@ private JDialog consoleWindow; private JTextArea stdErrText; private JTextArea stdOutText; + private JPanel contentPanel = new JPanel(); private ClassLoaderInfoProvider classLoaderInfoProvider; public JavaConsole() { initialize(); } + + private void initializeWindow() { + initializeWindow(lastSize, contentPanel); + } + + private void initializeWindow(Dimension size, JPanel content) { + consoleWindow = new JDialog((JFrame) null, R("DPJavaConsole")); + consoleWindow.addWindowListener(new WindowAdapter() { + + @Override + public void windowClosed(WindowEvent e) { + lastSize=consoleWindow.getSize(); + } + + }); + consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); + + consoleWindow.add(content); + consoleWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //HIDE_ON_CLOSE can cause shut down deadlock + consoleWindow.pack(); + if (size!=null){ + consoleWindow.setSize(size); + } else { + consoleWindow.setSize(new Dimension(900, 600)); + } + consoleWindow.setMinimumSize(new Dimension(900, 300)); + + } + /** * Initialize the console */ @@ -124,10 +157,8 @@ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, e); } - consoleWindow = new JDialog((JFrame) null, R("DPJavaConsole")); - consoleWindow.setIconImages(ImageResources.INSTANCE.getApplicationImages()); - JPanel contentPanel = new JPanel(); + contentPanel = new JPanel(); contentPanel.setLayout(new GridBagLayout()); GridBagConstraints c; @@ -174,6 +205,7 @@ buttonPanel.add(gcButton); gcButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, "Performing Garbage Collection...."); @@ -187,6 +219,7 @@ buttonPanel.add(finalizersButton); finalizersButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); OutputController.getLogger().log(OutputController.Level.MESSAGE_ALL, R("CONSOLErunningFinalizers")); @@ -200,6 +233,7 @@ buttonPanel.add(memoryButton); memoryButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printMemoryInfo(); } @@ -209,6 +243,7 @@ buttonPanel.add(systemPropertiesButton); systemPropertiesButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printSystemProperties(); } @@ -218,6 +253,7 @@ buttonPanel.add(classloadersButton); classloadersButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printClassLoaders(); } @@ -227,6 +263,7 @@ buttonPanel.add(threadListButton); threadListButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { printThreadInfo(); } @@ -236,9 +273,11 @@ buttonPanel.add(closeButton); closeButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { hideConsole(); } @@ -246,12 +285,6 @@ } }); - consoleWindow.add(contentPanel); - consoleWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); - consoleWindow.pack(); - consoleWindow.setSize(new Dimension(900, 600)); - consoleWindow.setMinimumSize(new Dimension(900, 300)); - splitPane.setDividerLocation(0.5); splitPane.setResizeWeight(0.5); } @@ -260,25 +293,28 @@ showConsole(false); } - public void showConsole(boolean b) { - consoleWindow.setModal(b); + public void showConsole(boolean modal) { + initializeWindow(); + consoleWindow.setModal(modal); consoleWindow.setVisible(true); } public void hideConsole() { consoleWindow.setModal(false); consoleWindow.setVisible(false); + consoleWindow.dispose(); } public void showConsoleLater() { showConsoleLater(false); } - public void showConsoleLater(final boolean b) { + public void showConsoleLater(final boolean modal) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { - JavaConsole.getConsole().showConsole(b); + JavaConsole.getConsole().showConsole(modal); } }); } @@ -286,6 +322,7 @@ public void hideConsoleLater() { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JavaConsole.getConsole().hideConsole(); } @@ -364,12 +401,7 @@ } if (toShowConsole) { - SwingUtilities.invokeLater(new Runnable() { - - public void run() { - console.showConsole(); - } - }); + console.showConsoleLater(); } } diff -r 630384e150d9 -r d6caaf4298af netx/net/sourceforge/jnlp/util/logging/OutputController.java --- a/netx/net/sourceforge/jnlp/util/logging/OutputController.java Thu Nov 07 09:59:22 2013 -0500 +++ b/netx/net/sourceforge/jnlp/util/logging/OutputController.java Sun Nov 10 11:30:43 2013 +0100 @@ -102,7 +102,7 @@ while (true) { try { synchronized (OutputController.this) { - OutputController.this.wait(); + OutputController.this.wait(1000); if (!(OutputController.this == null || messageQue.isEmpty())) { flush(); } @@ -199,7 +199,7 @@ outLog = new PrintStreamLogger(out); errLog = new PrintStreamLogger(err); //itw logger have to be fully initialised before start - Thread t = new Thread(messageQueConsumer); + Thread t = new Thread(messageQueConsumer, "Output controller consumer daemon"); t.setDaemon(true); t.start(); //some messages were probably posted before start of consumer From jvanek at redhat.com Sun Nov 10 02:57:43 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Sun, 10 Nov 2013 11:57:43 +0100 Subject: [icedtea-web] "Not All Signed" dialog and low-security setting In-Reply-To: <527BEE4C.5030005@redhat.com> References: <527BEE4C.5030005@redhat.com> Message-ID: <527F66A7.7030103@redhat.com> On 11/07/2013 08:47 PM, Andrew Azores wrote: > Hi, > > Should the "Not All Signed" dialog (SecurityDialogs.showNotAllSignedWarningDialog(JNLPFile)) still appear when extended applet security is set to "low?" This can happen with signed applets with external main-classes, or applets with mixed signing. To me it seems like it should not appear when running one of these applets on low security. Changing this behaviour would also make it possible for me to add a reproducer for the recent signed applet with external main-class fix (PR1513). > > Thanks, One dialogue is definitely enough. If "not all signed" dialogue appear, then no extended applet security dialog should occur (not depending on actual settings) However vice versa approach looks dangerous. At first user agrees that unsigned app is running (itis in sandbox) and then he *should* be warned then some part of it is signed, and so it is running out of box. - Here I would stay with two dialogues :( J. From jvanek at redhat.com Sun Nov 10 04:08:25 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Sun, 10 Nov 2013 13:08:25 +0100 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527CF5F0.7030908@redhat.com> References: <527BAF8C.6000404@redhat.com> <527BB99B.7010808@redhat.com> <527CD7E3.2000603@redhat.com> <527CF5F0.7030908@redhat.com> Message-ID: <527F7739.2090900@redhat.com> On 11/08/2013 03:32 PM, Andrew Azores wrote: > On 11/08/2013 07:24 AM, Jiri Vanek wrote: >> Above fixed, also littl ebut improved (some logic moved from pluginBridge to jnlpfile) >> As this should go to 1.4 , please double check before aprove. >> >> >> J. > > Few nits again: > > JNLPFile: > - instead of named String constants APP_NAME etc., maybe use an enum here? If not, at least make them final, especially since they're public. IMO enum is better though. > - #getTitle() - last return statement has a typo. "Unnown" should be "Unknown" this was removed (fixOnFix:) > - #getTitleFromManifest() - typo, "manifes" is missing its 't'. Maybe "Check with application vendor" rather than "Check vendor of application" ? > sure. > ManifestAttributes: > - #getApplicationName() uses APP_NAME named constant - why not for the other two similar calls? You just have a hardcoded string in those. yes, this was error. > > > Thanks, > > -- > Andrew A > ok, here it goes. It appeared, that with "Application title was not found in manifest. Check with application vendor" forced warning, some unitittest become to verbose. However Ihave torubles to disable it. I will fix the verbosity as another changeset. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: addedAccessToManifestsAttributesFromJnlpFile3.patch Type: text/x-patch Size: 29675 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131110/03cc496c/addedAccessToManifestsAttributesFromJnlpFile3-0001.patch From bugzilla-daemon at icedtea.classpath.org Sun Nov 10 10:44:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 10 Nov 2013 18:44:39 +0000 Subject: [Bug 1598] New: Eclipse crashes when trying to autocomplete on Fedora 19 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1598 Bug ID: 1598 Summary: Eclipse crashes when trying to autocomplete on Fedora 19 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: peter.senna at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 974 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=974&action=edit error report file with more information A fatal error has been detected by the Java Runtime Environment: SIGSEGV (0xb) at pc=0x00000033cf66dab1, pid=10306, tid=140430165792512 JRE version: OpenJDK Runtime Environment (7.0_45-b15) (build 1.7.0_45-mockbuild_2013_10_16_17_47-b00) Java VM: OpenJDK 64-Bit Server VM (24.45-b08 mixed mode linux-amd64 compressed oops) Problematic frame: C [libsoup-2.4.so.1+0x6dab1] soup_session_feature_detach+0x11 The core dump is available(core.10306.gz). Compressed size: 128MB -- 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/20131110/edeac3e1/attachment.html From ptisnovs at icedtea.classpath.org Mon Nov 11 00:26:28 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 11 Nov 2013 08:26:28 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltAffineQuadrantRotat... Message-ID: changeset 57bbff78cdf2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=57bbff78cdf2 author: Pavel Tisnovsky date: Mon Nov 11 09:30:22 2013 +0100 Ten new tests added into BitBltAffineQuadrantRotateTransformOp.java diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r 3a35b601e7ad -r 57bbff78cdf2 ChangeLog --- a/ChangeLog Fri Nov 08 09:52:39 2013 +0100 +++ b/ChangeLog Mon Nov 11 09:30:22 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-11 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: + Ten new tests added into BitBltAffineQuadrantRotateTransformOp.java + 2013-11-08 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: diff -r 3a35b601e7ad -r 57bbff78cdf2 src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Fri Nov 08 09:52:39 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Mon Nov 11 09:30:22 2013 +0100 @@ -977,6 +977,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation2Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[2]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation3Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[3]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation4Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[4]); + } + + /** + Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRRotateTransformation5Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, RotateTransformationNearest1Op[5]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation0Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[0]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation1Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[1]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation2Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[2]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation3Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[3]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation4Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[4]); + } + + /** + Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBRotateTransformation5Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, RotateTransformationNearest1Op[5]); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Mon Nov 11 00:28:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 11 Nov 2013 08:28:58 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest case into Bind... Message-ID: changeset 530ed77655ad in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=530ed77655ad author: Pavel Tisnovsky date: Mon Nov 11 09:32:48 2013 +0100 Added new testGetResourceNPETest case into BindingsClassTest. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/BindingsClassTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diffs (36 lines): diff -r 084069106e7f -r 530ed77655ad ChangeLog --- a/ChangeLog Fri Nov 08 09:54:31 2013 +0100 +++ b/ChangeLog Mon Nov 11 09:32:48 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-11 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Added new testGetResourceNPETest case into + BindingsClassTest. + 2013-11-08 Pavel Tisnovsky * src/org/RhinoTests/InvocableClassTest.java: diff -r 084069106e7f -r 530ed77655ad src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Fri Nov 08 09:54:31 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Mon Nov 11 09:32:48 2013 +0100 @@ -1592,6 +1592,19 @@ } /** + * Test for method javax.script.Bindings.getClass().getResourceAsStreamNPETest() + */ + protected void testGetResourceAsStreamNPETest() { + try { + Object resource = this.bindingsClass.getResourceAsStream(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** * Test for method javax.script.Bindings.getClass().getResourceAsStreamPositiveTest() */ protected void testGetResourceAsStreamPositiveTest() { From bugzilla-daemon at icedtea.classpath.org Mon Nov 11 04:40:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Nov 2013 12:40:46 +0000 Subject: [Bug 1598] Eclipse crashes when trying to autocomplete on Fedora 19 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1598 Severin Gehwolf changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |sgehwolf at redhat.com Resolution|--- |DUPLICATE --- Comment #1 from Severin Gehwolf --- *** This bug has been marked as a duplicate of bug 1494 *** -- 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/20131111/ca4a61f9/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Nov 11 04:40:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 11 Nov 2013 12:40:46 +0000 Subject: [Bug 1494] Eclipse repeated crashes In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1494 Severin Gehwolf changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |peter.senna at gmail.com --- Comment #4 from Severin Gehwolf --- *** Bug 1598 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131111/563fda09/attachment.html From jvanek at redhat.com Mon Nov 11 08:16:26 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 11 Nov 2013 17:16:26 +0100 Subject: [rfc][icedtea-web] unittests' stdout/err silencer Message-ID: <528102DA.3090703@redhat.com> Once "[rfc][icedtea-web] allow access to jars' attributes from jnlpfile class" is pushed, few tests will start to disturb stdout/err. This simple patch will silence them. If/after:) "Re: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class" will go to 1.4 then something similar (stdout/err redirection) will go here to. The disturbing message is recommended by specification, I do not wont to add specific switches for individual logging streams. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: stdoutErrSilencer.patch Type: text/x-patch Size: 6178 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131111/ccea0447/stdoutErrSilencer-0001.patch From ptisnovs at icedtea.classpath.org Tue Nov 12 01:14:04 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Nov 2013 09:14:04 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltUsingBgColor test s... Message-ID: changeset dae2089a379f in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=dae2089a379f author: Pavel Tisnovsky date: Tue Nov 12 10:17:57 2013 +0100 Ten new tests added into BitBltUsingBgColor test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 150 +++++++++++++++++++++ 2 files changed, 155 insertions(+), 0 deletions(-) diffs (172 lines): diff -r 57bbff78cdf2 -r dae2089a379f ChangeLog --- a/ChangeLog Mon Nov 11 09:30:22 2013 +0100 +++ b/ChangeLog Tue Nov 12 10:17:57 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-12 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Ten new tests added into BitBltUsingBgColor test suite. + 2013-11-11 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: diff -r 57bbff78cdf2 -r dae2089a379f src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Mon Nov 11 09:30:22 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Tue Nov 12 10:17:57 2013 +0100 @@ -4502,6 +4502,156 @@ } /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGRbackgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGR(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGRbackgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGR(image, graphics2d, Color.yellow); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.white. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGRbackgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGR(image, graphics2d, Color.white); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.black. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.black); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.blue. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundBlue(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.blue); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.green. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundGreen(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.green); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundCyan(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.cyan); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.red. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundRed(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.red); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.yellow. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.yellow); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Tue Nov 12 01:16:27 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 12 Nov 2013 09:16:27 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset 939e17e17518 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=939e17e17518 author: Pavel Tisnovsky date: Tue Nov 12 10:20:21 2013 +0100 Added new testGetResourcePositiveTest case into SimpleScriptContextClassTest. diffstat: ChangeLog | 6 + src/org/RhinoTests/SimpleScriptContextClassTest.java | 61 ++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r 530ed77655ad -r 939e17e17518 ChangeLog --- a/ChangeLog Mon Nov 11 09:32:48 2013 +0100 +++ b/ChangeLog Tue Nov 12 10:20:21 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-12 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + Added new testGetResourcePositiveTest case into + SimpleScriptContextClassTest. + 2013-11-11 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r 530ed77655ad -r 939e17e17518 src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Mon Nov 11 09:32:48 2013 +0100 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Tue Nov 12 10:20:21 2013 +0100 @@ -1731,6 +1731,67 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.simpleScriptContextClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleScriptContext */ @SuppressWarnings("cast") From aazores at redhat.com Tue Nov 12 07:28:06 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 10:28:06 -0500 Subject: [rfc][icedtea-web] allow access to jars' attributes from jnlpfile class In-Reply-To: <527F7739.2090900@redhat.com> References: <527BAF8C.6000404@redhat.com> <527BB99B.7010808@redhat.com> <527CD7E3.2000603@redhat.com> <527CF5F0.7030908@redhat.com> <527F7739.2090900@redhat.com> Message-ID: <52824906.5060603@redhat.com> On 11/10/2013 07:08 AM, Jiri Vanek wrote: > On 11/08/2013 03:32 PM, Andrew Azores wrote: >> On 11/08/2013 07:24 AM, Jiri Vanek wrote: >>> Above fixed, also littl ebut improved (some logic moved from >>> pluginBridge to jnlpfile) >>> > > As this should go to 1.4 , please double check before aprove. > >>> >>> >>> J. >> >> Few nits again: >> >> JNLPFile: >> - instead of named String constants APP_NAME etc., maybe use an enum >> here? If not, at least make them final, especially since they're >> public. IMO enum is better though. >> - #getTitle() - last return statement has a typo. "Unnown" should be >> "Unknown" > this was removed (fixOnFix:) >> - #getTitleFromManifest() - typo, "manifes" is missing its 't'. Maybe >> "Check with application vendor" rather than "Check vendor of >> application" ? >> > sure. > >> ManifestAttributes: >> - #getApplicationName() uses APP_NAME named constant - why not for >> the other two similar calls? You just have a hardcoded string in those. > yes, this was error. >> >> >> Thanks, >> >> -- >> Andrew A >> > > ok, here it goes. > > It appeared, that with "Application title was not found in manifest. > Check with application vendor" forced warning, some unitittest become > to verbose. However Ihave torubles to disable it. I will fix the > verbosity as another changeset. > > J. Actual patch seems good, but in the ResourcesDescTest, why are there so many Manifests? Are manifest4 and manifest5 needed? Okay to push IMO after this. Thanks, -- Andrew A From aazores at redhat.com Tue Nov 12 07:34:59 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 10:34:59 -0500 Subject: [rfc][icedtea-web] unittests' stdout/err silencer In-Reply-To: <528102DA.3090703@redhat.com> References: <528102DA.3090703@redhat.com> Message-ID: <52824AA3.9000001@redhat.com> On 11/11/2013 11:16 AM, Jiri Vanek wrote: > Once "[rfc][icedtea-web] allow access to jars' attributes from > jnlpfile class" is pushed, few tests will start to disturb stdout/err. > > This simple patch will silence them. If/after:) "Re: > [rfc][icedtea-web] allow access to jars' attributes from jnlpfile > class" will go to 1.4 then something similar (stdout/err redirection) > will go here to. > > The disturbing message is recommended by specification, I do not wont > to add specific switches for individual logging streams. > > J. This seems okay, but I don't really understand what the comments are trying to tell me. //it is crucial for junit to grip it I don't know what this means :) Also, license header on the NoStdOutErrTest says 2011-2012 on it. Okay to push when these minor nits are fixed. Thanks, -- Andrew A From aazores at redhat.com Tue Nov 12 08:12:54 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 11:12:54 -0500 Subject: [icedtea-web] "Not All Signed" dialog and low-security setting In-Reply-To: <527F66A7.7030103@redhat.com> References: <527BEE4C.5030005@redhat.com> <527F66A7.7030103@redhat.com> Message-ID: <52825386.1070608@redhat.com> On 11/10/2013 05:57 AM, Jiri Vanek wrote: > On 11/07/2013 08:47 PM, Andrew Azores wrote: >> Hi, >> >> Should the "Not All Signed" dialog >> (SecurityDialogs.showNotAllSignedWarningDialog(JNLPFile)) still >> appear when extended applet security is set to "low?" This can happen >> with signed applets with external main-classes, or applets with mixed >> signing. To me it seems like it should not appear when running one of >> these applets on low security. Changing this behaviour would also >> make it possible for me to add a reproducer for the recent signed >> applet with external main-class fix (PR1513). >> >> Thanks, > > One dialogue is definitely enough. If "not all signed" dialogue > appear, then no extended applet security dialog should occur (not > depending on actual settings) Should the "Not All Signed" really be overpowering the other standard dialogs, eg the unsigned applet warning? If we only show the Not All Signed and skip the other extended security dialogs then the user misses out on some information, eg the applet name/location (u45 manifest attributes!), and misses the option to trust the publisher in the future or not. I suppose Not All Signed could be made into a new dialog of the same type as the signed/unsigned confirmation dialogs, but as it is, I don't think it's a suitable replacement for them. My other question however was what to do when set to not prompt to run applets, aka set security to low in itweb-settings. The "Not All Signed" dialog will still appear in this kind of situation, which breaks our testing if any reproducer meets the criteria for "Not All Signed", as the dialog will appear and require the user to approve it. The attached patch simply causes the dialog to not appear when security is set to Low and/or -Xtrustall is used. It might be more suitable to move this logic into the dialog itself, but to me it also seemed out of place to put it there. Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: not-all-signed-dialog.patch Type: text/x-patch Size: 3920 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131112/4864291d/not-all-signed-dialog-0001.patch From aazores at redhat.com Tue Nov 12 08:14:19 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 11:14:19 -0500 Subject: [rfc][icedtea-web] Mixed-signing applet permissions (PR1592) In-Reply-To: <52780135.4050202@redhat.com> References: <52780135.4050202@redhat.com> Message-ID: <528253DB.50700@redhat.com> On 11/04/2013 03:19 PM, Andrew Azores wrote: > Hi, > > This patch allows signed JARs within mixed-signing applets to be > granted full permissions, while unsigned JARs in the same applets > retain sandbox permissions only. The user is warned/prompted for the > okay to proceed when this occurs. > > I was not able to create a working reproducer test for this due to the > following error: > > java.lang.SecurityException: class "MixedSigningApplet"'s signer > information does not match signer information of other classes in the > same package > > I'd need to have two different packages in use to get around this, but > AFAIK we don't have a way to support this with our reproducer system. > Also, even if I had that working, the > SecurityDialogs.showNotAllSignedWarningDialog still doesn't really > respect the Extended Applet Security settings and will appear to > prompt the user even if security is set to lowest. This would break > the automation of the reproducer test and make it fairly useless anyway. > > The patch is split in two. The first one does the actual work. The > second patch just removes an old unused local variable and an > associated enclosing try/catch. This indentation change creates hard > to read diff output, so I included this separately for ease of review. > They need to be applied in order. > > Changelog: > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: > (initializeResources) grant full permissions to signed JARs of > mixed-signing applets > > Thanks, > Ping? Thanks, -- Andrew A From aazores at redhat.com Tue Nov 12 09:46:49 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 12:46:49 -0500 Subject: [rfc][icedtea-web] JNLPClassLoader for-loop and Enumeration cleanup Message-ID: <52826989.6030503@redhat.com> Hi, This patch does three things. 1) Converts for-loops into for-each-loops when appropriate. Loops that remove elements from the iterated collection were not changed, nor were loops that make actual use of the index variable, nor were loops that do not iterate over every element. 2) Wraps some Enumeration usage in Collections.list(), so that the result is Iterable. This removes extra boilerplate and reduces the number of loop variables creeping out of absolute minimal scope, and again allows the usage of for-each-loops. Other Enumeration usage in the class is unfortunately part of its public interface, so in those cases nothing has been done. 3) Adds parameterized types in a few areas, eg raw Class type to Class in for loadClassExt(String) for example, and List to List in waitForJars(List) Changelog: * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: add parameterized type information to several return types and local variables. Refactor for-loops and Enumeration iterations into for-each-loops. Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: jnlpclassloader-cleanup.patch Type: text/x-patch Size: 13583 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131112/6ed38f33/jnlpclassloader-cleanup.patch From andrew at icedtea.classpath.org Tue Nov 12 09:58:52 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 12 Nov 2013 17:58:52 +0000 Subject: /hg/release/icedtea7-forest-2.4/hotspot: Include defs.make in vm... Message-ID: changeset 02f0bce4ac32 in /hg/release/icedtea7-forest-2.4/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot?cmd=changeset;node=02f0bce4ac32 author: andrew date: Tue Nov 12 17:58:35 2013 +0000 Include defs.make in vm.make so VM_LITTLE_ENDIAN is defined on Zero builds diffstat: make/bsd/makefiles/vm.make | 1 + make/linux/makefiles/vm.make | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) diffs (22 lines): diff -r 0505a797849f -r 02f0bce4ac32 make/bsd/makefiles/vm.make --- a/make/bsd/makefiles/vm.make Wed Oct 23 05:23:32 2013 +0100 +++ b/make/bsd/makefiles/vm.make Tue Nov 12 17:58:35 2013 +0000 @@ -27,6 +27,7 @@ # Common build rules. MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles +include $(GAMMADIR)/make/defs.make include $(MAKEFILES_DIR)/rules.make include $(GAMMADIR)/make/altsrc.make diff -r 0505a797849f -r 02f0bce4ac32 make/linux/makefiles/vm.make --- a/make/linux/makefiles/vm.make Wed Oct 23 05:23:32 2013 +0100 +++ b/make/linux/makefiles/vm.make Tue Nov 12 17:58:35 2013 +0000 @@ -27,6 +27,7 @@ # Common build rules. MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles +include $(GAMMADIR)/make/defs.make include $(MAKEFILES_DIR)/rules.make include $(GAMMADIR)/make/altsrc.make From andrew at icedtea.classpath.org Tue Nov 12 10:00:40 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 12 Nov 2013 18:00:40 +0000 Subject: /hg/release/icedtea7-forest-2.3/hotspot: Include defs.make in vm... Message-ID: changeset db4c82656465 in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=db4c82656465 author: andrew date: Tue Nov 12 17:58:35 2013 +0000 Include defs.make in vm.make so VM_LITTLE_ENDIAN is defined on Zero builds diffstat: make/bsd/makefiles/vm.make | 1 + make/linux/makefiles/vm.make | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) diffs (22 lines): diff -r f3744e5f1c26 -r db4c82656465 make/bsd/makefiles/vm.make --- a/make/bsd/makefiles/vm.make Mon Sep 16 13:49:10 2013 -0700 +++ b/make/bsd/makefiles/vm.make Tue Nov 12 17:58:35 2013 +0000 @@ -27,6 +27,7 @@ # Common build rules. MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles +include $(GAMMADIR)/make/defs.make include $(MAKEFILES_DIR)/rules.make include $(GAMMADIR)/make/altsrc.make diff -r f3744e5f1c26 -r db4c82656465 make/linux/makefiles/vm.make --- a/make/linux/makefiles/vm.make Mon Sep 16 13:49:10 2013 -0700 +++ b/make/linux/makefiles/vm.make Tue Nov 12 17:58:35 2013 +0000 @@ -27,6 +27,7 @@ # Common build rules. MAKEFILES_DIR=$(GAMMADIR)/make/$(Platform_os_family)/makefiles +include $(GAMMADIR)/make/defs.make include $(MAKEFILES_DIR)/rules.make include $(GAMMADIR)/make/altsrc.make From aazores at redhat.com Tue Nov 12 11:39:45 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 12 Nov 2013 14:39:45 -0500 Subject: [rfc][icedtea-web] BasicExceptionDialog centered on screen Message-ID: <52828401.5030606@redhat.com> Hi, Our basic exception dialog doesn't seem to center itself on screen, which is a little sad IMO! It's just a one-line patch. Changelog: * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: (show) center dialog before becoming visible Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: basic-exception-center.patch Type: text/x-patch Size: 711 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131112/00efe453/basic-exception-center.patch From omajid at redhat.com Tue Nov 12 14:53:22 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Nov 2013 17:53:22 -0500 Subject: [rfc][icedtea-web] BasicExceptionDialog centered on screen In-Reply-To: <52828401.5030606@redhat.com> References: <52828401.5030606@redhat.com> Message-ID: <20131112225322.GA4317@redhat.com> Hi Andrew, * Andrew Azores [2013-11-12 14:57]: > Our basic exception dialog doesn't seem to center itself on screen, > which is a little sad IMO! It's just a one-line patch. Looks good to me. Cheers, Omari From omajid at redhat.com Tue Nov 12 15:03:30 2013 From: omajid at redhat.com (Omair Majid) Date: Tue, 12 Nov 2013 18:03:30 -0500 Subject: [rfc][icedtea-web] JNLPClassLoader for-loop and Enumeration cleanup In-Reply-To: <52826989.6030503@redhat.com> References: <52826989.6030503@redhat.com> Message-ID: <20131112230330.GB4317@redhat.com> Hi, * Andrew Azores [2013-11-12 12:48]: > 2) Wraps some Enumeration usage in Collections.list(), so that the > result is Iterable. This removes extra boilerplate and reduces the > number of loop variables creeping out of absolute minimal scope, and > again allows the usage of for-each-loops. Other Enumeration usage in > the class is unfortunately part of its public interface, so in those > cases nothing has been done. Compared to the rest of the changes, this looks a little unsafe, since there is a cost associated with converting an enumeration to list. Still, there should be no performance impact. > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > - tracker.addResource(jars[i].getLocation(), > - jars[i].getVersion(), > - file.getDownloadOptions(), > - jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE > - ); > + tracker.addResource(jar.getLocation(), > + jar.getVersion(), file.getDownloadOptions(), > + jar.isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE); I find the previous style (each argument on it's own line) more readable. But not a big deal. Feel free to push. Cheers, Omair From gnu.andrew at redhat.com Tue Nov 12 19:37:42 2013 From: gnu.andrew at redhat.com (Andrew) Date: Wed, 13 Nov 2013 03:37:42 +0000 Subject: [SECURITY] IcedTea 1.11.14 for OpenJDK 6 Released! Message-ID: <20131113033742.GA32630@carrie.the212.com> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver, the ability to build against system libraries and support for alternative virtual machines and architectures beyond those supported by OpenJDK. This release updates our OpenJDK 6 support in the 1.11.x series with the October 2013 security errata and a number of bug fixes. If you find an issue with the release, please report it to our bug database (http://icedtea.classpath.org/bugzilla) under the appropriate component. Development discussion takes place on the distro-pkg-dev at openjdk.java.net OpenJDK mailing list and patches are always welcome. Full details of the release can be found below. What's New? =========== New in release 1.11.14 (2013-11-13): * Security fixes - S8006900, CVE-2013-3829: Add new date/time capability - S8008589: Better MBean permission validation - S8011071, CVE-2013-5780: Better crypto provider handling - S8011081, CVE-2013-5772: Improve jhat - S8011157, CVE-2013-5814: Improve CORBA portablility - S8012071, CVE-2013-5790: Better Building of Beans - S8012147: Improve tool support - S8012277: CVE-2013-5849: Improve AWT DataFlavor - S8012425, CVE-2013-5802: Transform TransformerFactory - S8013503, CVE-2013-5851: Improve stream factories - S8013506: Better Pack200 data handling - S8013510, CVE-2013-5809: Augment image writing code - S8013514: Improve stability of cmap class - S8013739, CVE-2013-5817: Better LDAP resource management - S8013744, CVE-2013-5783: Better tabling for AWT - S8014085: Better serialization support in JMX classes - S8014093, CVE-2013-5782: Improve parsing of images - S8014102, CVE-2013-5778: Improve image conversion - S8014341, CVE-2013-5803: Better service from Kerberos servers - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations - S8014530, CVE-2013-5825: Better digital signature processing - S8014534: Better profiling support - S8014987, CVE-2013-5842: Augment serialization handling - S8015614: Update build settings - S8015731: Subject java.security.auth.subject to improvements - S8015743, CVE-2013-5774: Address internet addresses - S8016256: Make finalization final - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names - S8016675, CVE-2013-5797: Make Javadoc pages more robust - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately - S8017287, CVE-2013-5829: Better resource disposal - S8017291, CVE-2013-5830: Cast Proxies Aside - S8017298, CVE-2013-4002: Better XML support - S8017300, CVE-2013-5784: Improve Interface Implementation - S8017505, CVE-2013-5820: Better Client Service - S8019292: Better Attribute Value Exceptions - S8019617: Better view of objects - S8020293: JVM crash - S8021290, CVE-2013-5823: Better signature validation - S8022940: Enhance CORBA translations - S8023683: Enhance class file parsing * Backports - S4075303: Use javap to enquire about a specific inner class - S4111861: static final field contents are not displayed - S4348375: Javap is not internationalized - S4459541: "javap -l" shows line numbers as signed short; they should be unsigned - S4501660: change diagnostic of -help as 'print this help message and exit' - S4501661: disallow mixing -public, -private, and -protected options at the same time - S4776241: unused source file in javap... - S4870651: javap should recognize generics, varargs, enum - S4876942: javap invoked without args does not print help screen - S4880663: javap could output whitespace between class name and opening brace - S4884240: additional option required for javap - S4975569: javap doesn't print new flag bits - S6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table - S6305779: javap: support annotations - S6439940: Clean up javap implementation - S6469569: wrong check of searchpath in JavapEnvironment - S6474890: javap does not open .zip files in -classpath - S6587786: Javap throws error : "ERROR:Could not find " for JRE classes - S6622215: javap ignores certain relevant access flags - S6622216: javap names some attributes incorrectly - S6622232: javap gets whitespace confused - S6622260: javap prints negative bytes incorrectly in hex - S6708729: update jdk Makefiles for new javap - S6715767: javap on java.lang.ClassLoader crashes - S6819246: improve support for decoding instructions in classfile library - S6824493: experimental support for additional info for instructions - S6841419: classfile: add constant pool iterator - S6841420: classfile: add new methods to ConstantClassInfo - S6843013: missing files in fix for 6824493 - S6852856: javap changes to facilitate subclassing javap for variants - S6867671: javap whitespace formatting issues - S6868539: javap should use current names for constant pool tags - S6902264: fix indentation of tableswitch and lookupswitch - S6925851: Localize JRE into pt_BR - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java - S7146431: java.security files out-of-sync - S8000450: Restrict access to com/sun/corba/se/impl package - S8002070: Remove the stack search for a resource bundle for Logger to use - S8003992: File and other classes in java.io do not handle embedded nulls properly - S8004188: Rename src/share/lib/security/java.security to java.security-linux - S8006882: Proxy generated classes in sun.proxy package breaks JMockit - S8010118: Annotate jdk caller sensitive methods with @sun.reflect.CallerSensitive - S8010727: WLS fails to add a logger with "" in its own LogManager subclass instance - S8010939: Deadlock in LogManager - S8011139: (reflect) Revise checking in getEnclosingClass - S8011950: java.io.File.createTempFile enters infinite loop when passed invalid data - S8011990: TEST_BUG: java/util/logging/bundlesearch/ResourceBundleSearchTest.java fails on Windows - S8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21 - S8012453: (process) Runtime.exec(String) fails if command contains spaces [win] - S8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer - S8013380: Removal of stack walk to find resource bundle breaks Glassfish startup - S8013827: File.createTempFile hangs with temp file starting with 'com1.4' - S8014718: Netbeans IDE begins to throw a lot exceptions since 7u25 b10 - S8014745: Provide a switch to allow stack walk search of resource bundle - S8015144: Performance regression in ICU OpenType Layout library - S8015965: (process) Typo in name of property to allow ambiguous commands - S8015978: Incorrect transformation of XPath expression "string(-0)" - S8016357: Update hotspot diagnostic class - S8017566: Backout 8000450 - Cannot access to com.sun.corba.se.impl.orb.ORBImpl - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes - S8019979: Replace CheckPackageAccess test with better one from closed repo - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 - S8021933: Add extra check for fix # JDK-8014530 - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. - S8022661: InetAddress.writeObject() performs flush() on object output stream - S8022682: Supporting XOM - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp - S8025128: File.createTempFile fails if prefix is absolute path - S8025255: (tz) Support tzdata2013g - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 - OJ20: Resolve merge issues with JAXP security fixes - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes The tarball can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea6-1.11.14.tar.gz or: * http://icedtea.classpath.org/download/source/icedtea6-1.11.14.tar.xz We provide both gzip and xz tarballs, so that those who are able to make use of the smaller tarball produced by xz may do so. The tarballs are accompanied by digital signatures available at: * http://icedtea.classpath.org/download/source/icedtea6-1.11.14.tar.gz.sig * http://icedtea.classpath.org/download/source/icedtea6-1.11.14.tar.xz.sig These are produced using my public key. See details below. PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 SHA256 checksums: b36ed4d4215e3048cb8722c63dc60343dda9a2b9b933244c11c68b21cee73ce9 icedtea6-1.11.14.tar.gz 6bc4e124117d5cfd5b65caf8f85a9eeac9f8c13700049b060526c4c1426e3de1 icedtea6-1.11.14.tar.gz.sig 364506acceffed4bab0aff50ec688c99ce9093ccd87439271d5db73488cf2409 icedtea6-1.11.14.tar.xz 1cd390bf295e19d73e41f5aec96f9ab1f15dc9f344b86137857f882443b2eef5 icedtea6-1.11.14.tar.xz.sig The following people helped with these releases: * Andrew Hughes (all backports and fixes & release management) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.11.14.tar.gz or: $ tar x -I xz -f icedtea6-1.11.14.tar.xz then: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea6-1.11.14/configure $ make Full build requirements and instructions are available in the INSTALL file. Happy hacking! -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131113/65cc1765/attachment.bin From andrew at icedtea.classpath.org Tue Nov 12 19:48:20 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Nov 2013 03:48:20 +0000 Subject: /hg/release/icedtea6-1.11: 4 new changesets Message-ID: changeset 9aaab6990de6 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=9aaab6990de6 author: Andrew John Hughes date: Thu Oct 31 00:25:38 2013 +0000 Prepare for 1.11.14 release. 2013-10-31 Andrew John Hughes * configure.ac: Set to 1.11.14. * NEWS: Set release date to 2013-10-31. changeset 4af4ade9792b in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=4af4ade9792b author: Andrew John Hughes date: Mon Nov 11 11:33:52 2013 +0000 S8025255: (tz) Support tzdata2013g S6925851: Localize JRE into pt_BR S7035073: Add missing timezones to TimeZoneNames_pt_BR.java 2013-11-08 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated. * patches/openjdk/6925851-pt_br.patch: Added. * patches/openjdk/7017800-tzdata2011b.patch, * patches/openjdk/7027387-tzdata2011d.patch: Updated with pt_BR changes. * patches/openjdk/7035073-missing_pt_br_timezones.patch: Added. * patches/openjdk/7090843-tzdata2011j.patch, * patches/openjdk/7103108-tzdata2011l.patch, * patches/openjdk/7103405-correct_display_names.patch, * patches/openjdk/7158483-tzdata2012c.patch, * patches/openjdk/8009987-tzdata2013b.patch: Updated with pt_BR changes. * patches/openjdk/8025255-tzdata2013g.patch: Added. changeset 6252494258a7 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=6252494258a7 author: Andrew John Hughes date: Wed Nov 13 03:47:13 2013 +0000 Added tag icedtea6-1.11.14 for changeset 4af4ade9792b changeset f7a359db72f5 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=f7a359db72f5 author: Andrew John Hughes date: Wed Nov 13 03:47:59 2013 +0000 Fix final release date of 1.11.14. 2013-11-13 Andrew John Hughes * NEWS: Fix release date. diffstat: .hgtags | 1 + ChangeLog | 31 +- Makefile.am | 5 +- NEWS | 7 +- configure.ac | 2 +- patches/openjdk/6925851-pt_br.patch | 3651 +++++++++++++++ patches/openjdk/7017800-tzdata2011b.patch | 11 + patches/openjdk/7027387-tzdata2011d.patch | 20 + patches/openjdk/7035073-missing_pt_br_timezones.patch | 1644 +++++++ patches/openjdk/7090843-tzdata2011j.patch | 53 + patches/openjdk/7103108-tzdata2011l.patch | 67 + patches/openjdk/7103405-correct_display_names.patch | 12 + patches/openjdk/7158483-tzdata2012c.patch | 46 + patches/openjdk/8009987-tzdata2013b.patch | 110 + patches/openjdk/8025255-tzdata2013g.patch | 3976 +++++++++++++++++ 15 files changed, 9631 insertions(+), 5 deletions(-) diffs (truncated from 9787 to 500 lines): diff -r d667440f2973 -r f7a359db72f5 .hgtags --- a/.hgtags Thu Oct 31 00:22:07 2013 +0000 +++ b/.hgtags Wed Nov 13 03:47:59 2013 +0000 @@ -36,3 +36,4 @@ d3fed928b8b9d76d6153789ac6daec5dd02aab4d icedtea6-1.11.11 eca41165787238e9d088af88d5a35e417cff21b7 icedtea6-1.11.12 a02969e093910e938dddd09c03c52bcd1f53ed2d icedtea6-1.11.13 +4af4ade9792bb9857d55c577d3b7777fe530db7d icedtea6-1.11.14 diff -r d667440f2973 -r f7a359db72f5 ChangeLog --- a/ChangeLog Thu Oct 31 00:22:07 2013 +0000 +++ b/ChangeLog Wed Nov 13 03:47:59 2013 +0000 @@ -1,4 +1,33 @@ -2013-10-29 Andrew John Hughes +2013-11-13 Andrew John Hughes + + * NEWS: Fix release date. + +2013-11-08 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patches. + * NEWS: Updated. + * patches/openjdk/6925851-pt_br.patch: Added. + * patches/openjdk/7017800-tzdata2011b.patch, + * patches/openjdk/7027387-tzdata2011d.patch: + Updated with pt_BR changes. + * patches/openjdk/7035073-missing_pt_br_timezones.patch: + Added. + * patches/openjdk/7090843-tzdata2011j.patch, + * patches/openjdk/7103108-tzdata2011l.patch, + * patches/openjdk/7103405-correct_display_names.patch, + * patches/openjdk/7158483-tzdata2012c.patch, + * patches/openjdk/8009987-tzdata2013b.patch: + Updated with pt_BR changes. + * patches/openjdk/8025255-tzdata2013g.patch: + Added. + +2013-10-31 Andrew John Hughes + + * configure.ac: Set to 1.11.14. + * NEWS: Set release date to 2013-10-31. + +2013-10-30 Andrew John Hughes * patches/ecj/bootver.patch: Removed as unapplied & incorporated in other patches. diff -r d667440f2973 -r f7a359db72f5 Makefile.am --- a/Makefile.am Thu Oct 31 00:22:07 2013 +0000 +++ b/Makefile.am Wed Nov 13 03:47:59 2013 +0000 @@ -741,11 +741,13 @@ patches/openjdk/8009996-emitter_bean.patch \ patches/openjdk/6541350-tz_display_names_l10n.patch \ patches/openjdk/6821191-tz_display_names_l10n.patch \ + patches/openjdk/6925851-pt_br.patch \ patches/openjdk/6977550-tzdata2010l.patch \ patches/openjdk/6996686-tzdata2010o.patch \ patches/openjdk/7017800-tzdata2011b.patch \ patches/openjdk/7027387-tzdata2011d.patch \ patches/openjdk/7033174-tzdata2011e.patch \ + patches/openjdk/7035073-missing_pt_br_timezones.patch \ patches/openjdk/7039469-tzdata2011g.patch \ patches/openjdk/7090843-tzdata2011j.patch \ patches/openjdk/7103108-tzdata2011l.patch \ @@ -773,7 +775,8 @@ patches/openjdk/7000225-bad_tabs.patch \ patches/openjdk/7038711-fix_no-clobber_usage.patch \ patches/disable-cc-incompatible-sanity-checks.patch \ - patches/rh995488-rhel_tz_fix.patch + patches/rh995488-rhel_tz_fix.patch \ + patches/openjdk/8025255-tzdata2013g.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r d667440f2973 -r f7a359db72f5 NEWS --- a/NEWS Thu Oct 31 00:22:07 2013 +0000 +++ b/NEWS Wed Nov 13 03:47:59 2013 +0000 @@ -11,7 +11,7 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.11.14 (2013-10-XX): +New in release 1.11.14 (2013-11-13): * Security fixes - S8006900, CVE-2013-3829: Add new date/time capability @@ -89,9 +89,11 @@ - S6867671: javap whitespace formatting issues - S6868539: javap should use current names for constant pool tags - S6902264: fix indentation of tableswitch and lookupswitch + - S6925851: Localize JRE into pt_BR - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate + - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java - S7146431: java.security files out-of-sync - -S8000450: Restrict access to com/sun/corba/se/impl package + - S8000450: Restrict access to com/sun/corba/se/impl package - S8002070: Remove the stack search for a resource bundle for Logger to use - S8003992: File and other classes in java.io do not handle embedded nulls properly - S8004188: Rename src/share/lib/security/java.security to java.security-linux @@ -127,6 +129,7 @@ - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp - S8025128: File.createTempFile fails if prefix is absolute path + - S8025255: (tz) Support tzdata2013g - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 - OJ20: Resolve merge issues with JAXP security fixes - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes diff -r d667440f2973 -r f7a359db72f5 configure.ac --- a/configure.ac Thu Oct 31 00:22:07 2013 +0000 +++ b/configure.ac Wed Nov 13 03:47:59 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.11.14pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.11.14],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r d667440f2973 -r f7a359db72f5 patches/openjdk/6925851-pt_br.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6925851-pt_br.patch Wed Nov 13 03:47:59 2013 +0000 @@ -0,0 +1,3651 @@ +# HG changeset patch +# User yhuang +# Date 1291285057 28800 +# Thu Dec 02 02:17:37 2010 -0800 +# Node ID e3ecd9555ff01afd93f9aed6f883eb32f71c0505 +# Parent b357910aa04aead2a16b6d6ff395a8df4b51d1dd +6925851: Localize JRE into pt_BR +Reviewed-by: mfang, psun + +diff -r b357910aa04a -r e3ecd9555ff0 make/common/Defs.gmk +--- openjdk/jdk/make/common/Defs.gmk Wed Nov 10 20:40:19 2010 -0800 ++++ openjdk/jdk/make/common/Defs.gmk Thu Dec 02 02:17:37 2010 -0800 +@@ -246,8 +246,8 @@ + # Localizations for the different parts of the product beyond English + # + +-JRE_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK +-PLUGIN_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK ++JRE_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK ++PLUGIN_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK + JDK_LOCALES = ja zh_CN + + # +diff -r b357910aa04a -r e3ecd9555ff0 make/java/util/FILES_java.gmk +--- openjdk/jdk/make/java/util/FILES_java.gmk Wed Nov 10 20:40:19 2010 -0800 ++++ openjdk/jdk/make/java/util/FILES_java.gmk Thu Dec 02 02:17:37 2010 -0800 +@@ -37,4 +37,5 @@ + sun/util/resources/TimeZoneNames_es.java \ + sun/util/resources/TimeZoneNames_fr.java \ + sun/util/resources/TimeZoneNames_it.java \ ++ sun/util/resources/TimeZoneNames_pt_BR.java \ + sun/util/resources/TimeZoneNames_sv.java +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,146 @@ ++# ++# This properties file is used to create a PropertyResourceBundle ++# It contains Locale specific strings used be the Accessibility package. ++# ++# When this file is read in, the strings are put into the ++# defaults table. This is an implementation detail of the current ++# workings of Accessibility. DO NOT DEPEND ON THIS. ++# This may change in future versions of Accessibility as we improve ++# localization support. ++# ++# @author Lynn Monsanto ++ ++# ++# accessible roles ++# ++alert=alerta ++awtcomponent=componente AWT ++checkbox=caixa de sele\u00e7\u00e3o ++colorchooser=seletor de cores ++columnheader=cabe\u00e7alho da coluna ++combobox=caixa de combina\u00e7\u00e3o ++canvas=tela ++desktopicon=\u00edcone da \u00e1rea de trabalho ++desktoppane=painel da \u00e1rea de trabalho ++dialog=caixa de di\u00e1logo ++directorypane=painel do diret\u00f3rio ++glasspane=painel transparente ++filechooser=seletor de arquivos ++filler=preenchimento ++frame=quadro ++internalframe=quadro interno ++label=r\u00f3tulo ++layeredpane=painel em camadas ++list=lista ++listitem=item da lista ++menubar=barra de menus ++menu=menu ++menuitem=item do menu ++optionpane=painel de op\u00e7\u00f5es ++pagetab=aba da p\u00e1gina ++pagetablist=lista de abas da p\u00e1gina ++panel=painel ++passwordtext=texto da senha ++popupmenu=menu pop-up ++progressbar=barra de progresso ++pushbutton=bot\u00e3o de a\u00e7\u00e3o ++radiobutton=bot\u00e3o de op\u00e7\u00e3o ++rootpane=painel base ++rowheader=cabe\u00e7alho da linha ++scrollbar=barra de rolagem ++scrollpane=painel de rolagem ++separator=separador ++slider=controle deslizante ++splitpane=painel dividido ++swingcomponent=componente swing ++table=tabela ++text=texto ++tree=\u00e1rvore ++togglebutton=bot\u00e3o de altern\u00e2ncia ++toolbar=barra de ferramentas ++tooltip=dica de ferramenta ++unknown=desconhecido ++viewport=janela de visualiza\u00e7\u00e3o ++window=janela ++# ++# accessible relations ++# ++labelFor=r\u00f3tulo de ++labeledBy=rotulado por ++memberOf=membro de ++controlledBy=controlledBy ++controllerFor=controllerFor ++# ++# accessible states ++# ++active=ativo ++armed=armado ++busy=ocupado ++checked=selecionado ++collapsed=recolhido ++editable=edit\u00e1vel ++expandable=expans\u00edvel ++expanded=expandido ++enabled=habilitado ++focusable=focaliz\u00e1vel ++focused=focalizado ++iconified=iconizado ++modal=modal ++multiline=v\u00e1rias linhas ++multiselectable=m\u00faltipla escolha ++opaque=opaco ++pressed=pressionado ++resizable=redimension\u00e1vel ++selectable=selecion\u00e1vel ++selected=selecionado ++showing=exibindo ++singleline=linha \u00fanica ++transient=transit\u00f3rio ++visible=vis\u00edvel ++vertical=vertical ++horizontal=horizontal ++# ++# accessible actions ++# ++toggle expandir=alternar expandir ++ ++# new relations, roles and states for J2SE 1.5.0 ++ ++# ++# accessible relations ++# ++flowsTo=fluxos para ++flowsFrom=fluxos de ++subwindowOf=subjanela de ++parentWindowOf=janela pai de ++embeds=integra ++embeddedBy=integrado por ++childNodeOf=n\u00f3 filho de ++ ++# ++# accessible roles ++# ++header=cabe\u00e7alho ++footer=rodap\u00e9 ++paragraph=par\u00e1grafo ++ruler=r\u00e9gua ++editbar=barra de edi\u00e7\u00e3o ++progressMonitor=monitor de progresso ++ ++# ++# accessible states ++# ++managesDescendants=gerencia descendentes ++indeterminate=indeterminado ++truncated=truncado ++ ++# new for J2SE 1.6.0 ++ ++# ++# accessible roles ++# ++htmlcontainer=cont\u00eainer HTML ++ ++# ++# END OF MATERIAL TO LOCALIZE ++# +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,81 @@ ++# Refer to the note in basic.properties for a description as to what ++# the mnemonics correspond to and how to calculate them. ++ ++ ++ ++# GTK specific properties ++ ++# GTK color chooser properties: ++GTKColorChooserPanel.nameText=Seletor de cores do GTK ++# mnemonic as a VK_ constant ++GTKColorChooserPanel.mnemonic=71 ++# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you ++# want an index other than would normally be underlined by ++# GTKColorChooserPanel.mnemonic to be underlined. This is only useful ++# if GTKColorChooserPanel.nameText defines the mnemonic character more ++# than once and you want a character other than the first underlined. ++ ++# Text and mnemonics for the spinner. You can also defined a different ++# index for the mnemonic via xxxMnemonicIndex, for example ++# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second ++# character of GTKColorChooserPanel.hueText should be underlined to ++# represent the mnemonic. ++GTKColorChooserPanel.hueText=Matiz: ++GTKColorChooserPanel.hueMnemonic=72 ++ ++GTKColorChooserPanel.redText=Vermelho: ++GTKColorChooserPanel.redMnemonic=69 ++ ++GTKColorChooserPanel.saturationText=Satura\u00e7\u00e3o: ++GTKColorChooserPanel.saturationMnemonic=83 ++ ++GTKColorChooserPanel.greenText=Verde: ++GTKColorChooserPanel.greenMnemonic=71 ++ ++GTKColorChooserPanel.valueText=Valor: ++GTKColorChooserPanel.valueMnemonic=86 ++ ++GTKColorChooserPanel.blueText=Azul: ++GTKColorChooserPanel.blueMnemonic=66 ++ ++GTKColorChooserPanel.colorNameText=Nome da cor: ++GTKColorChooserPanel.colorNameMnemonic=78 ++ ++ ++ ++############ FILE CHOOSER STRINGS ############# ++ ++FileChooser.acceptAllFileFilterText=Todos os arquivos ++FileChooser.newFolderButtonText=Nova pasta ++FileChooser.newFolderButtonMnemonic=78 ++FileChooser.newFolderDialogText=Nome da pasta: ++FileChooser.deleteFileButtonText=Excluir arquivo ++FileChooser.deleteFileButtonMnemonic=76 ++FileChooser.renameFileButtonText=Renomear arquivo ++FileChooser.renameFileButtonMnemonic=82 ++FileChooser.cancelButtonText=Cancelar ++FileChooser.cancelButtonMnemonic=67 ++FileChooser.saveButtonText=OK ++FileChooser.saveButtonMnemonic=79 ++FileChooser.openButtonText=OK ++FileChooser.openButtonMnemonic=79 ++FileChooser.saveDialogTitleText=Salvar ++FileChooser.openDialogTitleText=Abrir ++FileChooser.pathLabelText=Sele\u00e7\u00e3o: ++FileChooser.filterLabelText=Filtro: ++FileChooser.pathLabelMnemonic=83 ++FileChooser.foldersLabelText=Pastas ++FileChooser.foldersLabelMnemonic=68 ++FileChooser.filesLabelText=Arquivos ++FileChooser.filesLabelMnemonic=70 ++ ++FileChooser.cancelButtonToolTipText=Anular caixa de di\u00e1logo do seletor de arquivos. ++FileChooser.saveButtonToolTipText=Salvar arquivo selecionado. ++FileChooser.openButtonToolTipText=Abrir arquivo selecionado. ++ ++FileChooser.renameFileDialogText=Renomear arquivo "{0}" por ++FileChooser.renameFileErrorTitle=Erro ++FileChooser.renameFileErrorText=Erro ao renomear o arquivo "{0}" por "{1}" ++ ++OptionPane.okButtonMnemonic=79 ++OptionPane.cancelButtonMnemonic=67 +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,39 @@ ++# This properties file is used to create a PropertyResourceBundle ++# It contains Locale specific strings used be the Motif Look and Feel. ++# Currently, the following components need this for support: ++# ++# FileChooser ++# ++# When this file is read in, the strings are put into the ++# defaults table. This is an implementation detail of the current ++# workings of Swing. DO NOT DEPEND ON THIS. ++# This may change in future versions of Swing as we improve localization ++# support. ++# ++# Refer to the note in basic.properties for a description as to what ++# the mnemonics correspond to and how to calculate them. ++# ++# @author Steve Wilson ++ ++ ++############ FILE CHOOSER STRINGS ############# ++ ++FileChooser.acceptAllFileFilterText=* ++FileChooser.cancelButtonText=Cancelar ++FileChooser.saveButtonText=Salvar ++FileChooser.openButtonText=OK ++FileChooser.saveDialogTitleText=Salvar ++FileChooser.openDialogTitleText=Abrir ++FileChooser.updateButtonText=Atualizar ++FileChooser.helpButtonText=Ajuda ++FileChooser.pathLabelText=Inserir caminho ou nome da pasta: ++FileChooser.filterLabelText=Filtro ++FileChooser.foldersLabelText=Pastas ++FileChooser.filesLabelText=Arquivos ++FileChooser.enterFileNameLabelText=Inserir nome de arquivo: ++ ++FileChooser.cancelButtonToolTipText=Anular caixa de di\u00e1logo do seletor de arquivos. ++FileChooser.saveButtonToolTipText=Salvar arquivo selecionado. ++FileChooser.openButtonToolTipText=Abrir arquivo selecionado. ++FileChooser.updateButtonToolTipText=Atualizar lista de diret\u00f3rios. ++FileChooser.helpButtonToolTipText=Ajuda do FileChooser. +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,44 @@ ++# This properties file is used to create a PropertyResourceBundle ++# It contains Locale specific strings used be the Windows Look and Feel. ++# Currently, the following components need this for support: ++# ++# FileChooser ++# ++# When this file is read in, the strings are put into the ++# defaults table. This is an implementation detail of the current ++# workings of Swing. DO NOT DEPEND ON THIS. ++# This may change in future versions of Swing as we improve localization ++# support. ++# ++# Refer to the note in basic.properties for a description as to what ++# the mnemonics correspond to and how to calculate them. ++# ++# @author Steve Wilson ++ ++ ++############ FILE CHOOSER STRINGS ############# ++ ++FileChooser.lookInLabelText=Consultar em: ++FileChooser.saveInLabelText=Salvar em: ++FileChooser.fileNameLabelText=Nome de arquivo: ++FileChooser.filesOfTypeLabelText=Arquivos de tipo: ++FileChooser.upFolderToolTipText=Um n\u00edvel acima ++FileChooser.upFolderAccessibleName=Acima ++FileChooser.homeFolderToolTipText=In\u00edcio ++FileChooser.homeFolderAccessibleName=In\u00edcio ++FileChooser.newFolderToolTipText=Criar nova pasta ++FileChooser.newFolderAccessibleName=Nova pasta ++FileChooser.newFolderActionLabelText=Nova pasta ++FileChooser.listViewButtonToolTipText=Lista ++FileChooser.listViewButtonAccessibleName=Lista ++FileChooser.listViewActionLabelText=Lista ++FileChooser.detailsViewButtonToolTipText=Detalhes ++FileChooser.detailsViewButtonAccessibleName=Detalhes ++FileChooser.detailsViewActionLabelText=Detalhes ++FileChooser.refreshActionLabelText=Atualizar ++FileChooser.viewMenuLabelText=Exibir ++FileChooser.fileNameHeaderText=Nome ++FileChooser.fileSizeHeaderText=Tamanho ++FileChooser.fileTypeHeaderText=Tipo ++FileChooser.fileDateHeaderText=Modificado ++FileChooser.fileAttrHeaderText=Atributos +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,170 @@ ++# ++# Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. ++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++# ++# This code is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Oracle designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Oracle in the LICENSE file that accompanied this code. ++# ++# This code is distributed in the hope that it will be useful, but WITHOUT ++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++# version 2 for more details (a copy is included in the LICENSE file that ++# accompanied this code). ++# ++# You should have received a copy of the GNU General Public License version ++# 2 along with this work; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. From andrew at icedtea.classpath.org Tue Nov 12 19:59:07 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Nov 2013 03:59:07 +0000 Subject: /hg/release/icedtea6-1.11: Start 1.11.15 release cycle. Message-ID: changeset 6901d30f4321 in /hg/release/icedtea6-1.11 details: http://icedtea.classpath.org/hg/release/icedtea6-1.11?cmd=changeset;node=6901d30f4321 author: Andrew John Hughes date: Wed Nov 13 03:58:58 2013 +0000 Start 1.11.15 release cycle. 2013-11-13 Andrew John Hughes * configure.ac: Set to 1.11.15pre. * NEWS: Add 1.11.15 section. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r f7a359db72f5 -r 6901d30f4321 ChangeLog --- a/ChangeLog Wed Nov 13 03:47:59 2013 +0000 +++ b/ChangeLog Wed Nov 13 03:58:58 2013 +0000 @@ -1,3 +1,8 @@ +2013-11-13 Andrew John Hughes + + * configure.ac: Set to 1.11.15pre. + * NEWS: Add 1.11.15 section. + 2013-11-13 Andrew John Hughes * NEWS: Fix release date. diff -r f7a359db72f5 -r 6901d30f4321 NEWS --- a/NEWS Wed Nov 13 03:47:59 2013 +0000 +++ b/NEWS Wed Nov 13 03:58:58 2013 +0000 @@ -11,6 +11,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.11.15 (2014-XX-XX): + New in release 1.11.14 (2013-11-13): * Security fixes diff -r f7a359db72f5 -r 6901d30f4321 configure.ac --- a/configure.ac Wed Nov 13 03:47:59 2013 +0000 +++ b/configure.ac Wed Nov 13 03:58:58 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.11.14],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.11.15pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Tue Nov 12 20:08:21 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 13 Nov 2013 04:08:21 +0000 Subject: /hg/icedtea6: Post-1.11.14 NEWS update. Message-ID: changeset 10ce8e5e415f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=10ce8e5e415f author: Andrew John Hughes date: Wed Nov 13 04:08:08 2013 +0000 Post-1.11.14 NEWS update. 2013-11-13 Andrew John Hughes * NEWS: Add 1.11.14 release notes and remove items in 1.13.0 which have been released in 1.11.x. diffstat: ChangeLog | 6 ++ NEWS | 154 ++++++++++++++++++++++++++++--------------------------------- 2 files changed, 78 insertions(+), 82 deletions(-) diffs (234 lines): diff -r 0eed175f8b35 -r 10ce8e5e415f ChangeLog --- a/ChangeLog Fri Nov 01 09:52:25 2013 +0000 +++ b/ChangeLog Wed Nov 13 04:08:08 2013 +0000 @@ -1,3 +1,9 @@ +2013-11-13 Andrew John Hughes + + * NEWS: Add 1.11.14 release notes and + remove items in 1.13.0 which have been + released in 1.11.x. + 2013-10-31 Andrew John Hughes * Makefile.am: diff -r 0eed175f8b35 -r 10ce8e5e415f NEWS --- a/NEWS Fri Nov 01 09:52:25 2013 +0000 +++ b/NEWS Wed Nov 13 04:08:08 2013 +0000 @@ -13,48 +13,6 @@ New in release 1.13.0 (201X-XX-XX): -* Security fixes - - S8006900, CVE-2013-3829: Add new date/time capability - - S8008589: Better MBean permission validation - - S8011071, CVE-2013-5780: Better crypto provider handling - - S8011081, CVE-2013-5772: Improve jhat - - S8011157, CVE-2013-5814: Improve CORBA portablility - - S8012071, CVE-2013-5790: Better Building of Beans - - S8012147: Improve tool support - - S8012277: CVE-2013-5849: Improve AWT DataFlavor - - S8012425, CVE-2013-5802: Transform TransformerFactory - - S8013503, CVE-2013-5851: Improve stream factories - - S8013506: Better Pack200 data handling - - S8013510, CVE-2013-5809: Augment image writing code - - S8013514: Improve stability of cmap class - - S8013739, CVE-2013-5817: Better LDAP resource management - - S8013744, CVE-2013-5783: Better tabling for AWT - - S8014085: Better serialization support in JMX classes - - S8014093, CVE-2013-5782: Improve parsing of images - - S8014102, CVE-2013-5778: Improve image conversion - - S8014341, CVE-2013-5803: Better service from Kerberos servers - - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations - - S8014530, CVE-2013-5825: Better digital signature processing - - S8014534: Better profiling support - - S8014987, CVE-2013-5842: Augment serialization handling - - S8015614: Update build settings - - S8015731: Subject java.security.auth.subject to improvements - - S8015743, CVE-2013-5774: Address internet addresses - - S8016256: Make finalization final - - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names - - S8016675, CVE-2013-5797: Make Javadoc pages more robust - - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately - - S8017287, CVE-2013-5829: Better resource disposal - - S8017291, CVE-2013-5830: Cast Proxies Aside - - S8017298, CVE-2013-4002: Better XML support - - S8017300, CVE-2013-5784: Improve Interface Implementation - - S8017505, CVE-2013-5820: Better Client Service - - S8019292: Better Attribute Value Exceptions - - S8019617: Better view of objects - - S8020293: JVM crash - - S8021290, CVE-2013-5823: Better signature validation - - S8022940: Enhance CORBA translations - - S8023683: Enhance class file parsing * New features - PR1458: Make use of bootstrap tools & -Xbootclasspath patches optional - PR718: Backport LCMS2 support from IcedTea7 @@ -910,6 +868,74 @@ - S8014312: Fork hs23.25 hsx from hs23.21 for jdk7u25 and reinitialize build number - S8014464: Update jcheck for 6-open * Backports + - S7025066: Build systems changes to support SE Embedded Integration + - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber + - S8020943: Memory leak when GCNotifier uses create_from_platform_dependent_str() + - S8023457: Event based tracing framework needs a mutex for thread groups + - S8023478: Test fails with HS crash in GCNotifier. +* Bug fixes + - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. + - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) + - RH991170: java does not use correct kerberos credential cache + - PR1535: Allow use of system Kerberos to obtain cache location +* JamVM + - JSR 335: Lambda Expressions + - JEP 171: Implement fence methods in sun.misc.Unsafe + - sun.misc.Unsafe: additional methods get/putAddress + - FreeClassData: adjust method count for Miranda methods + - Fix invokesuper check in invokespecial opcode + - Fix non-direct interpreter invokespecial super-class check + - When GC'ing a native method don't try to free code + - Do not free unprepared Miranda method code data + - Set anonymous class protection domain + - JVM_IsVMGeneratedMethodIx stub + - Dummy implementation of sun.misc.Perf natives + +New in release 1.11.14 (2013-11-13): + +* Security fixes + - S8006900, CVE-2013-3829: Add new date/time capability + - S8008589: Better MBean permission validation + - S8011071, CVE-2013-5780: Better crypto provider handling + - S8011081, CVE-2013-5772: Improve jhat + - S8011157, CVE-2013-5814: Improve CORBA portablility + - S8012071, CVE-2013-5790: Better Building of Beans + - S8012147: Improve tool support + - S8012277: CVE-2013-5849: Improve AWT DataFlavor + - S8012425, CVE-2013-5802: Transform TransformerFactory + - S8013503, CVE-2013-5851: Improve stream factories + - S8013506: Better Pack200 data handling + - S8013510, CVE-2013-5809: Augment image writing code + - S8013514: Improve stability of cmap class + - S8013739, CVE-2013-5817: Better LDAP resource management + - S8013744, CVE-2013-5783: Better tabling for AWT + - S8014085: Better serialization support in JMX classes + - S8014093, CVE-2013-5782: Improve parsing of images + - S8014102, CVE-2013-5778: Improve image conversion + - S8014341, CVE-2013-5803: Better service from Kerberos servers + - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations + - S8014530, CVE-2013-5825: Better digital signature processing + - S8014534: Better profiling support + - S8014987, CVE-2013-5842: Augment serialization handling + - S8015614: Update build settings + - S8015731: Subject java.security.auth.subject to improvements + - S8015743, CVE-2013-5774: Address internet addresses + - S8016256: Make finalization final + - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names + - S8016675, CVE-2013-5797: Make Javadoc pages more robust + - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately + - S8017287, CVE-2013-5829: Better resource disposal + - S8017291, CVE-2013-5830: Cast Proxies Aside + - S8017298, CVE-2013-4002: Better XML support + - S8017300, CVE-2013-5784: Improve Interface Implementation + - S8017505, CVE-2013-5820: Better Client Service + - S8019292: Better Attribute Value Exceptions + - S8019617: Better view of objects + - S8020293: JVM crash + - S8021290, CVE-2013-5823: Better signature validation + - S8022940: Enhance CORBA translations + - S8023683: Enhance class file parsing +* Backports - S4075303: Use javap to enquire about a specific inner class - S4111861: static final field contents are not displayed - S4348375: Javap is not internationalized @@ -921,27 +947,19 @@ - S4876942: javap invoked without args does not print help screen - S4880663: javap could output whitespace between class name and opening brace - S4884240: additional option required for javap - - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY - S4975569: javap doesn't print new flag bits - S6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table - S6305779: javap: support annotations - S6439940: Clean up javap implementation - S6469569: wrong check of searchpath in JavapEnvironment - S6474890: javap does not open .zip files in -classpath - - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) - S6587786: Javap throws error : "ERROR:Could not find " for JRE classes - S6622215: javap ignores certain relevant access flags - S6622216: javap names some attributes incorrectly - S6622232: javap gets whitespace confused - S6622260: javap prints negative bytes incorrectly in hex - - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll - S6708729: update jdk Makefiles for new javap - S6715767: javap on java.lang.ClassLoader crashes - - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 - - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 - - S6793818: JpegImageReader is too greedy creating color profiles - - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 - - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 - S6819246: improve support for decoding instructions in classfile library - S6824493: experimental support for additional info for instructions - S6841419: classfile: add constant pool iterator @@ -950,20 +968,12 @@ - S6852856: javap changes to facilitate subclassing javap for variants - S6867671: javap whitespace formatting issues - S6868539: javap should use current names for constant pool tags - - S6888215: memory leak in jpeg plugin - S6902264: fix indentation of tableswitch and lookupswitch + - S6925851: Localize JRE into pt_BR - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate - - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) - - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build - - S6989760: cmm native compiler warnings - - S6989774: imageio compiler warnings in native code - - S7000225: Sanity check on sane-alsa-headers is broken - - S7013519: [parfait] Integer overflows in 2D code - - S7018912: [parfait] potential buffer overruns in imageio jpeg - - S7025066: Build systems changes to support SE Embedded Integration - - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber + - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java - S7146431: java.security files out-of-sync - -S8000450: Restrict access to com/sun/corba/se/impl package + - S8000450: Restrict access to com/sun/corba/se/impl package - S8002070: Remove the stack search for a resource bundle for Logger to use - S8003992: File and other classes in java.io do not handle embedded nulls properly - S8004188: Rename src/share/lib/security/java.security to java.security-linux @@ -989,7 +999,6 @@ - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes - S8019979: Replace CheckPackageAccess test with better one from closed repo - - S8020943: Memory leak when GCNotifier uses create_from_platform_dependent_str() - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 @@ -997,32 +1006,13 @@ - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. - S8022661: InetAddress.writeObject() performs flush() on object output stream - S8022682: Supporting XOM - - S8023457: Event based tracing framework needs a mutex for thread groups - - S8023478: Test fails with HS crash in GCNotifier. - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp - S8025128: File.createTempFile fails if prefix is absolute path + - S8025255: (tz) Support tzdata2013g - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 - OJ20: Resolve merge issues with JAXP security fixes - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes -* Bug fixes - - PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. - - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. - - RH902004: very bad performance with E-Porto Add-In f??r OpenOffice Writer installed (hs23 only) - - RH991170: java does not use correct kerberos credential cache - - PR1535: Allow use of system Kerberos to obtain cache location -* JamVM - - JSR 335: Lambda Expressions - - JEP 171: Implement fence methods in sun.misc.Unsafe - - sun.misc.Unsafe: additional methods get/putAddress - - FreeClassData: adjust method count for Miranda methods - - Fix invokesuper check in invokespecial opcode - - Fix non-direct interpreter invokespecial super-class check - - When GC'ing a native method don't try to free code - - Do not free unprepared Miranda method code data - - Set anonymous class protection domain - - JVM_IsVMGeneratedMethodIx stub - - Dummy implementation of sun.misc.Perf natives New in release 1.11.13 (2013-09-06): From jvanek at redhat.com Tue Nov 12 23:52:36 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 13 Nov 2013 08:52:36 +0100 Subject: [rfc][icedtea-web] BasicExceptionDialog centered on screen In-Reply-To: <20131112225322.GA4317@redhat.com> References: <52828401.5030606@redhat.com> <20131112225322.GA4317@redhat.com> Message-ID: <52832FC4.2050908@redhat.com> On 11/12/2013 11:53 PM, Omair Majid wrote: > Hi Andrew, > > * Andrew Azores [2013-11-12 14:57]: >> Our basic exception dialog doesn't seem to center itself on screen, >> which is a little sad IMO! It's just a one-line patch. > > Looks good to me. > > Cheers, > Omari > This would be nice to go to have in 1.4 From jvanek at redhat.com Tue Nov 12 23:53:02 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 13 Nov 2013 08:53:02 +0100 Subject: [rfc][icedtea-web] JNLPClassLoader for-loop and Enumeration cleanup In-Reply-To: <20131112230330.GB4317@redhat.com> References: <52826989.6030503@redhat.com> <20131112230330.GB4317@redhat.com> Message-ID: <52832FDE.5020007@redhat.com> On 11/13/2013 12:03 AM, Omair Majid wrote: > Hi, > > * Andrew Azores [2013-11-12 12:48]: >> 2) Wraps some Enumeration usage in Collections.list(), so that the >> result is Iterable. This removes extra boilerplate and reduces the >> number of loop variables creeping out of absolute minimal scope, and >> again allows the usage of for-each-loops. Other Enumeration usage in >> the class is unfortunately part of its public interface, so in those >> cases nothing has been done. > > Compared to the rest of the changes, this looks a little unsafe, since > there is a cost associated with converting an enumeration to list. > Still, there should be no performance impact. > >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > >> - tracker.addResource(jars[i].getLocation(), >> - jars[i].getVersion(), >> - file.getDownloadOptions(), >> - jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE >> - ); >> + tracker.addResource(jar.getLocation(), >> + jar.getVersion(), file.getDownloadOptions(), >> + jar.isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE); > > I find the previous style (each argument on it's own line) more > readable. But not a big deal. > > Feel free to push. > > Cheers, > Omair > this *should* go to 1,4 as it will make backporting much easier. From jvanek at icedtea.classpath.org Wed Nov 13 01:05:50 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 13 Nov 2013 09:05:50 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset fb182f92152b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fb182f92152b author: Jiri Vanek date: Wed Nov 13 09:48:41 2013 +0100 Enabled access to manifests' attributes from JNLPFile class, implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name changeset 9ed10fe70cb7 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9ed10fe70cb7 author: Jiri Vanek date: Wed Nov 13 10:05:32 2013 +0100 Added test-extension to silence stdout/err of itw when run from junit diffstat: ChangeLog | 30 + NEWS | 1 + netx/net/sourceforge/jnlp/JNLPFile.java | 121 +++++++ netx/net/sourceforge/jnlp/PluginBridge.java | 13 +- netx/net/sourceforge/jnlp/ResourcesDesc.java | 29 +- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 27 +- netx/net/sourceforge/jnlp/security/CertWarningPane.java | 21 +- tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java | 3 +- tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java | 7 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java | 5 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java | 162 ++++++++++ tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java | 105 ++++++ tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java | 8 +- tests/test-extensions/net/sourceforge/jnlp/util/logging/NoStdOutErrTest.java | 89 +++++ 14 files changed, 581 insertions(+), 40 deletions(-) diffs (truncated from 920 to 500 lines): diff -r d6caaf4298af -r 9ed10fe70cb7 ChangeLog --- a/ChangeLog Sun Nov 10 11:30:43 2013 +0100 +++ b/ChangeLog Wed Nov 13 10:05:32 2013 +0100 @@ -1,3 +1,33 @@ +2013-11-13 Jiri Vanek + + Added test-extension to silence stdout/err of itw when run from junit + * tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java: now extends NoStdOutErrTest + * tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java: same + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: same + * tests/test-extensions/net/sourceforge/jnlp/util/logging/NoStdOutErrTest.java: + new class with (disableStds) BeforeClass method and (restoreStds) AfterClass + method which are responsible for silence all itw messages from extending test. + +2013-11-13 Jiri Vanek + + Enabled access to manifests' attributes from JNLPFile class + Implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + * netx/net/sourceforge/jnlp/JNLPFile.java: Added (manifestsAttributes) field. + Added (ManifestsAttributes) inner class, to encapsulate access to attributes. + (getTitle) can handle manifests too. + * netx/net/sourceforge/jnlp/PluginBridge.java: is following app_name recommendations. + * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) made more granular + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (init) inject itself + to file's ManifestsAttributes. (checkForAttributeInJars) renamed field + mainClassInThisJar to attributeInThisJar. Added getter for mainClass. + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: bracketing cleanup. + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java: new test to + check new functionalites + * tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java: same + * tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java: + can set info + * NEWS: mentioned first u45 attribute + 2013-11-10 Jiri Vanek Fixed lock in awt threads. JavaConsole window is now disposed instead of hidden. diff -r d6caaf4298af -r 9ed10fe70cb7 NEWS --- a/NEWS Sun Nov 10 11:30:43 2013 +0100 +++ b/NEWS Wed Nov 13 10:05:32 2013 +0100 @@ -13,6 +13,7 @@ * JDK older then 1.5 no longer supported * IcedTea-Web is now following XDG .config and .cache specification(RH947647) * A console for debugging plugin and javaws +* Support for u45 new manifest attributes (Application-Name) * Cache Viewer - Can be closed by ESC key - Enabling and disabling of operational buttons is handled properly diff -r d6caaf4298af -r 9ed10fe70cb7 netx/net/sourceforge/jnlp/JNLPFile.java --- a/netx/net/sourceforge/jnlp/JNLPFile.java Sun Nov 10 11:30:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Wed Nov 13 10:05:32 2013 +0100 @@ -27,9 +27,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; +import java.util.jar.Attributes; import net.sourceforge.jnlp.cache.ResourceTracker; import net.sourceforge.jnlp.cache.UpdatePolicy; +import net.sourceforge.jnlp.runtime.JNLPClassLoader; import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.util.logging.OutputController; @@ -51,6 +53,13 @@ * @version $Revision: 1.21 $ */ public class JNLPFile { + + + public static final String APP_NAME = "Application-Name"; + public static final String CALLER_ALLOWABLE = "Caller-Allowable-Codebase"; + public static final String APP_LIBRARY_ALLOWABLE = "Application-Library-Allowable-Codebase"; + + // todo: save the update policy, then if file was not updated // then do not check resources for being updated. @@ -121,6 +130,10 @@ * List of acceptable properties (not-special) */ private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); + + /** important manifests' attributes */ + private final ManifestsAttributes manifestsAttributes = new ManifestsAttributes(); + { // initialize defaults if security allows try { @@ -293,10 +306,46 @@ /** * Returns the JNLP file's best localized title. This method returns the same * value as InformationDesc.getTitle(). + * + * Since jdk7 u45, also manifest title, and mainclass are taken to consideration; + * See PluginBridge */ public String getTitle() { + String jnlpTitle = getTitleFromJnlp(); + String manifestTitle = getTitleFromManifest(); + if (jnlpTitle != null && manifestTitle != null) { + if (jnlpTitle.equals(manifestTitle)) { + return jnlpTitle; + } + return jnlpTitle+" ("+manifestTitle+")"; + } + if (jnlpTitle != null && manifestTitle == null) { + return jnlpTitle; + } + if (jnlpTitle == null && manifestTitle != null) { + return manifestTitle; + } + String mainClass = getManifestsAttributes().getMainClass(); + return mainClass; + } + + /** + * Returns the JNLP file's best localized title. This method returns the same + * value as InformationDesc.getTitle(). + */ + public String getTitleFromJnlp() { return getInformation().getTitle(); } + + public String getTitleFromManifest() { + String inManifestTitle = getManifestsAttributes().getApplicationName(); + if (inManifestTitle == null && getManifestsAttributes().isLoader()){ + OutputController.getLogger().log(OutputController.Level.WARNING_ALL,"Application title was not found in manifest. Check with application vendor"); + } + return inManifestTitle; + } + + /** * Returns the JNLP file's best localized vendor. This method returns the same @@ -818,4 +867,76 @@ public void setSignedJNLPAsMissing() { missingSignedJNLP = true; } + + public ManifestsAttributes getManifestsAttributes() { + return manifestsAttributes; + } + + + public class ManifestsAttributes{ + private JNLPClassLoader loader; + + + public void setLoader(JNLPClassLoader loader) { + this.loader = loader; + } + + public boolean isLoader() { + return loader != null; + } + + + + /** + * main class can be defined outside of manifest. + * This method is mostly for completeness + */ + public String getMainClass(){ + if (loader == null) { + OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Jars not ready to provide main class"); + return null; + } + return loader.getMainClass(); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + */ + public String getApplicationName(){ + return getAttribute(APP_NAME); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#caller_allowable + */ + public String getCallerAllowableCodebase(){ + return getAttribute(CALLER_ALLOWABLE); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_library + */ + public String getApplicationLibraryAllowableCodebase(){ + return getAttribute(APP_LIBRARY_ALLOWABLE); + } + + /** + * get custom attribute. + */ + public String getAttribute(String name){ + return getAttribute(new Attributes.Name(name)); + } + + /** + * get standard attribute + */ + public String getAttribute(Attributes.Name name){ + if (loader == null) { + OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "Jars not ready to provide attribute "+ name); + return null; + } + return loader.checkForAttributeInJars(Arrays.asList(getResources().getJARs()), name); + } + } + } diff -r d6caaf4298af -r 9ed10fe70cb7 netx/net/sourceforge/jnlp/PluginBridge.java --- a/netx/net/sourceforge/jnlp/PluginBridge.java Sun Nov 10 11:30:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/PluginBridge.java Wed Nov 13 10:05:32 2013 +0100 @@ -184,7 +184,7 @@ // the class name should be of the form foo.bar.Baz not foo/bar/Baz String mainClass = main.replace('/', '.'); - launchType = new AppletDesc(params.getAppletTitle(), mainClass, documentBase, width, + launchType = new AppletDesc(getTitle(), mainClass, documentBase, width, height, params.getUnmodifiableMap()); if (main.endsWith(".class")) //single class file only @@ -231,7 +231,18 @@ return new DownloadOptions(usePack, useVersion); } + @Override public String getTitle() { + String inManifestTitle = super.getTitleFromManifest(); + if (inManifestTitle != null) { + return inManifestTitle; + } + //specification is recommending main class instead of html parameter + //http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + String mainClass = getManifestsAttributes().getMainClass(); + if (mainClass != null) { + return mainClass; + } return params.getAppletTitle(); } diff -r d6caaf4298af -r 9ed10fe70cb7 netx/net/sourceforge/jnlp/ResourcesDesc.java --- a/netx/net/sourceforge/jnlp/ResourcesDesc.java Sun Nov 10 11:30:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/ResourcesDesc.java Wed Nov 13 10:05:32 2013 +0100 @@ -67,23 +67,30 @@ return resources.toArray(new JREDesc[resources.size()]); } + public static JARDesc getMainJAR(JARDesc jars[] ) { + return getMainJAR(Arrays.asList(jars)); + } + + public static JARDesc getMainJAR(List jars) { + for (JARDesc jar : jars) { + if (jar.isMain()) { + return jar; + } + } + + if (jars.size() > 0) { + return jars.get(0); + } else { + return null; + } + } /** * Returns the main JAR for these resources. There first JAR * is returned if no JARs are specified as the main JAR, and if * there are no JARs defined then null is returned. */ public JARDesc getMainJAR() { - JARDesc jars[] = getJARs(); - - for (JARDesc jar : jars) { - if (jar.isMain()) - return jar; - } - - if (jars.length > 0) - return jars[0]; - else - return null; + return getMainJAR(getJARs()); } /** diff -r d6caaf4298af -r 9ed10fe70cb7 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Sun Nov 10 11:30:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 10:05:32 2013 +0100 @@ -115,7 +115,7 @@ /** Signed JNLP File and Template */ final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; - + /** Actions to specify how cache is to be managed **/ public static enum DownloadAction { DOWNLOAD_TO_CACHE, REMOVE_FROM_CACHE, CHECK_CACHE @@ -200,7 +200,7 @@ /** Name of the application's main class */ private String mainClass = null; - + /** * Variable to track how many times this loader is in use */ @@ -245,6 +245,9 @@ this.mainClass = mainName; + //as it is harmless, we can set is as soon as possible. + file.getManifestsAttributes().setLoader(this); + AppVerifier verifier; if (file instanceof PluginBridge && !((PluginBridge)file).useJNLPHref()) { @@ -259,13 +262,15 @@ initializeExtensions(); initializeResources(); + // initialize permissions initializePermissions(); setSecurity(); - + installShutdownHooks(); + } @@ -786,7 +791,7 @@ String result = null; // Check main jar - JARDesc mainJarDesc = file.getResources().getMainJAR(); + JARDesc mainJarDesc = ResourcesDesc.getMainJAR(jars); result = getManifestAttribute(mainJarDesc.getLocation(), name); if (result != null) { @@ -803,10 +808,10 @@ // Still not found? Iterate and set if only 1 was found for (JARDesc jarDesc: jars) { - String mainClassInThisJar = getManifestAttribute(jarDesc.getLocation(), name); - if (mainClassInThisJar != null) { + String attributeInThisJar = getManifestAttribute(jarDesc.getLocation(), name); + if (attributeInThisJar != null) { if (result == null) { // first main class - result = mainClassInThisJar; + result = attributeInThisJar; } else { // There is more than one main class. Set to null and break. result = null; break; @@ -2193,6 +2198,10 @@ return new AccessControlContext(new ProtectionDomain[] { pd }); } + + public String getMainClass() { + return mainClass; + } /* * Helper class to expose protected URLClassLoader methods. @@ -2317,6 +2326,6 @@ return null; } } - - + + } diff -r d6caaf4298af -r 9ed10fe70cb7 netx/net/sourceforge/jnlp/security/CertWarningPane.java --- a/netx/net/sourceforge/jnlp/security/CertWarningPane.java Sun Nov 10 11:30:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/security/CertWarningPane.java Wed Nov 13 10:05:32 2013 +0100 @@ -107,13 +107,14 @@ //these strings -- we just want to fill in as many as possible. try { if ((certVerifier instanceof HttpsCertVerifier) && - (c instanceof X509Certificate)) + (c instanceof X509Certificate)) { name = SecurityUtil.getCN(((X509Certificate) c) .getSubjectX500Principal().getName()); - else if (file instanceof PluginBridge) + } else if (file instanceof PluginBridge) { name = file.getTitle(); - else + } else { name = file.getInformation().getTitle(); + } } catch (Exception e) { } @@ -126,10 +127,11 @@ } try { - if (file instanceof PluginBridge) + if (file instanceof PluginBridge) { from = file.getCodeBase().getHost(); - else + } else { from = file.getInformation().getHomepage().toString(); + } } catch (Exception e) { } @@ -146,7 +148,7 @@ topLabelText = R("SHttpsUnverified") + " " + R("Continue"); propertyName = "OptionPane.warningIcon"; iconLocation += "warning.png"; - } else + } else { switch (type) { case VERIFIED: topLabelText = R("SSigVerified"); @@ -167,7 +169,7 @@ bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); break; } - + } ImageIcon icon = new ImageIcon((new sun.misc.Launcher()) .getClassLoader().getResource(iconLocation)); JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); @@ -195,8 +197,9 @@ infoPanel.add(nameLabel); infoPanel.add(publisherLabel); - if (!(certVerifier instanceof HttpsCertVerifier)) + if (!(certVerifier instanceof HttpsCertVerifier)) { infoPanel.add(fromLabel); + } infoPanel.add(alwaysTrust); infoPanel.setBorder(BorderFactory.createEmptyBorder(25, 25, 25, 25)); @@ -225,7 +228,7 @@ add(infoPanel); add(buttonPanel); - JLabel bottomLabel = new JLabel(htmlWrap(bottomLabelText));; + JLabel bottomLabel = new JLabel(htmlWrap(bottomLabelText)); JButton moreInfo = new JButton(R("ButMoreInformation")); moreInfo.addActionListener(new MoreInfoButtonListener()); diff -r d6caaf4298af -r 9ed10fe70cb7 tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java Sun Nov 10 11:30:43 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java Wed Nov 13 10:05:32 2013 +0100 @@ -47,11 +47,12 @@ import net.sourceforge.jnlp.JNLPFile.Match; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.mock.MockJNLPFile; +import net.sourceforge.jnlp.util.logging.NoStdOutErrTest; import org.junit.Assert; import org.junit.Test; -public class JNLPFileTest { +public class JNLPFileTest extends NoStdOutErrTest{ Locale jvmLocale = new Locale("en", "CA", "utf8"); MockJNLPFile file = new MockJNLPFile(jvmLocale); diff -r d6caaf4298af -r 9ed10fe70cb7 tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java --- a/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Sun Nov 10 11:30:43 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java Wed Nov 13 10:05:32 2013 +0100 @@ -37,20 +37,17 @@ package net.sourceforge.jnlp; -import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.List; -import net.sourceforge.jnlp.runtime.CodeBaseClassLoaderTest; import net.sourceforge.jnlp.mock.DummyJNLPFile; +import net.sourceforge.jnlp.util.logging.NoStdOutErrTest; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** Test that the parser works with basic jnlp files */ -public class ParserBasic { +public class ParserBasic extends NoStdOutErrTest{ private static Node root; private static Parser parser; diff -r d6caaf4298af -r 9ed10fe70cb7 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Sun Nov 10 11:30:43 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Wed Nov 13 10:05:32 2013 +0100 @@ -42,9 +42,7 @@ import static org.junit.Assert.fail; From bugzilla-daemon at icedtea.classpath.org Wed Nov 13 01:27:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 13 Nov 2013 09:27:29 +0000 Subject: [Bug 1538] HttpCallerInfo missing from rt.jar when bootstrapping is enabled In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1538 --- Comment #1 from Joachim Breuer --- With IcedTea 2.4.3 as built in gentoo (with jbootstrap enabled), I no longer experience the problems caused by the missing HttpCallerInfo class. But still, the HttpCallerInfo class is missing from the generated rt.jar: $ javap -c sun.net.www.protocol.http.HttpCallerInfo Error: class not found: sun.net.www.protocol.http.HttpCallerInfo although it is referenced from HttpURLConnection: $ javap -c sun.net.www.protocol.http.HttpURLConnection | grep HttpCallerInfo 593: new #325 // class sun/net/www/protocol/http/HttpCallerInfo 615: invokespecial #326 // Method sun/net/www/protocol/http/HttpCallerInfo."":(Ljava/net/URL;Ljava/lang/String;I)V 620: invokespecial #327 // Method sun/net/www/protocol/http/AuthenticationHeader."":(Ljava/lang/String;Lsun/net/www/MessageHeader;Lsun/net/www/protocol/http/HttpCallerInfo;Z)V 929: new #325 // class sun/net/www/protocol/http/HttpCallerInfo 937: invokespecial #335 // Method sun/net/www/protocol/http/HttpCallerInfo."":(Ljava/net/URL;)V 942: invokespecial #327 // Method sun/net/www/protocol/http/AuthenticationHeader."":(Ljava/lang/String;Lsun/net/www/MessageHeader;Lsun/net/www/protocol/http/HttpCallerInfo;Z)V 306: new #325 // class sun/net/www/protocol/http/HttpCallerInfo 328: invokespecial #326 // Method sun/net/www/protocol/http/HttpCallerInfo."":(Ljava/net/URL;Ljava/lang/String;I)V 333: invokespecial #327 // Method sun/net/www/protocol/http/AuthenticationHeader."":(Ljava/lang/String;Lsun/net/www/MessageHeader;Lsun/net/www/protocol/http/HttpCallerInfo;Z)V For more details, see the update on the corresponding gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=464224#c17 -- 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/20131113/426a4845/attachment.html From jvanek at icedtea.classpath.org Wed Nov 13 02:41:37 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 13 Nov 2013 10:41:37 +0000 Subject: /hg/release/icedtea-web-1.4: 2 new changesets Message-ID: changeset 7d2759e4bc98 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=7d2759e4bc98 author: Jiri Vanek date: Wed Nov 13 11:15:18 2013 +0100 Backported enabled access to manifests' attributes from JNLPFile class, implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name changeset e139942101a9 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=e139942101a9 author: Jiri Vanek date: Wed Nov 13 11:40:40 2013 +0100 Backported and adapted test-extension to silence stdout/err of itw when run from junit diffstat: ChangeLog | 34 ++ NEWS | 1 + netx/net/sourceforge/jnlp/InformationDesc.java | 22 +- netx/net/sourceforge/jnlp/JNLPFile.java | 125 +++++++ netx/net/sourceforge/jnlp/PluginBridge.java | 13 +- netx/net/sourceforge/jnlp/ResourcesDesc.java | 29 +- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 27 +- netx/net/sourceforge/jnlp/security/CertWarningPane.java | 21 +- netx/net/sourceforge/jnlp/util/StreamUtils.java | 27 +- tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java | 3 +- tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java | 7 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java | 3 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java | 162 ++++++++++ tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java | 105 ++++++ tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java | 100 ++++++ tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java | 129 +++++++ tests/test-extensions/net/sourceforge/jnlp/util/logging/NoStdOutErrTest.java | 74 ++++ 17 files changed, 831 insertions(+), 51 deletions(-) diffs (truncated from 1222 to 500 lines): diff -r acbada276d23 -r e139942101a9 ChangeLog --- a/ChangeLog Wed Nov 06 14:46:43 2013 +0100 +++ b/ChangeLog Wed Nov 13 11:40:40 2013 +0100 @@ -1,3 +1,37 @@ +2013-11-13 Jiri Vanek + + Added test-extension to silence stdout/err of itw when run from junit + * tests/netx/unit/net/sourceforge/jnlp/JNLPFileTest.java: now extends NoStdOutErrTest + * tests/netx/unit/net/sourceforge/jnlp/ParserBasic.java: same + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: same + * tests/test-extensions/net/sourceforge/jnlp/util/logging/NoStdOutErrTest.java: + new class with (disableStds) BeforeClass method and (restoreStds) AfterClass + method which are responsible for redirecting all itw messages from extending test. + +2013-11-13 Jiri Vanek + + Enabled access to manifests' attributes from JNLPFile class + Implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + * netx/net/sourceforge/jnlp/JNLPFile.java: Added (manifestsAttributes) field. + Added (ManifestsAttributes) inner class, to encapsulate access to attributes. + (getTitle) can handle manifests too. + * netx/net/sourceforge/jnlp/PluginBridge.java: is following app_name recommendations. + * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) made more granular + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (init) inject itself + to file's ManifestsAttributes. (checkForAttributeInJars) renamed field + mainClassInThisJar to attributeInThisJar. Added getter for mainClass. + * netx/net/sourceforge/jnlp/security/CertWarningPane.java: bracketing cleanup. + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPFileTest.java: new test to + check new functionalites + * tests/netx/unit/net/sourceforge/jnlp/runtime/ResourcesDescTest.java: same + * tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java: + can set info + * NEWS: mentioned first u45 attribute, dialog centering + * tests/test-extensions/net/sourceforge/jnlp/mock/DummyJNLPFileWithJar.java: backported + * tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java: backported + * netx/net/sourceforge/jnlp/InformationDesc.java: partial backport of constructor change + + 2013-11-06 Jiri Vanek Enabled java console for plugin diff -r acbada276d23 -r e139942101a9 NEWS --- a/NEWS Wed Nov 06 14:46:43 2013 +0100 +++ b/NEWS Wed Nov 13 11:40:40 2013 +0100 @@ -10,6 +10,7 @@ New in release 1.4.2 (2013-MM-DD): * Dialogs center on screen before becoming visible +* Support for u45 new manifest attributes (Application-Name) * Plugin - RH976833: Multiple applets on one page cause deadlock - Enabled javaconsole diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/InformationDesc.java --- a/netx/net/sourceforge/jnlp/InformationDesc.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/InformationDesc.java Wed Nov 13 11:40:40 2013 +0100 @@ -52,18 +52,21 @@ /** the data as list of key,value pairs */ private List info; - /** the JNLPFile this information is for */ - private JNLPFile jnlpFile; /** * Create an information element object. * - * @param jnlpFile file that the information is for * @param locales the locales the information is for */ + public InformationDesc(Locale locales[]) { + this.locales = locales; + } + + /** + * 1.4 comaptibility + */ public InformationDesc(JNLPFile jnlpFile, Locale locales[]) { - this.jnlpFile = jnlpFile; - this.locales = locales; + this(locales); } /** @@ -171,6 +174,8 @@ } } + // FIXME if there's no larger icon, choose the closest smaller icon + // instead of the first if (best == null) best = icons[0]; @@ -185,13 +190,6 @@ } /** - * Returns the JNLPFile the information is for. - */ - public JNLPFile getJNLPFile() { - return jnlpFile; - } - - /** * Returns whether offline execution allowed. */ public boolean isOfflineAllowed() { diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/JNLPFile.java --- a/netx/net/sourceforge/jnlp/JNLPFile.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Wed Nov 13 11:40:40 2013 +0100 @@ -28,9 +28,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; +import java.util.jar.Attributes; import net.sourceforge.jnlp.cache.ResourceTracker; import net.sourceforge.jnlp.cache.UpdatePolicy; +import net.sourceforge.jnlp.runtime.JNLPClassLoader; import net.sourceforge.jnlp.runtime.JNLPRuntime; /** @@ -51,6 +53,13 @@ * @version $Revision: 1.21 $ */ public class JNLPFile { + + + public static final String APP_NAME = "Application-Name"; + public static final String CALLER_ALLOWABLE = "Caller-Allowable-Codebase"; + public static final String APP_LIBRARY_ALLOWABLE = "Application-Library-Allowable-Codebase"; + + // todo: save the update policy, then if file was not updated // then do not check resources for being updated. @@ -118,6 +127,10 @@ * List of acceptable properties (not-special) */ private String[] generalProperties = SecurityDesc.getJnlpRIAPermissions(); + + /** important manifests' attributes */ + private final ManifestsAttributes manifestsAttributes = new ManifestsAttributes(); + { // initialize defaults if security allows try { @@ -301,10 +314,46 @@ /** * Returns the JNLP file's best localized title. This method returns the same * value as InformationDesc.getTitle(). + * + * Since jdk7 u45, also manifest title, and mainclass are taken to consideration; + * See PluginBridge */ public String getTitle() { + String jnlpTitle = getTitleFromJnlp(); + String manifestTitle = getTitleFromManifest(); + if (jnlpTitle != null && manifestTitle != null) { + if (jnlpTitle.equals(manifestTitle)) { + return jnlpTitle; + } + return jnlpTitle+" ("+manifestTitle+")"; + } + if (jnlpTitle != null && manifestTitle == null) { + return jnlpTitle; + } + if (jnlpTitle == null && manifestTitle != null) { + return manifestTitle; + } + String mainClass = getManifestsAttributes().getMainClass(); + return mainClass; + } + + /** + * Returns the JNLP file's best localized title. This method returns the same + * value as InformationDesc.getTitle(). + */ + public String getTitleFromJnlp() { return getInformation().getTitle(); } + + public String getTitleFromManifest() { + String inManifestTitle = getManifestsAttributes().getApplicationName(); + if (inManifestTitle == null && getManifestsAttributes().isLoader()){ + System.err.println("Application title was not found in manifest. Check with application vendor"); + } + return inManifestTitle; + } + + /** * Returns the JNLP file's best localized vendor. This method returns the same @@ -820,4 +869,80 @@ public void setSignedJNLPAsMissing() { missingSignedJNLP = true; } + + public ManifestsAttributes getManifestsAttributes() { + return manifestsAttributes; + } + + + public class ManifestsAttributes{ + private JNLPClassLoader loader; + + + public void setLoader(JNLPClassLoader loader) { + this.loader = loader; + } + + public boolean isLoader() { + return loader != null; + } + + + + /** + * main class can be defined outside of manifest. + * This method is mostly for completeness + */ + public String getMainClass(){ + if (loader == null) { + if (JNLPRuntime.isDebug()) { + System.err.println("Jars not ready to provide main class"); + } + return null; + } + return loader.getMainClass(); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + */ + public String getApplicationName(){ + return getAttribute(APP_NAME); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#caller_allowable + */ + public String getCallerAllowableCodebase(){ + return getAttribute(CALLER_ALLOWABLE); + } + + /** + * http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_library + */ + public String getApplicationLibraryAllowableCodebase(){ + return getAttribute(APP_LIBRARY_ALLOWABLE); + } + + /** + * get custom attribute. + */ + public String getAttribute(String name){ + return getAttribute(new Attributes.Name(name)); + } + + /** + * get standard attribute + */ + public String getAttribute(Attributes.Name name){ + if (loader == null) { + if (JNLPRuntime.isDebug()) { + System.err.println("Jars not ready to provide attribute "+ name); + } + return null; + } + return loader.checkForAttributeInJars(Arrays.asList(getResources().getJARs()), name); + } + } + } diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/PluginBridge.java --- a/netx/net/sourceforge/jnlp/PluginBridge.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/PluginBridge.java Wed Nov 13 11:40:40 2013 +0100 @@ -179,7 +179,7 @@ // the class name should be of the form foo.bar.Baz not foo/bar/Baz String mainClass = main.replace('/', '.'); - launchType = new AppletDesc(params.getAppletTitle(), mainClass, documentBase, width, + launchType = new AppletDesc(getTitle(), mainClass, documentBase, width, height, params.getUnmodifiableMap()); if (main.endsWith(".class")) //single class file only @@ -226,7 +226,18 @@ return new DownloadOptions(usePack, useVersion); } + @Override public String getTitle() { + String inManifestTitle = super.getTitleFromManifest(); + if (inManifestTitle != null) { + return inManifestTitle; + } + //specification is recommending main class instead of html parameter + //http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name + String mainClass = getManifestsAttributes().getMainClass(); + if (mainClass != null) { + return mainClass; + } return params.getAppletTitle(); } diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/ResourcesDesc.java --- a/netx/net/sourceforge/jnlp/ResourcesDesc.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/ResourcesDesc.java Wed Nov 13 11:40:40 2013 +0100 @@ -67,23 +67,30 @@ return resources.toArray(new JREDesc[resources.size()]); } + public static JARDesc getMainJAR(JARDesc jars[] ) { + return getMainJAR(Arrays.asList(jars)); + } + + public static JARDesc getMainJAR(List jars) { + for (JARDesc jar : jars) { + if (jar.isMain()) { + return jar; + } + } + + if (jars.size() > 0) { + return jars.get(0); + } else { + return null; + } + } /** * Returns the main JAR for these resources. There first JAR * is returned if no JARs are specified as the main JAR, and if * there are no JARs defined then null is returned. */ public JARDesc getMainJAR() { - JARDesc jars[] = getJARs(); - - for (JARDesc jar : jars) { - if (jar.isMain()) - return jar; - } - - if (jars.length > 0) - return jars[0]; - else - return null; + return getMainJAR(getJARs()); } /** diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 11:40:40 2013 +0100 @@ -112,7 +112,7 @@ /** Signed JNLP File and Template */ final public static String TEMPLATE = "JNLP-INF/APPLICATION_TEMPLATE.JNLP"; final public static String APPLICATION = "JNLP-INF/APPLICATION.JNLP"; - + /** Actions to specify how cache is to be managed **/ public static enum DownloadAction { DOWNLOAD_TO_CACHE, REMOVE_FROM_CACHE, CHECK_CACHE @@ -200,7 +200,7 @@ /** Name of the application's main class */ private String mainClass = null; - + /** * Variable to track how many times this loader is in use */ @@ -244,6 +244,9 @@ this.mainClass = mainName; + //as it is harmless, we can set is as soon as possible. + file.getManifestsAttributes().setLoader(this); + AppVerifier verifier; if (file instanceof PluginBridge && !((PluginBridge)file).useJNLPHref()) { @@ -258,13 +261,15 @@ initializeExtensions(); initializeResources(); + // initialize permissions initializePermissions(); setSecurity(); - + installShutdownHooks(); + } @@ -807,7 +812,7 @@ String result = null; // Check main jar - JARDesc mainJarDesc = file.getResources().getMainJAR(); + JARDesc mainJarDesc = ResourcesDesc.getMainJAR(jars); result = getManifestAttribute(mainJarDesc.getLocation(), name); if (result != null) { @@ -824,10 +829,10 @@ // Still not found? Iterate and set if only 1 was found for (JARDesc jarDesc: jars) { - String mainClassInThisJar = getManifestAttribute(jarDesc.getLocation(), name); - if (mainClassInThisJar != null) { + String attributeInThisJar = getManifestAttribute(jarDesc.getLocation(), name); + if (attributeInThisJar != null) { if (result == null) { // first main class - result = mainClassInThisJar; + result = attributeInThisJar; } else { // There is more than one main class. Set to null and break. result = null; break; @@ -2349,6 +2354,10 @@ return new AccessControlContext(new ProtectionDomain[] { pd }); } + + public String getMainClass() { + return mainClass; + } /* * Helper class to expose protected URLClassLoader methods. @@ -2473,6 +2482,6 @@ return null; } } - - + + } diff -r acbada276d23 -r e139942101a9 netx/net/sourceforge/jnlp/security/CertWarningPane.java --- a/netx/net/sourceforge/jnlp/security/CertWarningPane.java Wed Nov 06 14:46:43 2013 +0100 +++ b/netx/net/sourceforge/jnlp/security/CertWarningPane.java Wed Nov 13 11:40:40 2013 +0100 @@ -106,13 +106,14 @@ //these strings -- we just want to fill in as many as possible. try { if ((certVerifier instanceof HttpsCertVerifier) && - (c instanceof X509Certificate)) + (c instanceof X509Certificate)) { name = SecurityUtil.getCN(((X509Certificate) c) .getSubjectX500Principal().getName()); - else if (file instanceof PluginBridge) + } else if (file instanceof PluginBridge) { name = file.getTitle(); - else + } else { name = file.getInformation().getTitle(); + } } catch (Exception e) { } @@ -125,10 +126,11 @@ } try { - if (file instanceof PluginBridge) + if (file instanceof PluginBridge) { from = file.getCodeBase().getHost(); - else + } else { from = file.getInformation().getHomepage().toString(); + } } catch (Exception e) { } @@ -145,7 +147,7 @@ topLabelText = R("SHttpsUnverified") + " " + R("Continue"); propertyName = "OptionPane.warningIcon"; iconLocation += "warning.png"; - } else + } else { switch (type) { case VERIFIED: topLabelText = R("SSigVerified"); @@ -166,7 +168,7 @@ bottomLabelText += " " + R("SWarnFullPermissionsIgnorePolicy"); break; } - + } ImageIcon icon = new ImageIcon((new sun.misc.Launcher()) .getClassLoader().getResource(iconLocation)); JLabel topLabel = new JLabel(htmlWrap(topLabelText), icon, SwingConstants.LEFT); @@ -194,8 +196,9 @@ infoPanel.add(nameLabel); infoPanel.add(publisherLabel); - if (!(certVerifier instanceof HttpsCertVerifier)) + if (!(certVerifier instanceof HttpsCertVerifier)) { infoPanel.add(fromLabel); From ptisnovs at icedtea.classpath.org Wed Nov 13 02:50:49 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 13 Nov 2013 10:50:49 +0000 Subject: /hg/gfx-test: New tests added into BitBitBltAffineIdentityTransf... Message-ID: changeset 1e74904f802e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=1e74904f802e author: Pavel Tisnovsky date: Wed Nov 13 11:54:43 2013 +0100 New tests added into BitBitBltAffineIdentityTransformOp.java: diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r dae2089a379f -r 1e74904f802e ChangeLog --- a/ChangeLog Tue Nov 12 10:17:57 2013 +0100 +++ b/ChangeLog Wed Nov 13 11:54:43 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-13 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: + New tests added into BitBitBltAffineIdentityTransformOp.java: + 2013-11-12 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r dae2089a379f -r 1e74904f802e src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Tue Nov 12 10:17:57 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Wed Nov 13 11:54:43 2013 +0100 @@ -2004,6 +2004,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntARGBPreIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntARGBPre(image, graphics2d, IdentifyTranspormationOp6); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntRGBIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntRGB(image, graphics2d, IdentifyTranspormationOp6); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp2); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Wed Nov 13 02:52:53 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 13 Nov 2013 10:52:53 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset 3ccd34807791 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=3ccd34807791 author: Pavel Tisnovsky date: Wed Nov 13 11:56:49 2013 +0100 Added new testGetResourcePositiveTest case into InvocableClassTest. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/InvocableClassTest.java | 61 ++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r 939e17e17518 -r 3ccd34807791 ChangeLog --- a/ChangeLog Tue Nov 12 10:20:21 2013 +0100 +++ b/ChangeLog Wed Nov 13 11:56:49 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-13 Pavel Tisnovsky + + * src/org/RhinoTests/InvocableClassTest.java: + Added new testGetResourcePositiveTest case into + InvocableClassTest. + 2013-11-12 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r 939e17e17518 -r 3ccd34807791 src/org/RhinoTests/InvocableClassTest.java --- a/src/org/RhinoTests/InvocableClassTest.java Tue Nov 12 10:20:21 2013 +0100 +++ b/src/org/RhinoTests/InvocableClassTest.java Wed Nov 13 11:56:49 2013 +0100 @@ -1458,6 +1458,67 @@ } /** + * Test for method javax.script.Invocable.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.invocableClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.invocableClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.Invocable */ @SuppressWarnings("cast") From helpcrypto at gmail.com Wed Nov 13 03:11:53 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Wed, 13 Nov 2013 12:11:53 +0100 Subject: [icedtea-web] depending on pkcs11 In-Reply-To: <20131105154438.GE1592@redhat.com> References: <5278C209.3020006@redhat.com> <20131105154438.GE1592@redhat.com> Message-ID: We are using sun.security.pkcs11.SunPKCS11 Whats your concern Jiri? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131113/30ece123/attachment.html From aazores at icedtea.classpath.org Wed Nov 13 06:56:00 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Wed, 13 Nov 2013 14:56:00 +0000 Subject: /hg/icedtea-web: BasicExceptionDialog centers on-screen before a... Message-ID: changeset c5e882e0b7f6 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c5e882e0b7f6 author: Andrew Azores date: Wed Nov 13 09:55:45 2013 -0500 BasicExceptionDialog centers on-screen before appearing diffstat: ChangeLog | 5 +++++ netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (31 lines): diff -r 9ed10fe70cb7 -r c5e882e0b7f6 ChangeLog --- a/ChangeLog Wed Nov 13 10:05:32 2013 +0100 +++ b/ChangeLog Wed Nov 13 09:55:45 2013 -0500 @@ -1,3 +1,8 @@ +2013-11-13 Andrew Azores + + * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: centers + on-screen before appearing + 2013-11-13 Jiri Vanek Added test-extension to silence stdout/err of itw when run from junit diff -r 9ed10fe70cb7 -r c5e882e0b7f6 netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java --- a/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Wed Nov 13 10:05:32 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Wed Nov 13 09:55:45 2013 -0500 @@ -56,7 +56,6 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; -import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.util.logging.JavaConsole; /** @@ -124,6 +123,7 @@ errorDialog.pack(); errorDialog.setResizable(true); + ScreenFinder.centerWindowsToCurrentScreen(errorDialog); errorDialog.setVisible(true); errorDialog.dispose(); } From aazores at icedtea.classpath.org Wed Nov 13 06:59:45 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Wed, 13 Nov 2013 14:59:45 +0000 Subject: /hg/release/icedtea-web-1.4: BasicExceptionDialog centers on-scr... Message-ID: changeset 2c9d20a900e6 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=2c9d20a900e6 author: Andrew Azores date: Wed Nov 13 09:59:33 2013 -0500 BasicExceptionDialog centers on-screen before appearing diffstat: ChangeLog | 5 +++++ netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java | 1 + 2 files changed, 6 insertions(+), 0 deletions(-) diffs (23 lines): diff -r e139942101a9 -r 2c9d20a900e6 ChangeLog --- a/ChangeLog Wed Nov 13 11:40:40 2013 +0100 +++ b/ChangeLog Wed Nov 13 09:59:33 2013 -0500 @@ -1,3 +1,8 @@ +2013-11-13 Andrew Azores + + * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: centers + on-screen before appearing + 2013-11-13 Jiri Vanek Added test-extension to silence stdout/err of itw when run from junit diff -r e139942101a9 -r 2c9d20a900e6 netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java --- a/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Wed Nov 13 11:40:40 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java Wed Nov 13 09:59:33 2013 -0500 @@ -124,6 +124,7 @@ errorDialog.pack(); errorDialog.setResizable(true); + ScreenFinder.centerWindowsToCurrentScreen(errorDialog); errorDialog.setVisible(true); errorDialog.dispose(); } From aazores at icedtea.classpath.org Wed Nov 13 07:12:39 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Wed, 13 Nov 2013 15:12:39 +0000 Subject: /hg/icedtea-web: JNLPClassLoader cleanup, avoid Enumerations and... Message-ID: changeset a9e1b9e256cf in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=a9e1b9e256cf author: Andrew Azores date: Wed Nov 13 10:12:28 2013 -0500 JNLPClassLoader cleanup, avoid Enumerations and use strict typing. Iteration over Enumerations refactored to instead view Enumerations as Lists using Collections library. Type parameters added to some local variables and return types. For-loops refactored into for-each-loops. diffstat: ChangeLog | 7 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 131 +++++++--------- 2 files changed, 61 insertions(+), 77 deletions(-) diffs (344 lines): diff -r c5e882e0b7f6 -r a9e1b9e256cf ChangeLog --- a/ChangeLog Wed Nov 13 09:55:45 2013 -0500 +++ b/ChangeLog Wed Nov 13 10:12:28 2013 -0500 @@ -1,3 +1,10 @@ +2013-11-13 Andrew Azores + + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: add + parameterized type information to several return types and local + variables. Refactor for-loops and Enumeration iterations into + for-each-loops. + 2013-11-13 Andrew Azores * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: centers diff -r c5e882e0b7f6 -r a9e1b9e256cf netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 09:55:45 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 10:12:28 2013 -0500 @@ -17,11 +17,6 @@ import static net.sourceforge.jnlp.runtime.Translator.R; -import java.util.concurrent.locks.ReentrantLock; - -import java.util.concurrent.locks.Lock; - -import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; @@ -59,15 +54,13 @@ import java.util.TreeSet; import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.ReentrantLock; import java.util.jar.Attributes; import java.util.jar.JarEntry; -import net.sourceforge.jnlp.util.JarFile; import java.util.jar.Manifest; -import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; import net.sourceforge.jnlp.AppletDesc; import net.sourceforge.jnlp.ApplicationDesc; -import net.sourceforge.jnlp.DownloadOptions; import net.sourceforge.jnlp.ExtensionDesc; import net.sourceforge.jnlp.JARDesc; import net.sourceforge.jnlp.JNLPFile; @@ -91,10 +84,11 @@ import net.sourceforge.jnlp.security.JNLPAppVerifier; import net.sourceforge.jnlp.security.PluginAppVerifier; import net.sourceforge.jnlp.security.SecurityDialogs; +import net.sourceforge.jnlp.security.appletextendedsecurity.UnsignedAppletTrustConfirmation; import net.sourceforge.jnlp.tools.JarCertVerifier; -import net.sourceforge.jnlp.util.FileUtils; +import net.sourceforge.jnlp.util.JarFile; +import net.sourceforge.jnlp.util.StreamUtils; import net.sourceforge.jnlp.util.logging.OutputController; -import net.sourceforge.jnlp.util.StreamUtils; import sun.misc.JarIndex; /** @@ -499,7 +493,7 @@ * Load the extensions specified in the JNLP file. */ void initializeExtensions() { - ExtensionDesc[] ext = resources.getExtensions(); + ExtensionDesc[] extDescs = resources.getExtensions(); List loaderList = new ArrayList(); @@ -518,10 +512,10 @@ } //if (ext != null) { - for (int i = 0; i < ext.length; i++) { + for (ExtensionDesc ext : extDescs) { try { String uniqueKey = this.getJNLPFile().getUniqueKey(); - JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), file.getParserSettings(), updatePolicy, mainClass); + JNLPClassLoader loader = getInstance(ext.getLocation(), uniqueKey, ext.getVersion(), file.getParserSettings(), updatePolicy, mainClass); loaderList.add(loader); } catch (Exception ex) { OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ex); @@ -539,12 +533,11 @@ resourcePermissions = new ArrayList(); JARDesc jars[] = resources.getJARs(); - for (int i = 0; i < jars.length; i++) { - Permission p = CacheUtil.getReadPermission(jars[i].getLocation(), - jars[i].getVersion()); + for (JARDesc jar : jars) { + Permission p = CacheUtil.getReadPermission(jar.getLocation(), jar.getVersion()); if (p == null) { - OutputController.getLogger().log("Unable to add permission for " + jars[i].getLocation()); + OutputController.getLogger().log("Unable to add permission for " + jar.getLocation()); } else { OutputController.getLogger().log("Permission added: " + p.toString()); } @@ -632,20 +625,18 @@ */ List initialJars = new ArrayList(); - for (int i = 0; i < jars.length; i++) { + for (JARDesc jar : jars) { - available.add(jars[i]); + available.add(jar); - if (jars[i].isEager()) - initialJars.add(jars[i]); // regardless of part + if (jar.isEager()) + initialJars.add(jar); // regardless of part - tracker.addResource(jars[i].getLocation(), - jars[i].getVersion(), - file.getDownloadOptions(), - jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE - ); + tracker.addResource(jar.getLocation(), + jar.getVersion(), file.getDownloadOptions(), + jar.isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE); } - + //If there are no eager jars, initialize the first jar if(initialJars.size() == 0) initialJars.add(jars[0]); @@ -846,27 +837,24 @@ String desiredJarEntryName = mainClass + ".class"; - for (int i = 0; i < jars.size(); i++) { + for (JARDesc jar : jars) { try { File localFile = tracker - .getCacheFile(jars.get(i).getLocation()); + .getCacheFile(jar.getLocation()); if (localFile == null) { - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "JAR " + jars.get(i).getLocation() + " not found. Continuing."); + OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "JAR " + jar.getLocation() + " not found. Continuing."); continue; // JAR not found. Keep going. } JarFile jarFile = new JarFile(localFile); - Enumeration entries = jarFile.entries(); - JarEntry je; - while (entries.hasMoreElements()) { - je = entries.nextElement(); - String jeName = je.getName().replaceAll("/", "."); + for (JarEntry entry : Collections.list(jarFile.entries())) { + String jeName = entry.getName().replaceAll("/", "."); if (jeName.equals(desiredJarEntryName)) { foundMainJar = true; - verifySignedJNLP(jars.get(i), jarFile); + verifySignedJNLP(jar, jarFile); break; } } @@ -965,11 +953,7 @@ // calling jcv.verifyJars(desc, tracker) here should have no affect. if (jcv.isFullySigned()) { - Enumeration entries = jarFile.entries(); - JarEntry je; - - while (entries.hasMoreElements()) { - je = entries.nextElement(); + for (JarEntry je : Collections.list(jarFile.entries())) { String jeName = je.getName().toUpperCase(); if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { @@ -1150,20 +1134,19 @@ } } - Enumeration e = permissions.elements(); - while (e.hasMoreElements()) { - result.add(e.nextElement()); + for (Permission perm : Collections.list(permissions.elements())) { + result.add(perm); } } // add in permission to read the cached JAR files - for (int i = 0; i < resourcePermissions.size(); i++) { - result.add(resourcePermissions.get(i)); + for (Permission perm : resourcePermissions) { + result.add(perm); } // add in the permissions that the user granted. - for (int i = 0; i < runtimePermissions.size(); i++) { - result.add(runtimePermissions.get(i)); + for (Permission perm : runtimePermissions) { + result.add(perm); } // Class from host X should be allowed to connect to host X @@ -1188,12 +1171,10 @@ * in the same part). */ protected void fillInPartJars(List jars) { - for (int i = 0; i < jars.size(); i++) { - String part = jars.get(i).getPart(); + for (JARDesc desc : jars) { + String part = desc.getPart(); - for (int a = 0; a < available.size(); a++) { - JARDesc jar = available.get(a); - + for (JARDesc jar : available) { if (part != null && part.equals(jar.getPart())) if (!jars.contains(jar)) jars.add(jar); @@ -1217,9 +1198,7 @@ // transfer the Jars waitForJars(jars); - for (int i = 0; i < jars.size(); i++) { - JARDesc jar = jars.get(i); - + for (JARDesc jar : jars) { available.remove(jar); // add jar @@ -1239,9 +1218,7 @@ // particularly when using The FileManager applet from Webmin. JarFile jarFile = new JarFile(localFile); - Enumeration e = jarFile.entries(); - while (e.hasMoreElements()) { - JarEntry je = e.nextElement(); + for (JarEntry je : Collections.list(jarFile.entries())) { // another jar in my jar? it is more likely than you think if (je.getName().endsWith(".jar")) { @@ -1382,11 +1359,11 @@ * Try to find the library path from another peer classloader. */ protected String findLibraryExt(String lib) { - for (int i = 0; i < loaders.length; i++) { + for (JNLPClassLoader loader : loaders) { String result = null; - if (loaders[i] != this) - result = loaders[i].findLibrary(lib); + if (loader != this) + result = loader.findLibrary(lib); if (result != null) return result; @@ -1401,11 +1378,11 @@ * * @param jars the jars */ - private void waitForJars(List jars) { + private void waitForJars(List jars) { URL urls[] = new URL[jars.size()]; for (int i = 0; i < jars.size(); i++) { - JARDesc jar = (JARDesc) jars.get(i); + JARDesc jar = jars.get(i); urls[i] = jar.getLocation(); } @@ -1416,14 +1393,14 @@ /** * Find the loaded class in this loader or any of its extension loaders. */ - protected Class findLoadedClassAll(String name) { - for (int i = 0; i < loaders.length; i++) { - Class result = null; + protected Class findLoadedClassAll(String name) { + for (JNLPClassLoader loader : loaders) { + Class result = null; - if (loaders[i] == this) { + if (loader == this) { result = JNLPClassLoader.super.findLoadedClass(name); } else { - result = loaders[i].findLoadedClassAll(name); + result = loader.findLoadedClassAll(name); } if (result != null) @@ -1623,10 +1600,10 @@ * Find the class in this loader or any of its extension loaders. */ @Override - protected Class findClass(String name) throws ClassNotFoundException { - for (int i = 0; i < loaders.length; i++) { + protected Class findClass(String name) throws ClassNotFoundException { + for (JNLPClassLoader loader : loaders) { try { - if (loaders[i] == this) { + if (loader == this) { final String fName = name; return AccessController.doPrivileged( new PrivilegedExceptionAction>() { @@ -1635,7 +1612,7 @@ } }, getAccessControlContextForClassLoading()); } else { - return loaders[i].findClass(name); + return loader.findClass(name); } } catch (ClassNotFoundException ex) { } catch (ClassFormatError cfe) { @@ -1659,7 +1636,7 @@ * classloader and its extension classloaders until the resource * is found. */ - private Class loadClassExt(String name) throws ClassNotFoundException { + private Class loadClassExt(String name) throws ClassNotFoundException { // make recursive addAvailable(); @@ -1751,12 +1728,12 @@ List resources = new ArrayList(); Enumeration e = null; - for (int i = 0; i < loaders.length; i++) { + for (JNLPClassLoader loader : loaders) { // TODO check if this will blow up or not // if loaders[1].getResource() is called, wont it call getResource() on // the original caller? infinite recursion? - if (loaders[i] == this) { + if (loader == this) { final String fName = name; try { e = AccessController.doPrivileged( @@ -1768,7 +1745,7 @@ } catch (PrivilegedActionException pae) { } } else { - e = loaders[i].findResources(name); + e = loader.findResources(name); } final Enumeration fURLEnum = e; From jvanek at redhat.com Wed Nov 13 09:32:43 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 13 Nov 2013 18:32:43 +0100 Subject: /hg/icedtea-web: 2 new changesets In-Reply-To: References: Message-ID: <5283B7BB.1090004@redhat.com> On 11/13/2013 10:05 AM, jvanek at icedtea.classpath.org wrote: > changeset fb182f92152b in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fb182f92152b > author: Jiri Vanek > date: Wed Nov 13 09:48:41 2013 +0100 > > Enabled access to manifests' attributes from JNLPFile class, implemented http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name > > > changeset 9ed10fe70cb7 in /hg/icedtea-web > details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9ed10fe70cb7 > author: Jiri Vanek > date: Wed Nov 13 10:05:32 2013 +0100 > > Added test-extension to silence stdout/err of itw when run from junit > shame on me, and thanx to Andrew A to hitting it. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixAttributesPAtch.patch Type: text/x-patch Size: 524 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131113/49108a84/fixAttributesPAtch.patch From aazores at redhat.com Wed Nov 13 10:27:26 2013 From: aazores at redhat.com (Andrew Azores) Date: Wed, 13 Nov 2013 13:27:26 -0500 Subject: /hg/icedtea-web: 2 new changesets In-Reply-To: <5283B7BB.1090004@redhat.com> References: <5283B7BB.1090004@redhat.com> Message-ID: <5283C48E.6010404@redhat.com> On 11/13/2013 12:32 PM, Jiri Vanek wrote: > On 11/13/2013 10:05 AM, jvanek at icedtea.classpath.org wrote: >> changeset fb182f92152b in /hg/icedtea-web >> details: >> http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fb182f92152b >> author: Jiri Vanek >> date: Wed Nov 13 09:48:41 2013 +0100 >> >> Enabled access to manifests' attributes from JNLPFile class, >> implemented >> http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#app_name >> >> >> changeset 9ed10fe70cb7 in /hg/icedtea-web >> details: >> http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9ed10fe70cb7 >> author: Jiri Vanek >> date: Wed Nov 13 10:05:32 2013 +0100 >> >> Added test-extension to silence stdout/err of itw when run from >> junit >> > > shame on me, and thanx to Andrew A to hitting it. > Looks good to me and the site where I encountered the bug now works fine. Thanks, -- Andrew A From aazores at icedtea.classpath.org Wed Nov 13 10:37:20 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Wed, 13 Nov 2013 18:37:20 +0000 Subject: /hg/release/icedtea-web-1.4: JNLPClassLoader cleanup, avoid Enum... Message-ID: changeset 9bf2d89511a4 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=9bf2d89511a4 author: Andrew Azores date: Wed Nov 13 11:54:42 2013 -0500 JNLPClassLoader cleanup, avoid Enumerations and use strict typing. Iteration over Enumerations refactored to instead view Enumerations as Lists using Collections library. Type parameters added to some local variables and return types. For-loops refactored into for-each-loops. diffstat: ChangeLog | 7 + netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 122 +++++++--------- 2 files changed, 58 insertions(+), 71 deletions(-) diffs (310 lines): diff -r 2c9d20a900e6 -r 9bf2d89511a4 ChangeLog --- a/ChangeLog Wed Nov 13 09:59:33 2013 -0500 +++ b/ChangeLog Wed Nov 13 11:54:42 2013 -0500 @@ -1,3 +1,10 @@ +2013-11-13 Andrew Azores + + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: add + parameterized type information to several return types and local + variables. Refactor for-loops and Enumeration iterations into + for-each-loops. + 2013-11-13 Andrew Azores * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: centers diff -r 2c9d20a900e6 -r 9bf2d89511a4 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 09:59:33 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 11:54:42 2013 -0500 @@ -512,7 +512,7 @@ * Load the extensions specified in the JNLP file. */ void initializeExtensions() { - ExtensionDesc[] ext = resources.getExtensions(); + ExtensionDesc[] extDescs = resources.getExtensions(); List loaderList = new ArrayList(); @@ -530,17 +530,15 @@ } } - //if (ext != null) { - for (int i = 0; i < ext.length; i++) { + for (ExtensionDesc ext : extDescs) { try { String uniqueKey = this.getJNLPFile().getUniqueKey(); - JNLPClassLoader loader = getInstance(ext[i].getLocation(), uniqueKey, ext[i].getVersion(), updatePolicy, mainClass); + JNLPClassLoader loader = getInstance(ext.getLocation(), uniqueKey, ext.getVersion(), updatePolicy, mainClass); loaderList.add(loader); } catch (Exception ex) { ex.printStackTrace(); } } - //} loaders = loaderList.toArray(new JNLPClassLoader[loaderList.size()]); } @@ -552,13 +550,13 @@ resourcePermissions = new ArrayList(); JARDesc jars[] = resources.getJARs(); - for (int i = 0; i < jars.length; i++) { - Permission p = CacheUtil.getReadPermission(jars[i].getLocation(), - jars[i].getVersion()); + for (JARDesc jar : jars) { + Permission p = CacheUtil.getReadPermission(jar.getLocation(), + jar.getVersion()); if (JNLPRuntime.isDebug()) { if (p == null) - System.out.println("Unable to add permission for " + jars[i].getLocation()); + System.out.println("Unable to add permission for " + jar.getLocation()); else System.out.println("Permission added: " + p.toString()); } @@ -646,20 +644,18 @@ */ List initialJars = new ArrayList(); - for (int i = 0; i < jars.length; i++) { + for (JARDesc jar : jars) { - available.add(jars[i]); + available.add(jar); - if (jars[i].isEager()) - initialJars.add(jars[i]); // regardless of part + if (jar.isEager()) + initialJars.add(jar); // regardless of part - tracker.addResource(jars[i].getLocation(), - jars[i].getVersion(), - file.getDownloadOptions(), - jars[i].isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE - ); + tracker.addResource(jar.getLocation(), + jar.getVersion(), file.getDownloadOptions(), + jar.isCacheable() ? JNLPRuntime.getDefaultUpdatePolicy() : UpdatePolicy.FORCE); } - + //If there are no eager jars, initialize the first jar if(initialJars.size() == 0) initialJars.add(jars[0]); @@ -869,27 +865,23 @@ String desiredJarEntryName = mainClass + ".class"; - for (int i = 0; i < jars.size(); i++) { + for (JARDesc jar : jars) { try { File localFile = tracker - .getCacheFile(jars.get(i).getLocation()); + .getCacheFile(jar.getLocation()); if (localFile == null) { - System.err.println("JAR " + jars.get(i).getLocation() + " not found. Continuing."); + System.err.println("JAR " + jar.getLocation() + " not found. Continuing."); continue; // JAR not found. Keep going. } JarFile jarFile = new JarFile(localFile); - Enumeration entries = jarFile.entries(); - JarEntry je; - - while (entries.hasMoreElements()) { - je = entries.nextElement(); - String jeName = je.getName().replaceAll("/", "."); + for (JarEntry entry : Collections.list(jarFile.entries())) { + String jeName = entry.getName().replaceAll("/", "."); if (jeName.equals(desiredJarEntryName)) { foundMainJar = true; - verifySignedJNLP(jars.get(i), jarFile); + verifySignedJNLP(jar, jarFile); break; } } @@ -988,11 +980,7 @@ // calling jcv.verifyJars(desc, tracker) here should have no affect. if (jcv.isFullySigned()) { - Enumeration entries = jarFile.entries(); - JarEntry je; - - while (entries.hasMoreElements()) { - je = entries.nextElement(); + for (JarEntry je : Collections.list(jarFile.entries())) { String jeName = je.getName().toUpperCase(); if (jeName.equals(TEMPLATE) || jeName.equals(APPLICATION)) { @@ -1185,20 +1173,19 @@ } } - Enumeration e = permissions.elements(); - while (e.hasMoreElements()) { - result.add(e.nextElement()); + for (Permission perm : Collections.list(permissions.elements())) { + result.add(perm); } } // add in permission to read the cached JAR files - for (int i = 0; i < resourcePermissions.size(); i++) { - result.add(resourcePermissions.get(i)); + for (Permission perm : resourcePermissions) { + result.add(perm); } // add in the permissions that the user granted. - for (int i = 0; i < runtimePermissions.size(); i++) { - result.add(runtimePermissions.get(i)); + for (Permission perm : runtimePermissions) { + result.add(perm); } // Class from host X should be allowed to connect to host X @@ -1225,12 +1212,9 @@ * in the same part). */ protected void fillInPartJars(List jars) { - for (int i = 0; i < jars.size(); i++) { - String part = jars.get(i).getPart(); - - for (int a = 0; a < available.size(); a++) { - JARDesc jar = available.get(a); - + for (JARDesc desc : jars) { + String part = desc.getPart(); + for (JARDesc jar : available) { if (part != null && part.equals(jar.getPart())) if (!jars.contains(jar)) jars.add(jar); @@ -1254,9 +1238,7 @@ // transfer the Jars waitForJars(jars); - for (int i = 0; i < jars.size(); i++) { - JARDesc jar = jars.get(i); - + for (JARDesc jar : jars) { available.remove(jar); // add jar @@ -1276,9 +1258,7 @@ // particularly when using The FileManager applet from Webmin. JarFile jarFile = new JarFile(localFile); - Enumeration e = jarFile.entries(); - while (e.hasMoreElements()) { - JarEntry je = e.nextElement(); + for (JarEntry je : Collections.list(jarFile.entries())) { // another jar in my jar? it is more likely than you think if (je.getName().endsWith(".jar")) { @@ -1523,11 +1503,11 @@ * Try to find the library path from another peer classloader. */ protected String findLibraryExt(String lib) { - for (int i = 0; i < loaders.length; i++) { + for (JNLPClassLoader loader : loaders) { String result = null; - if (loaders[i] != this) - result = loaders[i].findLibrary(lib); + if (loader != this) + result = loader.findLibrary(lib); if (result != null) return result; @@ -1542,11 +1522,11 @@ * * @param jars the jars */ - private void waitForJars(List jars) { + private void waitForJars(List jars) { URL urls[] = new URL[jars.size()]; for (int i = 0; i < jars.size(); i++) { - JARDesc jar = (JARDesc) jars.get(i); + JARDesc jar = jars.get(i); urls[i] = jar.getLocation(); } @@ -1557,14 +1537,14 @@ /** * Find the loaded class in this loader or any of its extension loaders. */ - protected Class findLoadedClassAll(String name) { - for (int i = 0; i < loaders.length; i++) { - Class result = null; + protected Class findLoadedClassAll(String name) { + for (JNLPClassLoader loader : loaders) { + Class result = null; - if (loaders[i] == this) { + if (loader == this) { result = JNLPClassLoader.super.findLoadedClass(name); } else { - result = loaders[i].findLoadedClassAll(name); + result = loader.findLoadedClassAll(name); } if (result != null) @@ -1768,10 +1748,10 @@ * Find the class in this loader or any of its extension loaders. */ @Override - protected Class findClass(String name) throws ClassNotFoundException { - for (int i = 0; i < loaders.length; i++) { + protected Class findClass(String name) throws ClassNotFoundException { + for (JNLPClassLoader loader : loaders) { try { - if (loaders[i] == this) { + if (loader == this) { final String fName = name; return AccessController.doPrivileged( new PrivilegedExceptionAction>() { @@ -1780,7 +1760,7 @@ } }, getAccessControlContextForClassLoading()); } else { - return loaders[i].findClass(name); + return loader.findClass(name); } } catch (ClassNotFoundException ex) { } catch (ClassFormatError cfe) { @@ -1804,7 +1784,7 @@ * classloader and its extension classloaders until the resource * is found. */ - private Class loadClassExt(String name) throws ClassNotFoundException { + private Class loadClassExt(String name) throws ClassNotFoundException { // make recursive addAvailable(); @@ -1898,12 +1878,12 @@ List resources = new ArrayList(); Enumeration e = null; - for (int i = 0; i < loaders.length; i++) { + for (JNLPClassLoader loader : loaders) { // TODO check if this will blow up or not // if loaders[1].getResource() is called, wont it call getResource() on // the original caller? infinite recursion? - if (loaders[i] == this) { + if (loader == this) { final String fName = name; try { e = AccessController.doPrivileged( @@ -1915,7 +1895,7 @@ } catch (PrivilegedActionException pae) { } } else { - e = loaders[i].findResources(name); + e = loader.findResources(name); } final Enumeration fURLEnum = e; From bugzilla-daemon at icedtea.classpath.org Wed Nov 13 18:11:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 14 Nov 2013 02:11:43 +0000 Subject: [Bug 1601] New: Eclipse Kepler Crashing on Manjaro Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1601 Bug ID: 1601 Summary: Eclipse Kepler Crashing on Manjaro 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: jesse.m.johns at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 978 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=978&action=edit Error log printed during crash. When I am debugging and move the mouse over a variable, just about to click it, Eclipse crashes. This is repeatable and occurs 1 out of 5 times I hover my mouse over a variable. Other possible duplicates appear to be somewhat related, but problematic frames are different. # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f9d8d3d777a, pid=2031, tid=140315339986688 # # JRE version: OpenJDK Runtime Environment (7.0_45-b31) (build 1.7.0_45-b31) # Java VM: OpenJDK 64-Bit Server VM (24.45-b08 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libgtk-x11-2.0.so.0+0x21f77a] gtk_tree_view_get_background_area+0x8a # # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ul imit -c unlimited" before starting Java again # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131114/813c6411/attachment.html From ptisnovs at icedtea.classpath.org Thu Nov 14 00:17:19 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 14 Nov 2013 08:17:19 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltAffineQuadrantRotat... Message-ID: changeset 14bc0b9ae28b in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=14bc0b9ae28b author: Pavel Tisnovsky date: Thu Nov 14 09:21:11 2013 +0100 Ten new tests added into BitBltAffineQuadrantRotateTransformOp.java diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r 1e74904f802e -r 14bc0b9ae28b ChangeLog --- a/ChangeLog Wed Nov 13 11:54:43 2013 +0100 +++ b/ChangeLog Thu Nov 14 09:21:11 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-14 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: + Ten new tests added into BitBltAffineQuadrantRotateTransformOp.java + 2013-11-13 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: diff -r 1e74904f802e -r 14bc0b9ae28b src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Wed Nov 13 11:54:43 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Thu Nov 14 09:21:11 2013 +0100 @@ -1117,6 +1117,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation0Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[0]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation1Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[1]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation2Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[2]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation3Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[3]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation4Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[4]); + } + + /** + Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBRotateTransformation5Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, RotateTransformationNearest1Op[5]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation0Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[0]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation1Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[1]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation2Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[2]); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation3Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[3]); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Thu Nov 14 00:19:29 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 14 Nov 2013 08:19:29 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into... Message-ID: changeset a48dac0dea0c in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=a48dac0dea0c author: Pavel Tisnovsky date: Thu Nov 14 09:23:23 2013 +0100 Added new testGetResourcePositiveTest case into ScriptContextClassTest. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/ScriptContextClassTest.java | 61 ++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r 3ccd34807791 -r a48dac0dea0c ChangeLog --- a/ChangeLog Wed Nov 13 11:56:49 2013 +0100 +++ b/ChangeLog Thu Nov 14 09:23:23 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-14 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptContextClassTest.java: + Added new testGetResourcePositiveTest case into + ScriptContextClassTest. + 2013-11-13 Pavel Tisnovsky * src/org/RhinoTests/InvocableClassTest.java: diff -r 3ccd34807791 -r a48dac0dea0c src/org/RhinoTests/ScriptContextClassTest.java --- a/src/org/RhinoTests/ScriptContextClassTest.java Wed Nov 13 11:56:49 2013 +0100 +++ b/src/org/RhinoTests/ScriptContextClassTest.java Thu Nov 14 09:23:23 2013 +0100 @@ -1592,6 +1592,67 @@ } /** + * Test for method javax.script.ScriptContext.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.scriptContextClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.scriptContextClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptContext */ @SuppressWarnings("cast") From jvanek at icedtea.classpath.org Thu Nov 14 01:50:21 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 14 Nov 2013 09:50:21 +0000 Subject: /hg/release/icedtea-web-1.4: Fixed NPE in getting the attribute Message-ID: changeset 719431dbd56c in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=719431dbd56c author: Jiri Vanek date: Thu Nov 14 10:56:29 2013 +0100 Fixed NPE in getting the attribute diffstat: netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diffs (14 lines): diff -r 9bf2d89511a4 -r 719431dbd56c netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 11:54:42 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Nov 14 10:56:29 2013 +0100 @@ -805,6 +805,10 @@ */ public String checkForAttributeInJars(List jars, Attributes.Name name) { + if (jars.isEmpty()) { + return null; + } + String result = null; // Check main jar From jvanek at icedtea.classpath.org Thu Nov 14 01:51:09 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 14 Nov 2013 09:51:09 +0000 Subject: /hg/icedtea-web: Fixed NPE in getting the attribute Message-ID: changeset 0ceee01764a1 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0ceee01764a1 author: Jiri Vanek date: Thu Nov 14 10:57:24 2013 +0100 Fixed NPE in getting the attribute diffstat: netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diffs (14 lines): diff -r a9e1b9e256cf -r 0ceee01764a1 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 13 10:12:28 2013 -0500 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Nov 14 10:57:24 2013 +0100 @@ -779,6 +779,10 @@ */ public String checkForAttributeInJars(List jars, Attributes.Name name) { + if (jars.isEmpty()) { + return null; + } + String result = null; // Check main jar From aazores at icedtea.classpath.org Thu Nov 14 08:23:04 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Thu, 14 Nov 2013 16:23:04 +0000 Subject: /hg/icedtea-web: Added "dialogs center on-screen before appearin... Message-ID: changeset db2624a28263 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=db2624a28263 author: Andrew Azores date: Thu Nov 14 11:22:14 2013 -0500 Added "dialogs center on-screen before appearing" to NEWS diffstat: NEWS | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (11 lines): diff -r 0ceee01764a1 -r db2624a28263 NEWS --- a/NEWS Thu Nov 14 10:57:24 2013 +0100 +++ b/NEWS Thu Nov 14 11:22:14 2013 -0500 @@ -33,6 +33,7 @@ - PR1474: Can't get javaws to use SOCKS proxy * Security Updates - CVE-2012-4540, RH869040: Heap-based buffer overflow after triggering event attached to applet +* Dialogs center on screen before becoming visible New in release 1.4 (2013-XX-XX): * Added cs localization From aazores at icedtea.classpath.org Thu Nov 14 10:16:17 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Thu, 14 Nov 2013 18:16:17 +0000 Subject: /hg/icedtea-web: Move "dialog center" line in NEWS to be consist... Message-ID: changeset 956b6bd1b23e in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=956b6bd1b23e author: Andrew Azores date: Thu Nov 14 13:15:46 2013 -0500 Move "dialog center" line in NEWS to be consistent with NEWS in 1.4 diffstat: NEWS | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (19 lines): diff -r db2624a28263 -r 956b6bd1b23e NEWS --- a/NEWS Thu Nov 14 11:22:14 2013 -0500 +++ b/NEWS Thu Nov 14 13:15:46 2013 -0500 @@ -13,6 +13,7 @@ * JDK older then 1.5 no longer supported * IcedTea-Web is now following XDG .config and .cache specification(RH947647) * A console for debugging plugin and javaws +* Dialogs center on screen before becoming visible * Support for u45 new manifest attributes (Application-Name) * Cache Viewer - Can be closed by ESC key @@ -33,7 +34,6 @@ - PR1474: Can't get javaws to use SOCKS proxy * Security Updates - CVE-2012-4540, RH869040: Heap-based buffer overflow after triggering event attached to applet -* Dialogs center on screen before becoming visible New in release 1.4 (2013-XX-XX): * Added cs localization From aazores at redhat.com Thu Nov 14 10:32:42 2013 From: aazores at redhat.com (Andrew Azores) Date: Thu, 14 Nov 2013 13:32:42 -0500 Subject: [rfc][icedtea-web] Reproducer touch-up for JNLPClassLoaderDeadlock Message-ID: <5285174A.5020108@redhat.com> The JNLPClassLoaderDeadlock reproducer was occasionally failing, IMO wrongly. The second applet's output would not appear in the stdout and so the test would fail, even though the first applet could be observed to have run, and so a deadlock did not seem to have taken place. I think what was happening was that the first applet ran, produced the "magical closing string", and the browser would begin to close before the second applet ever run. This patch fixes the test to accommodate for this, making the test more reliable (at least on my system). Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: jnlpclassloaderdeadlock-touchup.patch Type: text/x-patch Size: 1584 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131114/555bc413/jnlpclassloaderdeadlock-touchup.patch From ptisnovs at icedtea.classpath.org Fri Nov 15 01:16:22 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 15 Nov 2013 09:16:22 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltUsingBgColorAlpha t... Message-ID: changeset 7a673557b373 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=7a673557b373 author: Pavel Tisnovsky date: Fri Nov 15 10:20:16 2013 +0100 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 14bc0b9ae28b -r 7a673557b373 ChangeLog --- a/ChangeLog Thu Nov 14 09:21:11 2013 +0100 +++ b/ChangeLog Fri Nov 15 10:20:16 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-15 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: + Ten new tests added into BitBltUsingBgColorAlpha test suite. + 2013-11-14 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: diff -r 14bc0b9ae28b -r 7a673557b373 src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Thu Nov 14 09:21:11 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Fri Nov 15 10:20:16 2013 +0100 @@ -1333,6 +1333,156 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundCyanAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.cyan, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundCyanAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.cyan, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundCyanAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.cyan, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundCyanAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.cyan, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundCyanAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.cyan, 1.00f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundMagentaAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.magenta, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundMagentaAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.magenta, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundMagentaAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.magenta, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundMagentaAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.magenta, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType4ByteABGRbackgroundMagentaAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType4ByteABGR(image, graphics2d, Color.magenta, 1.00f); + } + + /** * Test basic BitBlt operation for empty buffered image with type TYPE_4BYTE_ABGR_PRE. * Background color is set to Color.black. * From ptisnovs at icedtea.classpath.org Fri Nov 15 01:18:59 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 15 Nov 2013 09:18:59 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset 53cc1d7cfe80 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=53cc1d7cfe80 author: Pavel Tisnovsky date: Fri Nov 15 10:22:53 2013 +0100 Added new testGetResourcePositiveTest case into ScriptEngineClassTest. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/ScriptEngineClassTest.java | 61 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r a48dac0dea0c -r 53cc1d7cfe80 ChangeLog --- a/ChangeLog Thu Nov 14 09:23:23 2013 +0100 +++ b/ChangeLog Fri Nov 15 10:22:53 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-15 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineClassTest.java: + Added new testGetResourcePositiveTest case into + ScriptEngineClassTest. + 2013-11-14 Pavel Tisnovsky * src/org/RhinoTests/ScriptContextClassTest.java: diff -r a48dac0dea0c -r 53cc1d7cfe80 src/org/RhinoTests/ScriptEngineClassTest.java --- a/src/org/RhinoTests/ScriptEngineClassTest.java Thu Nov 14 09:23:23 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineClassTest.java Fri Nov 15 10:22:53 2013 +0100 @@ -1638,6 +1638,67 @@ } /** + * Test for method javax.script.ScriptEngine.getClass().getResourcePositiveTest() + */ + protected void testGetResourcePositiveTest() { + Object resource; + resource = this.scriptEngineClass.getResource("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/BindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/CompilableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/Constants.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/Constants.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/InvocableTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + resource = this.scriptEngineClass.getResource("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(resource, "getResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptEngine */ @SuppressWarnings("cast") From bugzilla-daemon at icedtea.classpath.org Fri Nov 15 07:33:34 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 15 Nov 2013 15:33:34 +0000 Subject: [Bug 1602] New: java/util/concurrent/BlockingQueue/LastElement.java stalls due to segfaults Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1602 Bug ID: 1602 Summary: java/util/concurrent/BlockingQueue/LastElement.java stalls due to segfaults Classification: Unclassified Product: IcedTea Version: 2.4.3 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: geissert at debian.org CC: unassigned at icedtea.classpath.org Running the jtreg test suite with TEST_SUITES="hotspot langtools jdk" with icedtea 2.4.3 (without additional vms) on a Debian wheezy system (gcc et al 4.7) the LastElement.java test stalls with no special output in the test harness. A closer look at the still-running processes shows that at least one of the threads is segfaulting in os::write_memory_serialize_page. Inspecting the process it shows that it is attempting to write to an unrelated page - about 3027 bytes past the beginning of the page that follows the ones that it should be writing to. Following the suggested workaround from https://bugs.openjdk.java.net/browse/JDK-8025568 I modified the CPU affinity and after a moment the test passed. -- 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/20131115/4496b406/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Nov 15 07:54:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 15 Nov 2013 15:54:26 +0000 Subject: [Bug 1603] New: Dell Console Redirection Client fails to log in Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1603 Bug ID: 1603 Summary: Dell Console Redirection Client fails to log in Classification: Unclassified Product: IcedTea-Web Version: 1.4 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: aazores at redhat.com CC: unassigned at icedtea.classpath.org KVM viewer JNLP application fails to log in with 1.4+, but works with 1.3. Have not yet been able to determine any meaningful differences in debugging output between the two versions. -- 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/20131115/a310987a/attachment-0001.html From andrew at icedtea.classpath.org Fri Nov 15 23:14:01 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Sat, 16 Nov 2013 07:14:01 +0000 Subject: /hg/release/icedtea6-1.12: 2 new changesets Message-ID: changeset eedd8076f56b in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=eedd8076f56b author: Andrew John Hughes date: Fri Nov 15 20:57:36 2013 +0000 Add backport for HotSpot suggested by Xerxes. 2013-03-26 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new backport. * patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch: Backport suggested by Xerxes for hs20. changeset 09d85ab75305 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=09d85ab75305 author: Andrew John Hughes date: Sat Nov 16 07:13:34 2013 +0000 S7022999: Can't build with FORCE_TIERED=0. 2013-04-26 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new backport. * NEWS: Updated. * patches/hotspot/original/7022999-fastlocking_compiler1_only.patch: Backport fix to make Zero build work following 6840152. diffstat: ChangeLog | 16 +++++ Makefile.am | 4 +- NEWS | 4 + patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch | 32 ++++++++++ patches/openjdk/7022999-fastlocking_compiler1_only.patch | 25 +++++++ 5 files changed, 80 insertions(+), 1 deletions(-) diffs (116 lines): diff -r e319de2968f3 -r 09d85ab75305 ChangeLog --- a/ChangeLog Thu Aug 29 17:42:01 2013 +0100 +++ b/ChangeLog Sat Nov 16 07:13:34 2013 +0000 @@ -1,3 +1,19 @@ +2013-04-26 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new backport. + * NEWS: Updated. + * patches/hotspot/original/7022999-fastlocking_compiler1_only.patch: + Backport fix to make Zero build work following + 6840152. + +2013-03-26 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new backport. + * patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch: + Backport suggested by Xerxes for hs20. + 2013-08-29 Andrew John Hughes * Makefile.am: diff -r e319de2968f3 -r 09d85ab75305 Makefile.am --- a/Makefile.am Thu Aug 29 17:42:01 2013 +0100 +++ b/Makefile.am Sat Nov 16 07:13:34 2013 +0000 @@ -710,7 +710,9 @@ patches/openjdk/6636370-appcontext_simplification.patch \ patches/openjdk/6636331-appcontext_concurrentmodificationexception.patch \ patches/openjdk/8014469-tzdata2013c.patch \ - patches/openjdk/8020054-tzdata2013d.patch + patches/openjdk/8020054-tzdata2013d.patch \ + patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch \ + patches/openjdk/7022999-fastlocking_compiler1_only.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r e319de2968f3 -r 09d85ab75305 NEWS --- a/NEWS Thu Aug 29 17:42:01 2013 +0100 +++ b/NEWS Sat Nov 16 07:13:34 2013 +0000 @@ -13,6 +13,10 @@ New in release 1.12.7 (2013-XX-XX): +* Backports + - S6840152: JVM crashes when heavyweight monitors are used + - S7022999: Can't build with FORCE_TIERED=0 + New in release 1.12.6 (2013-07-10): * Security fixes diff -r e319de2968f3 -r 09d85ab75305 patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch Sat Nov 16 07:13:34 2013 +0000 @@ -0,0 +1,32 @@ +# HG changeset patch +# User coleenp +# Date 1297874084 18000 +# Node ID c08677f982895c7e89d370768ec261c00b0d6e2d +# Parent 5415131bc5ab69d30d14636e414d1fa400800408 +6840152: JVM crashes when heavyweight monitors are used +Summary: Turn off biased locking if !UseFastLocking or UseHeavyMonitors options are requested. +Reviewed-by: phh, never, dcubed, dholmes + +diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp +@@ -3103,6 +3103,19 @@ + // Set flags if Aggressive optimization flags (-XX:+AggressiveOpts) enabled. + set_aggressive_opts_flags(); + ++ // Turn off biased locking for locking debug mode flags, ++ // which are subtlely different from each other but neither works with ++ // biased locking. ++ if (!UseFastLocking || UseHeavyMonitors) { ++ if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) { ++ // flag set to true on command line; warn the user that they ++ // can't enable biased locking here ++ warning("Biased Locking is not supported with locking debug flags" ++ "; ignoring UseBiasedLocking flag." ); ++ } ++ UseBiasedLocking = false; ++ } ++ + #ifdef CC_INTERP + // Clear flags not supported by the C++ interpreter + FLAG_SET_DEFAULT(ProfileInterpreter, false); diff -r e319de2968f3 -r 09d85ab75305 patches/openjdk/7022999-fastlocking_compiler1_only.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7022999-fastlocking_compiler1_only.patch Sat Nov 16 07:13:34 2013 +0000 @@ -0,0 +1,25 @@ +# HG changeset patch +# User coleenp +# Date 1299199896 18000 +# Node ID 9f44e9aad2d9528c6a7c59f29be7974685d6b629 +# Parent a3c0ec0428a2564a70a33a0348553e9d4c994c63 +7022999: Can't build with FORCE_TIERED=0 +Summary: Put UseFastLocking test under #ifdef COMPILER1 +Reviewed-by: kvn, phh, never, dcubed + +diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp +@@ -3114,7 +3114,11 @@ + // Turn off biased locking for locking debug mode flags, + // which are subtlely different from each other but neither works with + // biased locking. +- if (!UseFastLocking || UseHeavyMonitors) { ++ if (UseHeavyMonitors ++#ifdef COMPILER1 ++ || !UseFastLocking ++#endif // COMPILER1 ++ ) { + if (!FLAG_IS_DEFAULT(UseBiasedLocking) && UseBiasedLocking) { + // flag set to true on command line; warn the user that they + // can't enable biased locking here From bugzilla-daemon at icedtea.classpath.org Sun Nov 17 06:43:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 17 Nov 2013 14:43:16 +0000 Subject: [Bug 1604] New: No unit shown for disk space setting Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1604 Bug ID: 1604 Summary: No unit shown for disk space setting Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: x86_64 OS: Linux Status: NEW Severity: minor Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: torquil at gmail.com CC: unassigned at icedtea.classpath.org In itweb-settings, in the cache section, no unit of measurement is shown where one adjusts the amount of disk space that is to be used by the cache. So I don't know if it means e.g. kB or MB. -- 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/20131117/fb65156a/attachment.html From ptisnovs at icedtea.classpath.org Mon Nov 18 00:25:22 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 18 Nov 2013 08:25:22 +0000 Subject: /hg/gfx-test: Six new tests added into CAGOperationsOnCircleAndR... Message-ID: changeset 6e731294160c in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=6e731294160c author: Pavel Tisnovsky date: Mon Nov 18 09:28:28 2013 +0100 Six new tests added into CAGOperationsOnCircleAndRectangle test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java | 138 ++++++++++ 2 files changed, 143 insertions(+), 0 deletions(-) diffs (160 lines): diff -r 7a673557b373 -r 6e731294160c ChangeLog --- a/ChangeLog Fri Nov 15 10:20:16 2013 +0100 +++ b/ChangeLog Mon Nov 18 09:28:28 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-18 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java: + Six new tests added into CAGOperationsOnCircleAndRectangle test suite. + 2013-11-15 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: diff -r 7a673557b373 -r 6e731294160c src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java Fri Nov 15 10:20:16 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java Mon Nov 18 09:28:28 2013 +0100 @@ -2314,6 +2314,144 @@ } /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using union operator. The shape is + * rendered using color fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleUnionColorPaint(TestImage image, Graphics2D graphics2d) + { + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingUnionOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using subtract operator. The shape is + * rendered using color fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleSubtractColorPaint(TestImage image, Graphics2D graphics2d) + { + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create area using subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingSubtractOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using inverse subtract operator. + * The shape is rendered using color fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleInverseSubtractColorPaint(TestImage image, Graphics2D graphics2d) + { + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create area using inverse subtract operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingInverseSubtractOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using intersect operator. + * The shape is rendered using color fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleIntersectColorPaint(TestImage image, Graphics2D graphics2d) + { + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create area using intersect operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingIntersectOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using XOR operator. + * The shape is rendered using color fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleXorColorPaint(TestImage image, Graphics2D graphics2d) + { + // set fill color + CommonRenderingStyles.setFillColor(graphics2d); + // create area using Xor operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingXorOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from a circle inside a rectangle using union operator. The shape is + * rendered using radial gradient fill. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testOverlappingCircleAndRectangleUnionRadialGradientPaint(TestImage image, Graphics2D graphics2d) + { + // set radial gradient fill + CommonRenderingStyles.setRadialGradientFill(image, graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromOverlappingCircleAndRectangleUsingUnionOperator(image); + // fill the area + graphics2d.fill(area); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Mon Nov 18 00:28:31 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 18 Nov 2013 08:28:31 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest case into Message-ID: changeset d4ce8969d3f8 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=d4ce8969d3f8 author: Pavel Tisnovsky date: Mon Nov 18 09:32:27 2013 +0100 Added new testGetResourceNPETest case into ScriptEngineManagerClassTest. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/ScriptEngineManagerClassTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diffs (36 lines): diff -r 53cc1d7cfe80 -r d4ce8969d3f8 ChangeLog --- a/ChangeLog Fri Nov 15 10:22:53 2013 +0100 +++ b/ChangeLog Mon Nov 18 09:32:27 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-18 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Added new testGetResourceNPETest case into + ScriptEngineManagerClassTest. + 2013-11-15 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineClassTest.java: diff -r 53cc1d7cfe80 -r d4ce8969d3f8 src/org/RhinoTests/ScriptEngineManagerClassTest.java --- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Fri Nov 15 10:22:53 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Mon Nov 18 09:32:27 2013 +0100 @@ -1698,6 +1698,19 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().getResourceNPETest() + */ + protected void testGetResourceNPETest() { + try { + Object resource = this.scriptEngineManagerClass.getResource(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptEngineManager */ @SuppressWarnings("cast") From bugzilla-daemon at icedtea.classpath.org Mon Nov 18 06:46:51 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 18 Nov 2013 14:46:51 +0000 Subject: [Bug 1602] java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java stalls due to segfaults In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1602 Raphael Geissert changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|java/util/concurrent/Blocki |java/util/concurrent/Blocki |ngQueue/LastElement.java |ngQueue/MultipleProducersSi |stalls due to segfaults |ngleConsumerLoops.java | |stalls due to segfaults -- 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/20131118/38220289/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Nov 18 08:18:24 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 18 Nov 2013 16:18:24 +0000 Subject: [Bug 1602] java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java stalls due to segfaults In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1602 --- Comment #1 from Raphael Geissert --- (In reply to comment #0) [...] > 4.7) the LastElement.java test stalls with no special output in the test > harness. I'm looking at what other details I can provide, and the first thing I noticed is that I got the name of the test wrong. According to the tests order, it is the MultipleProducersSingleConsumerLoops.java test that is triggering the bug. However, it is the thread that sends "hello world" the one that segfaults (it appears that the signal is ignored and the code continues retrying) - in which case it seems like it's java/net/MulticastSocket/SetOutgoingIf.java I see it calling sendto(..., "hello world", ... ) to an IPv6-mapped v4 multicast address (::ffff:224.1.2.1) on port 9001, followed by another sendto() with the same parameters except that this time it sends it to ff02::1:2. So, it appears that it is the Sender thread of the test. Tracing the thread there's the following: [ a series of futex calls, sendto()x2 ]x5 And after a few repetitions of that pattern, it breaks by only calling sendto() to the ipv4 multicast address, then a series of futex calls (a FUTEX_WAIT which returns 0, followed by a few FUTEX_WAKE), the segfault, a few more futex calls (FUTEX_WAIT which returns EAGAIN and a couple of FUTEX_WAKE), the sendto() to the v6 addr, and a segfault. When changing the CPU affinity the segfaults stop, yet the thread keeps running. In fact, the test suite now continues (but notice that the test that was supposed to be running was java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java). So I suspect that the threads are not being collected - there are more than 250 now. A look at the CPU were each thread is, there are quite a few that are still on a different CPU than the one I chose when setting the affinity. Tracing one of those threads I see it is stuck in a FUTEX_WAIT with a NULL timeout. -- 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/20131118/9f7edc38/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Nov 18 09:14:44 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 18 Nov 2013 17:14:44 +0000 Subject: [Bug 1604] No unit shown for disk space setting In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1604 Deepak Bhole changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|dbhole at redhat.com |aazores 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/20131118/fdbec142/attachment.html From jvanek at redhat.com Tue Nov 19 04:58:46 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 19 Nov 2013 13:58:46 +0100 Subject: [rfc][icedtea-web] Reproducer touch-up for JNLPClassLoaderDeadlock In-Reply-To: <5285174A.5020108@redhat.com> References: <5285174A.5020108@redhat.com> Message-ID: <528B6086.2090409@redhat.com> On 11/14/2013 07:32 PM, Andrew Azores wrote: > The JNLPClassLoaderDeadlock reproducer was occasionally failing, IMO wrongly. The second applet's output would not appear in the stdout and so the test would fail, even though the first applet could be observed to have run, and so a deadlock did not seem to have taken place. I think what was happening was that the first applet ran, produced the "magical closing string", and the browser would begin to close before the second applet ever run. This patch fixes the test to accommodate for this, making the test more reliable (at least on my system). > > Thanks, > Isnt best to have both applets to let them print out heir end? System.out.println("*** APPLET 1 FINISHED ***"); System.out.println("*** APPLET 2 FINISHED ***"); And then wait for both strings in clsoing listener/passed assert? J. From ptisnovs at icedtea.classpath.org Tue Nov 19 05:28:51 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 19 Nov 2013 13:28:51 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBltUsingBgColor test s... Message-ID: changeset fd9214a5bd71 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=fd9214a5bd71 author: Pavel Tisnovsky date: Tue Nov 19 14:32:46 2013 +0100 Ten new tests added into BitBltUsingBgColor test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 150 +++++++++++++++++++++ 2 files changed, 155 insertions(+), 0 deletions(-) diffs (172 lines): diff -r 6e731294160c -r fd9214a5bd71 ChangeLog --- a/ChangeLog Mon Nov 18 09:28:28 2013 +0100 +++ b/ChangeLog Tue Nov 19 14:32:46 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-19 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Ten new tests added into BitBltUsingBgColor test suite. + 2013-11-18 Pavel Tisnovsky * src/org/gfxtest/testsuites/CAGOperationsOnCircleAndRectangle.java: diff -r 6e731294160c -r fd9214a5bd71 src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Mon Nov 18 09:28:28 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Tue Nov 19 14:32:46 2013 +0100 @@ -4652,6 +4652,156 @@ } /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_4BYTE_ABGR_Pre. + * Background color is set to Color.white. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageType4ByteABGR_Pre_backgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageType4ByteABGRPre(image, graphics2d, Color.white); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.black. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.black); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.blue. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundBlue(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.blue); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.green. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundGreen(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.green); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundCyan(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.cyan); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.red. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundRed(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.red); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.magenta. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.yellow); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_BGR. + * Background color is set to Color.white. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntBGRbackgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntBGR(image, graphics2d, Color.white); + } + + /** + * Test basic BitBlt operation for diagonal checker buffered image with type TYPE_INT_RGB. + * Background color is set to Color.black. + * + * @param image + * image to be used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltDiagonalCheckerBufferedImageTypeIntRGBbackgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltDiagonalCheckerBufferedImageTypeIntRGB(image, graphics2d, Color.black); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Tue Nov 19 05:30:50 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 19 Nov 2013 13:30:50 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset b703721b0a67 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=b703721b0a67 author: Pavel Tisnovsky date: Tue Nov 19 14:34:47 2013 +0100 Added new testGetResourcePositiveTest case into AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 6 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 61 +++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r d4ce8969d3f8 -r b703721b0a67 ChangeLog --- a/ChangeLog Mon Nov 18 09:32:27 2013 +0100 +++ b/ChangeLog Tue Nov 19 14:34:47 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-19 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added new testGetResourcePositiveTest case into + AbstractScriptEngineClassTest.java. + 2013-11-18 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r d4ce8969d3f8 -r b703721b0a67 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Nov 18 09:32:27 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Tue Nov 19 14:34:47 2013 +0100 @@ -1789,6 +1789,67 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getResourceAsStreamNegativeTest() + */ + protected void testGetResourceAsStreamNegativeTest() { + Object stream = null; + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/BindingsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/CompilableTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/Constants.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/Constants.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/InvocableTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.AbstractScriptEngine */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Wed Nov 20 00:52:07 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 20 Nov 2013 08:52:07 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBitBltAffineIdentityTr... Message-ID: changeset 0bce5c917147 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=0bce5c917147 author: Pavel Tisnovsky date: Wed Nov 20 09:55:53 2013 +0100 Ten new tests added into BitBitBltAffineIdentityTransformOp.java: diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r fd9214a5bd71 -r 0bce5c917147 ChangeLog --- a/ChangeLog Tue Nov 19 14:32:46 2013 +0100 +++ b/ChangeLog Wed Nov 20 09:55:53 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-20 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: + Ten new tests added into BitBitBltAffineIdentityTransformOp.java: + 2013-11-19 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r fd9214a5bd71 -r 0bce5c917147 src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Tue Nov 19 14:32:46 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Wed Nov 20 09:55:53 2013 +0100 @@ -2144,6 +2144,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeIntBGRIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeIntBGR(image, graphics2d, IdentifyTranspormationOp6); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort555RGBIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort555RGB(image, graphics2d, IdentifyTranspormationOp6); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Wed Nov 20 00:54:29 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 20 Nov 2013 08:54:29 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest case into Message-ID: changeset be39ca66b86d in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=be39ca66b86d author: Pavel Tisnovsky date: Wed Nov 20 09:58:25 2013 +0100 Added new testGetResourcePositiveTest case into BindingsClassTest.java. diffstat: ChangeLog | 6 +++ src/org/RhinoTests/BindingsClassTest.java | 61 +++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-) diffs (84 lines): diff -r b703721b0a67 -r be39ca66b86d ChangeLog --- a/ChangeLog Tue Nov 19 14:34:47 2013 +0100 +++ b/ChangeLog Wed Nov 20 09:58:25 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-20 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Added new testGetResourcePositiveTest case into + BindingsClassTest.java. + 2013-11-19 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r b703721b0a67 -r be39ca66b86d src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Tue Nov 19 14:34:47 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Wed Nov 20 09:58:25 2013 +0100 @@ -1605,6 +1605,67 @@ } /** + * Test for method javax.script.Bindings.getClass().getResourceAsStreamNegativeTest() + */ + protected void testGetResourceAsStreamNegativeTest() { + Object stream = null; + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/BaseRhinoTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BaseRhinoTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/BindingsClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BindingsClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/BindingsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/BindingsTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/CompilableClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompilableClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/CompilableTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompilableTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/CompiledScriptClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompiledScriptClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/CompiledScriptTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/CompiledScriptTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/Constants.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/Constants.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/InvocableClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/InvocableClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/InvocableTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/InvocableTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/JavaScriptSnippets.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/JavaScriptSnippets.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/JavaScriptsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/JavaScriptsTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptContextClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptContextClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptContextTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptContextTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineFactoryClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineFactoryClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineFactoryTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineFactoryTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineManagerClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineManagerClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineManagerTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineManagerTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptEngineTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptEngineTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptExceptionClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptExceptionClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/ScriptExceptionTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/ScriptExceptionTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/SimpleBindingsClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleBindingsClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/SimpleBindingsTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleBindingsTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/SimpleScriptContextClassTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleScriptContextClassTest.class\") returns null"); + stream = this.bindingsClass.getResourceAsStream("/org/RhinoTests/SimpleScriptContextTest.class"); + assertNotNull(stream, "getAsStreamResource(\"/org/RhinoTests/SimpleScriptContextTest.class\") returns null"); + } + + /** * Test for method javax.script.Bindings.getClass().getResourceAsStreamPositiveTest() */ protected void testGetResourceAsStreamPositiveTest() { From jvanek at redhat.com Wed Nov 20 04:42:14 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 20 Nov 2013 13:42:14 +0100 Subject: [rfc][icedtea-web] Mixed-signing applet permissions (PR1592) In-Reply-To: <52780135.4050202@redhat.com> References: <52780135.4050202@redhat.com> Message-ID: <528CAE26.4030200@redhat.com> On 11/04/2013 09:19 PM, Andrew Azores wrote: > Hi, > > This patch allows signed JARs within mixed-signing applets to be granted full permissions, while > unsigned JARs in the same applets retain sandbox permissions only. The user is warned/prompted for > the okay to proceed when this occurs. > > I was not able to create a working reproducer test for this due to the following error: > > java.lang.SecurityException: class "MixedSigningApplet"'s signer information does not match signer > information of other classes in the same package > > I'd need to have two different packages in use to get around this, but AFAIK we don't have a way to > support this with our reproducer system. Also, even if I had that working, the > SecurityDialogs.showNotAllSignedWarningDialog still doesn't really respect the Extended Applet > Security settings and will appear to prompt the user even if security is set to lowest. This would > break the automation of the reproducer test and make it fairly useless anyway. > > The patch is split in two. The first one does the actual work. The second patch just removes an old > unused local variable and an associated enclosing try/catch. This indentation change creates hard to > read diff output, so I included this separately for ease of review. They need to be applied in order. > > Changelog: > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources) grant full > permissions to signed JARs of mixed-signing applets > > Thanks, > Hm.. It took time to get through all possible consequences of this patch. Tbh I'm surpised with simplicity of it. the "jarSingleton" hack is good enough, but wel. should be more readableas on first glance it is not sure what it dies, - it is not singleton in its true meaning. "IMO, the right solution would just be moving the logic into the verifier itself" worth to do then?" "signing" variable is now misleading - it should be in three states. Eg. some dialogues can have changed context then. I must insist on set of reproducers (not automated, but placed in reproducers direcotries - if they will be custom , there can be script to lunch them or something like that)) where you will try to hack your own approach. Most basic signed and uunsigned together, unsigned code doing something wrong. Or unsigned called signed, which is then doing soemthing wrong.. or similar. No limits to imagination :)) Good speed, j. From andrew at icedtea.classpath.org Wed Nov 20 07:45:13 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 20 Nov 2013 15:45:13 +0000 Subject: /hg/release/icedtea6-1.12: 3 new changesets Message-ID: changeset 0ac001e24883 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=0ac001e24883 author: Xerxes Ranby date: Tue Sep 03 18:10:04 2013 +0100 PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. 2013-05-28 Xerxes Ranby PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S (POPF1): The POPF1 macro used wrong destination register r0 instead of r1 on ARM armel causing issues with the frem bytecode. The frem bytecode was the only bytecode using the defect macro. * NEWS: Updated. changeset 3b654e7cbe51 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=3b654e7cbe51 author: Andrew John Hughes date: Tue Nov 19 18:39:31 2013 +0000 Backport a number of JPEG fixes from 7u. S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 S6793818: JpegImageReader is too greedy creating color profiles S6888215: memory leak in jpeg plugin S6989760: cmm native compiler warnings S6989774: imageio compiler warnings in native code S7013519: [parfait] Integer overflows in 2D code S7018912: [parfait] potential buffer overruns in imageio jpeg S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances 2013-08-30 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated with new patches. * patches/imageiojpeg_sync.patch: Bring in changes to imageioJPEG.c made between the start of OpenJDK 6 and the start of OpenJDK 7's hg repositories. * patches/libraries.patch: Updated against patches below. * patches/openjdk/4893408-jpegreader_byte_gray.patch, * patches/openjdk/6631559-dont_load_libjpeg_to_register_imageio_plugins.patch, * patches/openjdk/6791502-invalid_icc_profile.patch, * patches/openjdk/6793818-jpegimagereader_too_greedy.patch, * patches/openjdk/6888215-jpeg_memory_leak.patch, * patches/openjdk/6989760-native_warnings.patch, * patches/openjdk/6989774-imageio_compiler_warnings.patch, * patches/openjdk/7013519-integer_overflows.patch, * patches/openjdk/7018912-potential_buffer_overruns_in_jpeg.patch, * patches/openjdk/8005194-scale_memory_leak.patch, * patches/openjdk/8020983-outofmemoryerror_jpegimagewriter.patch: New backports from OpenJDK 7u. changeset 362263fcff48 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=362263fcff48 author: Andrew John Hughes date: Wed Nov 20 15:44:52 2013 +0000 Backport various Makefile changes so -Wno-clobbered is only used with GCC >= 4.3. S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build S7000225: Sanity check on sane-alsa-headers is broken S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber 2013-09-02 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new backports. Move disable-cc-incompatible-sanity-checks and freetypeversion to the end. * patches/disable-cc-incompatible-sanity-checks.patch, * patches/freetypeversion.patch: Regenerated to work after new backports. * patches/openjdk/6563752-ss12_support.patch, * patches/openjdk/6729772-opt_cleanup.patch, * patches/openjdk/6799141-split_out_versions.patch, * patches/openjdk/6816311-compiler_name.patch, * patches/openjdk/6974017-minorver_for_solaris.patch, * patches/openjdk/6980281-majorver_for_solaris.patch, * patches/openjdk/7000225-bad_tabs.patch, * patches/openjdk/7038711-fix_no-clobber_usage.patch: Backports from OpenJDK 7 to bring in latest Makefile updates. * NEWS: Update and order backports numerically. * patches/ecj/bootver.patch: Remove unused patch. diffstat: ChangeLog | 55 + Makefile.am | 27 +- NEWS | 25 +- arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S | 2 +- patches/disable-cc-incompatible-sanity-checks.patch | 54 +- patches/ecj/bootver.patch | 14 - patches/freetypeversion.patch | 23 +- patches/imageiojpeg_sync.patch | 217 ++ patches/libraries.patch | 176 +- patches/openjdk/4893408-jpegreader_byte_gray.patch | 747 ++++++++ patches/openjdk/6563752-ss12_support.patch | 173 + patches/openjdk/6631559-dont_load_libjpeg_to_register_imageio_plugins.patch | 562 ++++++ patches/openjdk/6729772-opt_cleanup.patch | 847 +++++++++ patches/openjdk/6791502-invalid_icc_profile.patch | 269 ++ patches/openjdk/6793818-jpegimagereader_too_greedy.patch | 228 ++ patches/openjdk/6799141-split_out_versions.patch | 915 ++++++++++ patches/openjdk/6816311-compiler_name.patch | 417 ++++ patches/openjdk/6888215-jpeg_memory_leak.patch | 56 + patches/openjdk/6974017-minorver_for_solaris.patch | 24 + patches/openjdk/6980281-majorver_for_solaris.patch | 66 + patches/openjdk/6989760-native_warnings.patch | 42 + patches/openjdk/6989774-imageio_compiler_warnings.patch | 649 +++++++ patches/openjdk/7000225-bad_tabs.patch | 48 + patches/openjdk/7013519-integer_overflows.patch | 17 + patches/openjdk/7018912-potential_buffer_overruns_in_jpeg.patch | 21 + patches/openjdk/7038711-fix_no-clobber_usage.patch | 125 + patches/openjdk/8005194-scale_memory_leak.patch | 25 + patches/openjdk/8020983-outofmemoryerror_jpegimagewriter.patch | 320 +++ 28 files changed, 5984 insertions(+), 160 deletions(-) diffs (truncated from 6819 to 500 lines): diff -r 09d85ab75305 -r 362263fcff48 ChangeLog --- a/ChangeLog Sat Nov 16 07:13:34 2013 +0000 +++ b/ChangeLog Wed Nov 20 15:44:52 2013 +0000 @@ -1,3 +1,58 @@ +2013-09-02 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new backports. Move + disable-cc-incompatible-sanity-checks and freetypeversion + to the end. + * patches/disable-cc-incompatible-sanity-checks.patch, + * patches/freetypeversion.patch: + Regenerated to work after new backports. + * patches/openjdk/6563752-ss12_support.patch, + * patches/openjdk/6729772-opt_cleanup.patch, + * patches/openjdk/6799141-split_out_versions.patch, + * patches/openjdk/6816311-compiler_name.patch, + * patches/openjdk/6974017-minorver_for_solaris.patch, + * patches/openjdk/6980281-majorver_for_solaris.patch, + * patches/openjdk/7000225-bad_tabs.patch, + * patches/openjdk/7038711-fix_no-clobber_usage.patch: + Backports from OpenJDK 7 to bring in latest Makefile + updates. + * NEWS: Update and order backports numerically. + * patches/ecj/bootver.patch: Remove unused patch. + +2013-08-30 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patches. + * NEWS: Updated with new patches. + * patches/imageiojpeg_sync.patch: + Bring in changes to imageioJPEG.c made between + the start of OpenJDK 6 and the start of OpenJDK 7's + hg repositories. + * patches/libraries.patch: Updated against patches below. + * patches/openjdk/4893408-jpegreader_byte_gray.patch, + * patches/openjdk/6631559-dont_load_libjpeg_to_register_imageio_plugins.patch, + * patches/openjdk/6791502-invalid_icc_profile.patch, + * patches/openjdk/6793818-jpegimagereader_too_greedy.patch, + * patches/openjdk/6888215-jpeg_memory_leak.patch, + * patches/openjdk/6989760-native_warnings.patch, + * patches/openjdk/6989774-imageio_compiler_warnings.patch, + * patches/openjdk/7013519-integer_overflows.patch, + * patches/openjdk/7018912-potential_buffer_overruns_in_jpeg.patch, + * patches/openjdk/8005194-scale_memory_leak.patch, + * patches/openjdk/8020983-outofmemoryerror_jpegimagewriter.patch: + New backports from OpenJDK 7u. + +2013-05-28 Xerxes R??nby + + PR1188: ASM Interpreter and Thumb2 JIT javac miscompile + modulo reminder on armel. + * arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S + (POPF1): The POPF1 macro used wrong destination register + r0 instead of r1 on ARM armel causing issues with the frem bytecode. + The frem bytecode was the only bytecode using the defect macro. + * NEWS: Updated. + 2013-04-26 Andrew John Hughes * Makefile.am: diff -r 09d85ab75305 -r 362263fcff48 Makefile.am --- a/Makefile.am Sat Nov 16 07:13:34 2013 +0000 +++ b/Makefile.am Wed Nov 20 15:44:52 2013 +0000 @@ -464,6 +464,16 @@ patches/openjdk/6693253-security_warning.patch \ patches/openjdk/6444769-windowwithwarningtest.patch \ patches/openjdk/6656651-windows_lcd_glyphs.patch \ + patches/openjdk/6791502-invalid_icc_profile.patch \ + patches/openjdk/6793818-jpegimagereader_too_greedy.patch \ + patches/openjdk/6631559-dont_load_libjpeg_to_register_imageio_plugins.patch \ + patches/openjdk/4893408-jpegreader_byte_gray.patch \ + patches/openjdk/6888215-jpeg_memory_leak.patch \ + patches/openjdk/6989774-imageio_compiler_warnings.patch \ + patches/openjdk/7018912-potential_buffer_overruns_in_jpeg.patch \ + patches/openjdk/6989760-native_warnings.patch \ + patches/openjdk/7013519-integer_overflows.patch \ + patches/openjdk/8020983-outofmemoryerror_jpegimagewriter.patch \ patches/notice-safepoints.patch \ patches/parisc-opt.patch \ patches/lucene-crash.patch \ @@ -481,7 +491,6 @@ patches/lcms.patch \ patches/print_lsb_release.patch \ patches/uname.patch \ - patches/freetypeversion.patch \ patches/nomotif-6706121.patch \ patches/nomotif.patch \ patches/nomotif-mtoolkit.patch \ @@ -508,7 +517,6 @@ patches/jtreg-jrunscript.patch \ patches/network-unreachable.patch \ patches/dnd-filelists.patch \ - patches/disable-cc-incompatible-sanity-checks.patch \ patches/explicit-target-arch.patch \ patches/openjdk/7019808-stack_noexec.patch \ patches/parisc.patch \ @@ -712,7 +720,19 @@ patches/openjdk/8014469-tzdata2013c.patch \ patches/openjdk/8020054-tzdata2013d.patch \ patches/openjdk/6840152-jvm_crashes_with_heavyweight_monitors.patch \ - patches/openjdk/7022999-fastlocking_compiler1_only.patch + patches/openjdk/7022999-fastlocking_compiler1_only.patch \ + patches/imageiojpeg_sync.patch \ + patches/openjdk/8005194-scale_memory_leak.patch \ + patches/openjdk/6563752-ss12_support.patch \ + patches/openjdk/6729772-opt_cleanup.patch \ + patches/openjdk/6799141-split_out_versions.patch \ + patches/freetypeversion.patch \ + patches/openjdk/6816311-compiler_name.patch \ + patches/openjdk/6974017-minorver_for_solaris.patch \ + patches/openjdk/6980281-majorver_for_solaris.patch \ + patches/openjdk/7000225-bad_tabs.patch \ + patches/openjdk/7038711-fix_no-clobber_usage.patch \ + patches/disable-cc-incompatible-sanity-checks.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -774,7 +794,6 @@ patches/ecj/spp.patch \ patches/ecj/jopt.patch \ patches/ecj/jaxp-dependency.patch \ - patches/ecj/bootver.patch \ patches/ecj/getannotation-cast.patch \ patches/ecj/override.patch \ patches/ecj/xsltproc.patch \ diff -r 09d85ab75305 -r 362263fcff48 NEWS --- a/NEWS Sat Nov 16 07:13:34 2013 +0000 +++ b/NEWS Wed Nov 20 15:44:52 2013 +0000 @@ -14,8 +14,29 @@ New in release 1.12.7 (2013-XX-XX): * Backports - - S6840152: JVM crashes when heavyweight monitors are used - - S7022999: Can't build with FORCE_TIERED=0 + - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY + - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) + - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll + - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 + - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 + - S6793818: JpegImageReader is too greedy creating color profiles + - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 + - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 + - S6840152: JVM crashes when heavyweight monitors are used + - S6888215: memory leak in jpeg plugin + - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) + - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build + - S6989760: cmm native compiler warnings + - S6989774: imageio compiler warnings in native code + - S7000225: Sanity check on sane-alsa-headers is broken + - S7013519: [parfait] Integer overflows in 2D code + - S7018912: [parfait] potential buffer overruns in imageio jpeg + - S7022999: Can't build with FORCE_TIERED=0 + - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber + - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() + - S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances +* Bug fixes + - PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. New in release 1.12.6 (2013-07-10): diff -r 09d85ab75305 -r 362263fcff48 arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S --- a/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Sat Nov 16 07:13:34 2013 +0000 +++ b/arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S Wed Nov 20 15:44:52 2013 +0000 @@ -345,7 +345,7 @@ flds s1, [stack, #4] add stack, #4 #else - POP r0 + POP r1 #endif .endm diff -r 09d85ab75305 -r 362263fcff48 patches/disable-cc-incompatible-sanity-checks.patch --- a/patches/disable-cc-incompatible-sanity-checks.patch Sat Nov 16 07:13:34 2013 +0000 +++ b/patches/disable-cc-incompatible-sanity-checks.patch Wed Nov 20 15:44:52 2013 +0000 @@ -1,7 +1,7 @@ diff -Nru openjdk.orig/jdk/make/common/Sanity.gmk openjdk/jdk/make/common/Sanity.gmk ---- openjdk.orig/jdk/make/common/Sanity.gmk 2009-10-01 18:31:50.000000000 +0100 -+++ openjdk/jdk/make/common/Sanity.gmk 2009-10-02 17:51:35.000000000 +0100 -@@ -92,8 +92,11 @@ +--- openjdk.orig/jdk/make/common/Sanity.gmk 2012-10-26 19:25:40.000000000 +0100 ++++ openjdk/jdk/make/common/Sanity.gmk 2013-09-02 17:26:52.257169562 +0100 +@@ -91,8 +91,11 @@ sane-ld_options \ sane-ld_run_path \ sane-alt_bootdir \ @@ -15,7 +15,7 @@ ifdef OPENJDK sanity-all:: sane-freetype -@@ -109,17 +112,21 @@ +@@ -108,17 +111,21 @@ # (Which only happens with a full control build. The control makefiles are # the files that set BUILD_MOTIF). # We cannot sanity check something that has not been built yet. @@ -42,64 +42,36 @@ # Always check hotspot binary paths even if we are building them from scratch diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk ---- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2009-10-02 17:36:09.000000000 +0100 -+++ openjdk/jdk/make/common/shared/Sanity.gmk 2009-10-02 17:52:37.000000000 +0100 -@@ -75,9 +75,14 @@ - fi ) - endif - ifneq ($(ARCH), ia64) -- # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) -- ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck -- ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` -+ ifdef CROSS_COMPILATION -+ # assume alsa version is correct and do not check it -+ ALSA_VERSION = 1.0.0 -+ else -+ # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) -+ ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck -+ ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` -+ endif - endif - endif - -@@ -120,6 +125,15 @@ +--- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2013-09-02 17:03:28.039330395 +0100 ++++ openjdk/jdk/make/common/shared/Sanity.gmk 2013-09-02 17:32:35.854512833 +0100 +@@ -159,6 +159,11 @@ # Get ALL_SETTINGS defined include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk +ifndef CROSS_COMPILATION +MORE_PHONY_RULES = \ -+ sane-freetype \ -+ sane-cups \ -+ sane-motif \ -+ sane-alsa-versioncheck \ -+ sane-alsa-headers ++ sane-freetype +endif + .PHONY: \ sane-copyrightyear\ sane-settings \ -@@ -149,8 +163,6 @@ +@@ -187,8 +192,7 @@ sane-outputdir \ sane-alt_bootdir \ sane-bootdir \ - sane-motif \ - sane-cups \ ++ sane-cups \ sane-devtools_path \ sane-compiler_path \ sane-unixcommand_path \ -@@ -168,13 +180,11 @@ - sane-compiler \ - sane-link \ - sane-cacerts \ -- sane-alsa-versioncheck \ -- sane-alsa-headers \ - sane-ant_version \ +@@ -211,7 +215,7 @@ sane-zip_version \ sane-unzip_version \ -- sane-msvcrt_path \ + sane-msvcrt_path \ - sane-freetype -+ sane-msvcrt_path \ -+ $(MORE_PHONY_RULES) ++ $(MORE_PHONY_RULES) ###################################################### # check for COPYRIGHT_YEAR variable diff -r 09d85ab75305 -r 362263fcff48 patches/ecj/bootver.patch --- a/patches/ecj/bootver.patch Sat Nov 16 07:13:34 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -diff -r b6701047e287 make/common/shared/Platform.gmk ---- openjdk-ecj.orig/jdk/make/common/shared/Platform.gmk Sat Jun 12 00:15:32 2010 +0100 -+++ openjdk-ecj/jdk/make/common/shared/Platform.gmk Sun Jun 13 23:54:02 2010 +0100 -@@ -88,8 +88,8 @@ - - SYSTEM_UNAME := $(shell uname) - --# Normal boot jdk is previous release, but a hard requirement is a 1.6 boot --REQUIRED_BOOT_VER = 1.6 -+# Normal boot jdk is previous release, but a hard requirement is a 1.5 boot -+REQUIRED_BOOT_VER = 1.5 - - # If we are using freetype, this is the required version - REQUIRED_FREETYPE_VERSION=2.3.0 diff -r 09d85ab75305 -r 362263fcff48 patches/freetypeversion.patch --- a/patches/freetypeversion.patch Sat Nov 16 07:13:34 2013 +0000 +++ b/patches/freetypeversion.patch Wed Nov 20 15:44:52 2013 +0000 @@ -1,11 +1,12 @@ ---- openjdk/jdk/make/common/shared/Platform.gmk.orig -+++ openjdk/jdk/make/common/shared/Platform.gmk -@@ -94,7 +94,7 @@ - REQUIRED_BOOT_VER = 1.5 - - # If we are using freetype, this is the required version --REQUIRED_FREETYPE_VERSION=2.3.0 -+REQUIRED_FREETYPE_VERSION=2.2.1 - - # - # Prune out all known SCM (Source Code Management) directories +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 15:32:33.490472903 +0100 ++++ openjdk/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 15:33:00.154887749 +0100 +@@ -176,7 +176,7 @@ + # Generic + REQUIRED_ANT_VER = 1.6.3 + REQUIRED_BOOT_VER = 1.5 +-REQUIRED_FREETYPE_VERSION = 2.3.0 ++REQUIRED_FREETYPE_VERSION = 2.2.1 + REQUIRED_MAKE_VER = 3.78 + REQUIRED_UNZIP_VER = 5.12 + REQUIRED_ZIP_VER = 2.2 diff -r 09d85ab75305 -r 362263fcff48 patches/imageiojpeg_sync.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/imageiojpeg_sync.patch Wed Nov 20 15:44:52 2013 +0000 @@ -0,0 +1,217 @@ +diff -Nru openjdk.orig/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c +--- openjdk.orig/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2013-08-30 18:50:38.238272213 +0100 ++++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2013-08-30 18:57:43.240892673 +0100 +@@ -447,9 +447,6 @@ + pixelBuffer pixelBuf; // Buffer for pixels + + jboolean abortFlag; // Passed down from Java abort method +- +- UINT8 scale[MAX_BANDS][NUM_INPUT_VALUES]; +- int bandSizes[MAX_BANDS]; // For scaling to-from non-8-bit images + } imageIOData, *imageIODataPtr; + + /* +@@ -487,12 +484,6 @@ + + data->abortFlag = JNI_FALSE; + +- for (i = 0; i < MAX_BANDS; i ++) { +- data->bandSizes[i] = 0; +- for (j = 0; j < NUM_INPUT_VALUES; j++) { +- data->scale[i][j] = 0; +- } +- } + return data; + } + +@@ -1978,34 +1969,6 @@ + + (*env)->ReleaseIntArrayElements(env, srcBands, body, JNI_ABORT); + +- bandSize = (*env)->GetIntArrayElements(env, bandSizes, NULL); +- +- for (i = 0; i < numBands; i++) { +- if (bandSize[i] != JPEG_BAND_SIZE) { +- mustScale = TRUE; +- break; +- } +- } +- +- if (mustScale) { +- // Build any scale tables that aren't already OK +- for (i = 0; i < numBands; i++) { +- if (data->bandSizes[i] != bandSize[i]) { +- data->bandSizes[i] = bandSize[i]; +- maxBandValue = (1 << bandSize[i]) - 1; +- halfMaxBandValue = maxBandValue >> 1; +- for (j = 0; j <= maxBandValue; j++) { +- data->scale[i][j] = +- (UINT8)((j*MAX_JPEG_BAND_VALUE +- + halfMaxBandValue)/maxBandValue); +- } +- } +- } +- } +- +- (*env)->ReleaseIntArrayElements(env, bandSizes, +- bandSize, JNI_ABORT); +- + #ifdef DEBUG_IIO_JPEG + printf("---- in reader.read ----\n"); + printf("numBands is %d\n", numBands); +@@ -2028,15 +1991,6 @@ + return data->abortFlag; // We already threw an out of memory exception + } + +- // Allocate a 1-scanline buffer +- if (cinfo->num_components <= 0 || +- cinfo->image_width > (UINT_MAX / (unsigned int)cinfo->num_components)) +- { +- RELEASE_ARRAYS(env, data, src->next_input_byte); +- JNU_ThrowByName(env, "javax/imageio/IIOException", +- "Invalid number of color components"); +- return data->abortFlag; +- } + /* Establish the setjmp return context for sun_jpeg_error_exit to use. */ + jerr = (sun_jpeg_error_ptr) cinfo->err; + +@@ -2154,15 +2108,8 @@ + + // Now mangle it into our buffer + out = data->pixelBuf.buf.bp; +- if (mustScale) { +- for (in = scanLinePtr+sourceXStart*cinfo->num_components; +- in < pixelLimit; +- in += pixelStride) { +- for (i = 0; i < numBands; i++) { +- *out++ = data->scale[i][*(in+bands[i])]; +- } +- } +- } else if (orderedBands && (pixelStride == numBands)) { ++ ++ if (orderedBands && (pixelStride == numBands)) { + // Optimization: The component bands are ordered sequentially, + // so we can simply use memcpy() to copy the intermediate + // scanline buffer into the raster. +@@ -2177,7 +2124,7 @@ + } else { + numBytes = numBands; + for (in = scanLinePtr+sourceXStart*cinfo->output_components; +- in < pixelLimit && ++ in < pixelLimit && + numBytes <= data->pixelBuf.byteBufferLength; + in += pixelStride) { + for (i = 0; i < numBands; i++) { +@@ -2914,9 +2861,10 @@ + jint *scanData; + jint *bandSize; + int maxBandValue, halfMaxBandValue; +- boolean mustScale = FALSE; + imageIODataPtr data = (imageIODataPtr)jlong_to_ptr(ptr); + j_compress_ptr cinfo; ++ UINT8** scale = NULL; ++ + + /* verify the inputs */ + +@@ -2963,24 +2911,32 @@ + + for (i = 0; i < numBands; i++) { + if (bandSize[i] != JPEG_BAND_SIZE) { +- mustScale = TRUE; +- break; +- } +- } ++ if (scale == NULL) { ++ scale = (UINT8**) calloc(numBands, sizeof(UINT8*)); + +- if (mustScale) { +- // Build any scale tables that aren't already OK +- for (i = 0; i < numBands; i++) { +- if (data->bandSizes[i] != bandSize[i]) { +- data->bandSizes[i] = bandSize[i]; +- maxBandValue = (1 << bandSize[i]) - 1; +- halfMaxBandValue = maxBandValue >> 1; +- for (j = 0; j <= maxBandValue; j++) { +- data->scale[i][j] = +- (UINT8)((j*MAX_JPEG_BAND_VALUE +- + halfMaxBandValue)/maxBandValue); ++ if (scale == NULL) { ++ JNU_ThrowByName( env, "java/lang/OutOfMemoryError", ++ "Writing JPEG Stream"); ++ return JNI_FALSE; + } + } ++ ++ maxBandValue = (1 << bandSize[i]) - 1; ++ ++ scale[i] = (UINT8*) malloc((maxBandValue + 1) * sizeof(UINT8)); ++ ++ if (scale[i] == NULL) { ++ JNU_ThrowByName( env, "java/lang/OutOfMemoryError", ++ "Writing JPEG Stream"); ++ return JNI_FALSE; ++ } ++ ++ halfMaxBandValue = maxBandValue >> 1; ++ ++ for (j = 0; j <= maxBandValue; j++) { ++ scale[i][j] = (UINT8) ++ ((j*MAX_JPEG_BAND_VALUE + halfMaxBandValue)/maxBandValue); ++ } + } + } + +@@ -3189,28 +3145,25 @@ + out = scanLinePtr; + pixelLimit = in + ((pixelBufferSize > data->pixelBuf.byteBufferLength) ? + data->pixelBuf.byteBufferLength : pixelBufferSize); +- if (mustScale) { +- for (; (in < pixelLimit) && (out < scanLineLimit); in += pixelStride) { +- for (i = 0; i < numBands; i++) { +- *out++ = data->scale[i][*(in+i)]; ++ for (; (in < pixelLimit) && (out < scanLineLimit); in += pixelStride) { ++ for (i = 0; i < numBands; i++) { ++ if (scale !=NULL && scale[i] != NULL) { ++ *out++ = scale[i][*(in+i)]; + #ifdef DEBUG_IIO_JPEG + if (in == data->pixelBuf.buf.bp){ // Just the first pixel + printf("in %d -> out %d, ", *(in+i), *(out-i-1)); + } From bugzilla-daemon at icedtea.classpath.org Wed Nov 20 14:50:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 20 Nov 2013 22:50:13 +0000 Subject: [Bug 1606] New: jnlp href value stripped of url parameters Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1606 Bug ID: 1606 Summary: jnlp href value stripped of url parameters Classification: Unclassified Product: IcedTea-Web Version: 1.4 Hardware: x86_64 OS: Linux Status: NEW Severity: major Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: vanjabucic at me.com CC: unassigned at icedtea.classpath.org URL from the HREF section of the JNLP block is being stripped of parameters before fetching the JNLP file. Example: results in a call to https://a.customer.com/jnlp which fails miserably. I can tell from the debug output that the 'best url for location' method is picking the base URL and ignoring the parameters. Oracle version does not have (and never had) issue with this type of HREF. Result is that our deployed apps will not launch with default OpenJDK runtimes. (test done with clean OpenSUSE 13.1, icedtea-web 1.4.1) -- partial debug output -- Description: Cust Overview Acceptable title tag found, contains: Cust Master Overview v1.0 Acceptable vendor tag found, contains: Comp Inc. Status: CONNECT STARTED +(CONNECT STARTED) @ /jnlp Status: CONNECT DOWNLOAD STARTED +(DOWNLOAD) @ /jnlp Status: CONNECTING DOWNLOAD STARTED +(CONNECTING) -(CONNECT) @ /jnlp All possible urls for location=https://a.customer.com/jnlp?content_id=1002 state=CONNECTING DOWNLOAD STARTED : [https://a.customer.com/jnlp, https://a.customer.com/jnlp?content_id=1002] Selecting proxy for: https://a.customer.com/jnlp Browser proxy option "4" (Automatic) not supported yet. Browser selected proxies: [DIRECT] Selected proxies: [DIRECT] Selecting proxy for: socket://a.customer.com:443 Browser proxy option "4" (Automatic) not supported yet. Browser selected proxies: [DIRECT] Selected proxies: [DIRECT] best url for location=https://a.customer.com/jnlp?content_id=1002 state=CONNECTING DOWNLOAD STARTED is https://a.customer.com/jnlp by HEAD Selecting proxy for: https://a.customer.com/jnlp Browser proxy option "4" (Automatic) not supported yet. Browser selected proxies: [DIRECT] Selected proxies: [DIRECT] isCurrent: https://a.customer.com/jnlp?content_id=1002 = false Status: CONNECTED DOWNLOAD STARTED +(CONNECTED) -(CONNECTING) @ /jnlp Status: CONNECTED DOWNLOADING STARTED +(DOWNLOADING) -(DOWNLOAD) @ /jnlp Selecting proxy for: https://a.customer.com/jnlp Browser proxy option "4" (Automatic) not supported yet. Browser selected proxies: [DIRECT] Selected proxies: [DIRECT] Selecting proxy for: socket://a.customer.com:443 Browser proxy option "4" (Automatic) not supported yet. Browser selected proxies: [DIRECT] Selected proxies: [DIRECT] Downloadinghttps://a.customer.com/jnlp?content_id=1002 using https://a.customer.com/jnlp (encoding : null) Status: CONNECTED DOWNLOADED STARTED +(DOWNLOADED) -(DOWNLOADING) @ /jnlp UNIQUEKEY=1385015085520-925777068-file:/home/vanjab/Downloads/./Cust Master Overview.jnlp -- 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/20131120/a49bcc38/attachment.html From ptisnovs at icedtea.classpath.org Thu Nov 21 00:17:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 21 Nov 2013 08:17:58 +0000 Subject: /hg/gfx-test: Two new tests added into BitBltAffineQuadrantRotat... Message-ID: changeset 0c79e2cd45c7 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=0c79e2cd45c7 author: Pavel Tisnovsky date: Thu Nov 21 09:21:51 2013 +0100 Two new tests added into BitBltAffineQuadrantRotateTransformOp.java diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java | 28 ++++++++++ 2 files changed, 33 insertions(+), 0 deletions(-) diffs (50 lines): diff -r 0bce5c917147 -r 0c79e2cd45c7 ChangeLog --- a/ChangeLog Wed Nov 20 09:55:53 2013 +0100 +++ b/ChangeLog Thu Nov 21 09:21:51 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-21 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: + Two new tests added into BitBltAffineQuadrantRotateTransformOp.java + 2013-11-20 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: diff -r 0bce5c917147 -r 0c79e2cd45c7 src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Wed Nov 20 09:55:53 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java Thu Nov 21 09:21:51 2013 +0100 @@ -1257,6 +1257,34 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation4Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[4]); + } + + /** + Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayRotateTransformation5Nearest1Op(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, RotateTransformationNearest1Op[5]); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Thu Nov 21 00:22:28 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 21 Nov 2013 08:22:28 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest case into Message-ID: changeset cf0d5f189876 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=cf0d5f189876 author: Pavel Tisnovsky date: Thu Nov 21 09:26:25 2013 +0100 Added new testGetResourceNPETest case into CompiledScriptClassTest.java. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/CompiledScriptClassTest.java | 13 +++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diffs (36 lines): diff -r be39ca66b86d -r cf0d5f189876 ChangeLog --- a/ChangeLog Wed Nov 20 09:58:25 2013 +0100 +++ b/ChangeLog Thu Nov 21 09:26:25 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-21 Pavel Tisnovsky + + * src/org/RhinoTests/CompiledScriptClassTest.java: + Added new testGetResourceNPETest case into + CompiledScriptClassTest.java. + 2013-11-20 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r be39ca66b86d -r cf0d5f189876 src/org/RhinoTests/CompiledScriptClassTest.java --- a/src/org/RhinoTests/CompiledScriptClassTest.java Wed Nov 20 09:58:25 2013 +0100 +++ b/src/org/RhinoTests/CompiledScriptClassTest.java Thu Nov 21 09:26:25 2013 +0100 @@ -1582,6 +1582,19 @@ } /** + * Test for method javax.script.CompiledScript.getClass().getResourceNPETest() + */ + protected void testGetResourceNPETest() { + try { + Object resource = this.compiledScriptClass.getResource(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** * Test for instanceof operator applied to a class javax.script.CompiledScript */ @SuppressWarnings("cast") From bugzilla-daemon at icedtea.classpath.org Thu Nov 21 03:36:29 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 21 Nov 2013 11:36:29 +0000 Subject: [Bug 1602] java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java stalls due to segfaults In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1602 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se --- Comment #2 from Xerxes R?nby --- Try run the jtreg tests manually ./openjdk.build/j2sdk-image/jre/bin/java -jar test/jtreg.jar -v1 -s openjdk/jdk/test/java/util/concurrent | tee java-concurrent.log the generated JTreport and JTwork will then be accessible containing compiled classes and runtime output for the failing tests -- 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/20131121/a55d300b/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Nov 21 05:38:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 21 Nov 2013 13:38:46 +0000 Subject: [Bug 1602] java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java stalls due to segfaults In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1602 --- Comment #3 from Xerxes R?nby --- Debugging pthread fork join issues may be done using valgrind http://valgrind.org/docs/manual/hg-manual.html valgrind --tool=helgrind --smc-check=all --log-file=helgrind-smc.txt ./openjdk.build/j2sdk-image/jre/bin/java -jar test/jtreg.jar -v1 -s openjdk/jdk/test/java/util/concurrent | tee java-concurrent.log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131121/3b7d54c1/attachment.html From jvanek at redhat.com Thu Nov 21 10:17:24 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 21 Nov 2013 19:17:24 +0100 Subject: [rfc][icedtea-web] rewritten java console Message-ID: <528E4E34.3030303@redhat.com> Hi all, after week of work there is complete rewrote of java console. The motivation was that it was ugly and useless. With new logging, when plugin is logging to its file, java aprt is logging into its file, when one cen easily redirect stderr/out to separate chanels and when one can set verbosity and headers in itw-settings or by environment variable. With system logging on the way (although I did not yet decided how to do it), I believe java console should have some additional value. Maybe we can hunt applets developers with advertisement "we have better console" :) What I was misisng most, were missing plugin messages. So most of this patch is focused on including them. Other parts are focused on colour and setupable, powerfull console. In meanwhile I stumbled over few bugs or incomplete features, so they are also included in this patch. I know i crossed the limits of review, and so after some general comments I will push in smaller steps. Generally in this patch: - java console can receive plugin messages - this was implemented by *new* pipe at the end. I tried various approaches (file, sockets, shared pipe) and this one had the best performance - new pipe is now third parameter to jvm lunch - console itself have highlight, and search and filtering capabilities - advantage is, that when its hidden, or shown and debug of, then it have nearly no overhead. Debug on and visibel one can have some overhead, but nothing crucial (unless you set some terrible filters/settings) - plugin si now logging to file - log dir can be set in itw-settings (the deployment key was already in itw, so Ijust added textfield) - the logs now have human readable name Small bugfixes and improvements - the pies are now in XDG_RUNTIME_DIR - or in temp as they were if it is not setup - headers (for c) are generated by shared function - teh tmp path search is does in separate function - headers in java are represented by object, and changed to string when it have sense - fixed few newline terminators in PLUGINDEBUG/ERROR macros call and unluckily much more :) the "changelog" is like this: * netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java: - added jtextfield and button "reset to default" to set KEY_USER_LOG_DIR * netx/net/sourceforge/jnlp/resources/Messages.properties: - fixed and added few entries, but whole ConsoleOutputPane is waiting to be added *netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPane.java: - is repalcement for old "twoplain text stdout/err" panels - it have higlighlt, can sort, can filter, can search.. well apply and see;) - is folowing observer/obsevable patter, and is updating smoothly -- code hint -- It is updating the lines, not regenrating all of them (unless necessary), however there is still an performance critical part, I do joptionpane.setText(srting) in all ways, and imho the parsing of html is here the worst. I was trying to add text or whatever.. but no imprvement. Maybe because underlying document.insertString is creating new string anyway :) Maybe I will swap to jtextpane in next iterations ------------- - most of the code are adding some listeners or layout fighting, so dont be scared ;) * netx/net/sourceforge/jnlp/util/logging/FileLog.java: - created human readable, alphabet-sortable name - much better constructor handling * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: - removed old palintext stdout/err textareas - added reader of new pipe, started only if pipe is presented - messages from pluginare parsed to header and message - java messages are already recieved as header and body instead of remove textares, it now contains one (by default, can have endelss of them) ConsoleOutputPane - update of ConsoleOutputPane is doen by observable,observer pattern - all ConsoleOutputPane updates are disabled when console is hidden * netx/net/sourceforge/jnlp/util/logging/LogConfig.java: - config made accessible , ConsoleOutputPane is setting default appearence based on them * netx/net/sourceforge/jnlp/util/logging/OutputController.java - fixed isOutput, isError aproach (from static tomember), added isWarnig,isDebug,isNotDebug - adapted to work with object Header instead of string header - console is reciving headers always (but is showing them on demand) - header code moved to new class (Header:) * netx/net/sourceforge/jnlp/util/logging/headers/Header.java: - simple obkject representtig header - is requesting - String getMessage(); - Header getHeader(); netx/net/sourceforge/jnlp/util/logging/headers/MessageWithHeader.java - shared interface for JavaMessage and PluginMessage * netx/net/sourceforge/jnlp/util/logging/headers/JavaMessage.java: - wrapper around Header and string message body * netx/net/sourceforge/jnlp/util/logging/headers/ObservableMessagesProvider.java: - abstraction for data source for ConsoleOutputPane - the only implementation is JavaConsole - enforcing - List getData(); - Observable getObservable(); * netx/net/sourceforge/jnlp/util/logging/headers/PluginHeader.java - extending Header - adding some plugin specific constants, preintint mark, and addindg original timestamp and preinti flag * netx/net/sourceforge/jnlp/util/logging/headers/PluginMessage.java - second mplementation of MessageWithHeader - have factory method to parse source string (parts of header and message) * plugin/icedteanp/IcedTeaNPPlugin.cc: - adding new pipe for debug messages->java - gchar* debug_pipe_name - the messages are buffered in FIFO (declared in IcedTeaPluginUtils.cc), but access to this fifo ave to be sinchronised - pthread_mutex_t debug_pipe_lock - GIOChannel* debug_to_appletviewer - channel around pipe - bool plugin_debug_to_console = true; - flag initialised form deployment-properties, log is used to decide whther create pipe, and whether to write to it,whether to initalisated buffer, and so on... - creating (and cleaning in case of failure) logic in ititialisation - if plugin_debug_to_console is true, then pipe for debug messages is intialised. A bit later the thread reading buffer is stared - if debug to console is true, path to debug pipe is passed to jvm - two mwthods - plugin_send_message_to_appletviewer_console and flush_plugin_send_message_to_appletviewer_console to opearte the pipe. - they do not log to prevent deadlock - adding logging into file possibility - std::string plugin_file_log_name - name of file to save the plugin's part messages/*errors - FILE * plugin_file_log; - stream to write to file - eg the getMimeDesc or similar, are called *without* plugin initialisation. Or as separate nstance orhow to say it. So each call to them (mostly one or two per browser run) is creating a log file. But I would call it feature :) - clenup of pipe and log fiel in shutdown time - various fixes of new line at end of _MESSAGES_ - generation of tmp dir path moved to std::string IcedTeaPluginUtilities::getTmpPath() (and used by std::string IcedTeaPluginUtilities::getRuntimePath()) * plugin/icedteanp/IcedTeaNPPlugin.h: declared extern public definitions of pthread_mutex_t debug_pipe_lock, plugin_debug_to_console; plugin_file_log; plugin_file_log_name;jvm_up; plugin_send_message_to_appletviewer_console and flush_plugin_send_message_to_appletviewer_console * plugin/icedteanp/IcedTeaParseProperties.cc: - added logic to read deployment.console.startup.mode and eployment.user.logdir (or to provide default) (each read only once during initialisation) * plugin/icedteanp/IcedTeaParseProperties.h - declared above * plugin/icedteanp/IcedTeaPluginUtils.cc - declared buffer to store preinit messages and to buffer runtime messages - std::queue pre_jvm_message - flush_pre_init_messages body of thread which is poping from queuq - push_pre_init_messages - sinchronised push to queuq -- code hint -- I "synced" the thread via : + struct timespec ts; + ts.tv_sec = 1; + ts.tv_nsec = 0; + nanosleep(&ts ,0); afaikit is not good :( But behave greate for me. But I have little experience withc synchroisatin i c/c++ :( ---------------- - IcedTeaPluginUtilities::initFileLog method to create path to file elog and open the stream - initConsoleFile (and initErrFile with initOutFile) relicts from time when plugin messages were sen tto java side via files :) - IcedTeaPluginUtilities::generateLogFileName - generating human redable log name - same as javaside, just with different prefix - IcedTeaPluginUtilities::printDebugStatus() - method to log current status of debug settngs - IcedTeaPluginUtilities::getTmpPath() :) - IcedTeaPluginUtilities::getRuntimePath( returning value of XDG_RUNTIME_DIR ot getTmpPath if XDG_RUNTIME_DIR is not set. USed to create pipes destinations * plugin/icedteanp/IcedTeaPluginUtils.h: - nicer initialisation of log subsystems - CREATE_HEADER jsut cosmetic changes - PLUGIN_DEBU and ERROR are reusing the header, added psh to buffer and log to file - declared new IcedTeaPluginUtilities methods * plugin/icedteanp/java/sun/applet/PluginMain.java: - printed out imput arguments - handled third one (debug pipe name) * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java* omented out repeated endless "woken consumer" message - it was still spamming the outputs * tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc : - partially considered existence of console logs * tests/netx/unit/net/sourceforge/jnlp/util/logging/JavaConsoleTest.java: - added some tests for parsing the plugin message -------------- next part -------------- A non-text attachment was scrubbed... Name: filelog_for_plugin_fewFixes_eand_rewritten_console.patch Type: text/x-patch Size: 159817 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131121/a163c7eb/filelog_for_plugin_fewFixes_eand_rewritten_console-0001.patch From gnu.andrew at redhat.com Thu Nov 21 20:16:39 2013 From: gnu.andrew at redhat.com (Andrew) Date: Fri, 22 Nov 2013 04:16:39 +0000 Subject: [SECURITY] IcedTea 1.12.7 for OpenJDK 6 Released! Message-ID: <20131122041639.GA24575@carrie.the212.com> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver, the ability to build against system libraries and support for alternative virtual machines and architectures beyond those supported by OpenJDK. This release updates our OpenJDK 6 support in the 1.1w.x series with the October 2013 security errata and a number of bug fixes If you find an issue with the release, please report it to our bug database (http://icedtea.classpath.org/bugzilla) under the appropriate component. Development discussion takes place on the distro-pkg-dev at openjdk.java.net mailing list and patches are always welcome. Full details of the release can be found below. What?s New? =========== New in release 1.12.7 (2013-11-21): * Security fixes - S8006900, CVE-2013-3829: Add new date/time capability - S8008589: Better MBean permission validation - S8011071, CVE-2013-5780: Better crypto provider handling - S8011081, CVE-2013-5772: Improve jhat - S8011157, CVE-2013-5814: Improve CORBA portablility - S8012071, CVE-2013-5790: Better Building of Beans - S8012147: Improve tool support - S8012277: CVE-2013-5849: Improve AWT DataFlavor - S8012425, CVE-2013-5802: Transform TransformerFactory - S8013503, CVE-2013-5851: Improve stream factories - S8013506: Better Pack200 data handling - S8013510, CVE-2013-5809: Augment image writing code - S8013514: Improve stability of cmap class - S8013739, CVE-2013-5817: Better LDAP resource management - S8013744, CVE-2013-5783: Better tabling for AWT - S8014085: Better serialization support in JMX classes - S8014093, CVE-2013-5782: Improve parsing of images - S8014102, CVE-2013-5778: Improve image conversion - S8014341, CVE-2013-5803: Better service from Kerberos servers - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations - S8014530, CVE-2013-5825: Better digital signature processing - S8014534: Better profiling support - S8014987, CVE-2013-5842: Augment serialization handling - S8015614: Update build settings - S8015731: Subject java.security.auth.subject to improvements - S8015743, CVE-2013-5774: Address internet addresses - S8016256: Make finalization final - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names - S8016675, CVE-2013-5797: Make Javadoc pages more robust - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately - S8017287, CVE-2013-5829: Better resource disposal - S8017291, CVE-2013-5830: Cast Proxies Aside - S8017298, CVE-2013-4002: Better XML support - S8017300, CVE-2013-5784: Improve Interface Implementation - S8017505, CVE-2013-5820: Better Client Service - S8019292: Better Attribute Value Exceptions - S8019617: Better view of objects - S8020293: JVM crash - S8021290, CVE-2013-5823: Better signature validation - S8022940: Enhance CORBA translations - S8023683: Enhance class file parsing * Backports - S4075303: Use javap to enquire about a specific inner class - S4111861: static final field contents are not displayed - S4348375: Javap is not internationalized - S4459541: "javap -l" shows line numbers as signed short; they should be unsigned - S4501660: change diagnostic of -help as 'print this help message and exit' - S4501661: disallow mixing -public, -private, and -protected options at the same time - S4776241: unused source file in javap... - S4870651: javap should recognize generics, varargs, enum - S4876942: javap invoked without args does not print help screen - S4880663: javap could output whitespace between class name and opening brace - S4884240: additional option required for javap - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY - S4975569: javap doesn't print new flag bits - S6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table - S6305779: javap: support annotations - S6439940: Clean up javap implementation - S6469569: wrong check of searchpath in JavapEnvironment - S6474890: javap does not open .zip files in -classpath - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) - S6587786: Javap throws error : "ERROR:Could not find " for JRE classes - S6622215: javap ignores certain relevant access flags - S6622216: javap names some attributes incorrectly - S6622232: javap gets whitespace confused - S6622260: javap prints negative bytes incorrectly in hex - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll - S6636331: ConcurrentModificationException in AppContext code - S6636370: minor corrections and simplification of code in AppContext - S6708729: update jdk Makefiles for new javap - S6715767: javap on java.lang.ClassLoader crashes - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 - S6793818: JpegImageReader is too greedy creating color profiles - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 - S6819246: improve support for decoding instructions in classfile library - S6824493: experimental support for additional info for instructions - S6840152: JVM crashes when heavyweight monitors are used - S6841419: classfile: add constant pool iterator - S6841420: classfile: add new methods to ConstantClassInfo - S6843013: missing files in fix for 6824493 - S6852856: javap changes to facilitate subclassing javap for variants - S6867671: javap whitespace formatting issues - S6868539: javap should use current names for constant pool tags - S6888215: memory leak in jpeg plugin - S6902264: fix indentation of tableswitch and lookupswitch - S6925851: Localize JRE into pt_BR - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build - S6989760: cmm native compiler warnings - S6989774: imageio compiler warnings in native code - S7000225: Sanity check on sane-alsa-headers is broken - S7013519: [parfait] Integer overflows in 2D code - S7018912: [parfait] potential buffer overruns in imageio jpeg - S7022999: Can't build with FORCE_TIERED=0 - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber - S7146431: java.security files out-of-sync - S7196533: TimeZone.getDefault() slow due to synchronization bottleneck - S8000450: Restrict access to com/sun/corba/se/impl package - S8002070: Remove the stack search for a resource bundle for Logger to use - S8003992: File and other classes in java.io do not handle embedded nulls properly - S8004188: Rename src/share/lib/security/java.security to java.security-linux - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() - S8006882: Proxy generated classes in sun.proxy package breaks JMockit - S8010118: Annotate jdk caller sensitive methods with @sun.reflect.CallerSensitive - S8010727: WLS fails to add a logger with "" in its own LogManager subclass instance - S8010939: Deadlock in LogManager - S8011139: (reflect) Revise checking in getEnclosingClass - S8011950: java.io.File.createTempFile enters infinite loop when passed invalid data - S8011990: TEST_BUG: java/util/logging/bundlesearch/ResourceBundleSearchTest.java fails on Windows - S8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21 - S8012453: (process) Runtime.exec(String) fails if command contains spaces [win] - S8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer - S8013380: Removal of stack walk to find resource bundle breaks Glassfish startup - S8013827: File.createTempFile hangs with temp file starting with 'com1.4' - S8014469: (tz) Support tzdata2013c - S8014718: Netbeans IDE begins to throw a lot exceptions since 7u25 b10 - S8014745: Provide a switch to allow stack walk search of resource bundle - S8015144: Performance regression in ICU OpenType Layout library - S8015965: (process) Typo in name of property to allow ambiguous commands - S8015978: Incorrect transformation of XPath expression "string(-0)" - S8016357: Update hotspot diagnostic class - S8017566: Backout 8000450 - Cannot access to com.sun.corba.se.impl.orb.ORBImpl - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes - S8019979: Replace CheckPackageAccess test with better one from closed repo - S8020054: (tz) Support tzdata2013d - S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 - S8021933: Add extra check for fix # JDK-8014530 - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. - S8022661: InetAddress.writeObject() performs flush() on object output stream - S8022682: Supporting XOM - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp - S8025128: File.createTempFile fails if prefix is absolute path - S8025255: (tz) Support tzdata2013g - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 - OJ20: Resolve merge issues with JAXP security fixes - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes * Bug fixes - PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. - RH995488: Java thinks that the default timezone is Busingen instead of Zurich - D729448: 32-bit alignment on mips and mipsel The tarball can be downloaded from: http://icedtea.classpath.org/download/source/icedtea6-1.12.7.tar.gz or: http://icedtea.classpath.org/download/source/icedtea6-1.12.7.tar.xz We provide both gzip and xz tarballs, so that those who are able to make use of the smaller tarball produced by xz may do so. The tarballs are accompanied by digital signatures available at: http://icedtea.classpath.org/download/source/icedtea6-1.12.7.tar.gz.sig http://icedtea.classpath.org/download/source/icedtea6-1.12.7.tar.xz.sig These are produced using my public key. See details below. PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 SHA256 checksums: 081b288b3141f5ec87c77ea47fc541825fd02e9e03fcbb30bbe70b007f2a648e icedtea6-1.12.7.tar.gz e96ed6e04ec84ddfdb5833e1632c2a4989684f6c43614646baabf26dbd721b71 icedtea6-1.12.7.tar.gz.sig 56e180666f9c6a38aa725033b60bbdf5bf4f652ad9f6876eedc56a27497158a8 icedtea6-1.12.7.tar.xz 0051bc9eb39ad7b3e932f14d0b2cc3b6fc0b70ccff0b152067094e670c1eaf0c icedtea6-1.12.7.tar.xz.sig The following people helped with these releases: Andrew Hughes (all backports and fixes except those below & release management) Omair Majid (initial version of RH995488) Xerxes R?nby (PR1188 ARM fix) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.12.7.tar.gz or: $ tar x -I xz -f icedtea6-1.12.7.tar.xz then: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea6-1.12.7/configure $ make Full build requirements and instructions are available in the INSTALL file. Happy hacking! -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131122/180f3a93/attachment.bin From andrew at icedtea.classpath.org Thu Nov 21 20:17:56 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 22 Nov 2013 04:17:56 +0000 Subject: /hg/release/icedtea6-1.12: 8 new changesets Message-ID: changeset 4c400be792d3 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=4c400be792d3 author: Andrew John Hughes date: Wed Nov 20 17:49:21 2013 +0000 Add missing backport entries to NEWS. 2013-09-02 Andrew John Hughes * NEWS: Add missing backport entries. changeset 908f1fb82dd8 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=908f1fb82dd8 author: Andrew John Hughes date: Fri Sep 06 12:19:02 2013 +0100 RH995488: Java thinks that the default timezone is Busingen instead of Zurich 2013-09-05 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/rh995488-rhel_tz_fix.patch: Use /etc/sysconfig/clock on RHEL & clones so that they don't search /usr/share/zoneinfo. * NEWS: Mention patch. changeset b1c024eed215 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=b1c024eed215 author: Andrew John Hughes date: Fri Sep 06 23:33:32 2013 +0100 Credit Omair for original version of RH995488. 2013-09-06 Andrew John Hughes * ChangeLog: Credit Omair for original version of RH995488 patch. changeset dfef77966f7c in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=dfef77966f7c author: Andrew John Hughes date: Wed Nov 20 22:56:43 2013 +0000 Add 2013/10/15 security fixes. 2013-10-29 Andrew John Hughes * Makefile.am: (SECURITY_PATCHES): Add security update. * NEWS: Updated. * patches/jtreg-LastErrorString.patch, * patches/use-idx_t.patch, * patches/openjdk/7162902-corba_fixes.patch, * patches/openjdk/7196533-timezone_bottleneck.patch, * patches/openjdk/8010727-empty_logger_name.patch, * patches/openjdk/8010939-logmanager_deadlock.patch, * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, * patches/openjdk/8014718-remove_logging_suntoolkit.patch: Regenerated. * patches/nss-config.patch: Fix path to java.security. * patches/openjdk/4075303-javap_update.patch, * patches/openjdk/4111861-static_fields.patch, * patches/openjdk/4501661-disallow_mixing.patch, * patches/openjdk/4884240-javap_additional_option.patch, * patches/openjdk/6708729-javap_makefile_update.patch, * patches/openjdk/6715767-javap_crash.patch, * patches/openjdk/6819246-javap_instruction_decoding.patch, * patches/openjdk/6824493-experimental.patch, * patches/openjdk/6841419-classfile_iterator.patch, * patches/openjdk/6841420-classfile_methods.patch, * patches/openjdk/6843013-missing_experimental.patch, * patches/openjdk/6852856-javap_subclasses.patch, * patches/openjdk/6867671-javap_whitespace.patch, * patches/openjdk/6868539-constant_pool_tags.patch, * patches/openjdk/6902264-fix_indentation.patch, * patches/openjdk/6954275-big_xml_signatures.patch, * patches/openjdk/7146431-java.security_files.patch, * patches/openjdk/8000450-restrict_access.patch, * patches/openjdk/8002070-remove_logger_stack_search.patch, * patches/openjdk/8003992-embedded_nulls.patch, * patches/openjdk/8004188-rename_java.security.patch, * patches/openjdk/8006882-jmockit.patch, * patches/openjdk/8006900-new_date_time.patch, * patches/openjdk/8008589-better_mbean_permission_validation.patch, * patches/openjdk/8010118-caller_sensitive.patch, * patches/openjdk/8011071-better_crypto_provider_handling.patch, * patches/openjdk/8011081-improve_jhat.patch, * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, * patches/openjdk/8011157-improve_corba_portability-jdk.patch, * patches/openjdk/8011157-improve_corba_portability.patch, * patches/openjdk/8011990-logger_test_urls.patch, * patches/openjdk/8012071-better_bean_building.patch, * patches/openjdk/8012147-improve_tool.patch, * patches/openjdk/8012243-serial_regression.patch, * patches/openjdk/8012277-improve_dataflavour.patch, * patches/openjdk/8012425-transform_transformfactory.patch, * patches/openjdk/8012453-runtime.exec.patch, * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, * patches/openjdk/8013503-improve_stream_factories.patch, * patches/openjdk/8013506-better_pack200.patch, * patches/openjdk/8013510-augment_image_writing.patch, * patches/openjdk/8013514-improve_cmap_stability.patch, * patches/openjdk/8013739-better_ldap_resource_management.patch, * patches/openjdk/8013744-better_tabling.patch, * patches/openjdk/8013827-createtempfile_hang.patch, * patches/openjdk/8014085-better_serialization.patch, * patches/openjdk/8014093-improve_image_parsing.patch, * patches/openjdk/8014102-improve_image_conversion.patch, * patches/openjdk/8014341-better_kerberos_service.patch, * patches/openjdk/8014349-getdeclaredclass_fix.patch, * patches/openjdk/8014530-better_dsp.patch, * patches/openjdk/8014534-better_profiling.patch, * patches/openjdk/8014745-logger_stack_walk_switch.patch, * patches/openjdk/8014987-augment_serialization.patch, * patches/openjdk/8015144-performance_regression.patch, * patches/openjdk/8015614-update_build.patch, * patches/openjdk/8015731-auth_improvements.patch, * patches/openjdk/8015743-address_internet_addresses.patch, * patches/openjdk/8015965-typo_in_property_name.patch, * patches/openjdk/8015978-incorrect_transformation.patch, * patches/openjdk/8016256-finalization_final.patch, * patches/openjdk/8016357-update_hs_diagnostic_class.patch, * patches/openjdk/8016653-ignoreable_characters.patch, * patches/openjdk/8016675-robust_javadoc.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, * patches/openjdk/8017287-better_resource_disposal.patch, * patches/openjdk/8017291-cast_proxies_aside.patch, * patches/openjdk/8017298-better_xml_support.patch, * patches/openjdk/8017300-improve_interface_implementation.patch, * patches/openjdk/8017505-better_client_service.patch, * patches/openjdk/8017566-backout_part_of_8000450.patch, * patches/openjdk/8019292-better_attribute_value_exceptions.patch, * patches/openjdk/8019584-invalid_notification_fix.patch, * patches/openjdk/8019617-better_view_of_objects.patch, * patches/openjdk/8019969-inet6_test_case_fix.patch, * patches/openjdk/8019979-better_access_test.patch, * patches/openjdk/8020293-jvm_crash.patch, * patches/openjdk/8021290-signature_validation.patch, * patches/openjdk/8021355-splashscreen_regression.patch, * patches/openjdk/8021366-jaxp_test_fix-01.patch, * patches/openjdk/8021577-bean_serialization_fix.patch, * patches/openjdk/8021933-jaxp_test_fix-02.patch, * patches/openjdk/8021969-jnlp_load_failure.patch, * patches/openjdk/8022661-writeobject_flush.patch, * patches/openjdk/8022682-supporting_xom.patch, * patches/openjdk/8022940-enhance_corba_translations.patch, * patches/openjdk/8023683-enhance_class_file_parsing.patch, * patches/openjdk/8023964-ignore_test.patch, * patches/openjdk/8024914-swapped_usage.patch, * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, * patches/openjdk/oj6-20-merge.patch, * patches/openjdk/oj6-21-overrides.patch: Added. changeset 115e96db9364 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=115e96db9364 author: Andrew John Hughes date: Thu Nov 21 15:40:13 2013 +0000 S8025255: (tz) Support tzdata2013g S6925851: Localize JRE into pt_BR S7035073: Add missing timezones to TimeZoneNames_pt_BR.java 2013-11-08 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * NEWS: Updated. * patches/openjdk/6925851-pt_br.patch: Added. * patches/openjdk/7017800-tzdata2011b.patch, * patches/openjdk/7027387-tzdata2011d.patch: Updated with pt_BR changes. * patches/openjdk/7035073-missing_pt_br_timezones.patch: Added. * patches/openjdk/7090843-tzdata2011j.patch, * patches/openjdk/7103108-tzdata2011l.patch, * patches/openjdk/7103405-correct_display_names.patch, * patches/openjdk/7158483-tzdata2012c.patch, * patches/openjdk/8009987-tzdata2013b.patch: Updated with pt_BR changes. * patches/openjdk/8025255-tzdata2013g.patch: Added. changeset 7e24ac073f74 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=7e24ac073f74 author: Andrew John Hughes date: Thu Nov 21 15:42:19 2013 +0000 Prepare for 1.12.7 release. 2013-11-21 Andrew John Hughes * configure.ac: Bump to 1.12.7. * NEWS: Set release date. changeset b5e91d3c0ef2 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=b5e91d3c0ef2 author: Andrew John Hughes date: Thu Nov 21 18:46:05 2013 +0000 D729448: 32-bit alignment on mips and mipsel 2013-11-21 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/d729448-32_bit_alignment.patch: Fix alignment on mips and mipsel. * NEWS: Updated. changeset 79c53dffb227 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=79c53dffb227 author: Andrew John Hughes date: Fri Nov 22 04:17:33 2013 +0000 Added tag icedtea-1.12.7 for changeset b5e91d3c0ef2 diffstat: .hgtags | 1 + ChangeLog | 162 + Makefile.am | 113 +- NEWS | 128 +- configure.ac | 2 +- patches/d729448-32_bit_alignment.patch | 47 + patches/jtreg-LastErrorString.patch | 31 +- patches/nss-config.patch | 2 +- patches/openjdk/4075303-javap_update.patch | 12081 ++++++++++ patches/openjdk/4111861-static_fields.patch | 280 + patches/openjdk/4501661-disallow_mixing.patch | 222 + patches/openjdk/4884240-javap_additional_option.patch | 288 + patches/openjdk/6708729-javap_makefile_update.patch | 59 + patches/openjdk/6715767-javap_crash.patch | 135 + patches/openjdk/6819246-javap_instruction_decoding.patch | 2065 + patches/openjdk/6824493-experimental.patch | 1304 + patches/openjdk/6841419-classfile_iterator.patch | 142 + patches/openjdk/6841420-classfile_methods.patch | 34 + patches/openjdk/6843013-missing_experimental.patch | 334 + patches/openjdk/6852856-javap_subclasses.patch | 508 + patches/openjdk/6867671-javap_whitespace.patch | 1041 + patches/openjdk/6868539-constant_pool_tags.patch | 163 + patches/openjdk/6902264-fix_indentation.patch | 159 + patches/openjdk/6925851-pt_br.patch | 3651 +++ patches/openjdk/6954275-big_xml_signatures.patch | 194 + patches/openjdk/7017800-tzdata2011b.patch | 11 + patches/openjdk/7027387-tzdata2011d.patch | 20 + patches/openjdk/7035073-missing_pt_br_timezones.patch | 1644 + patches/openjdk/7090843-tzdata2011j.patch | 53 + patches/openjdk/7103108-tzdata2011l.patch | 67 + patches/openjdk/7103405-correct_display_names.patch | 12 + patches/openjdk/7146431-java.security_files.patch | 82 + patches/openjdk/7158483-tzdata2012c.patch | 46 + patches/openjdk/7162902-corba_fixes.patch | 189 +- patches/openjdk/7196533-timezone_bottleneck.patch | 15 +- patches/openjdk/8000450-restrict_access.patch | 108 + patches/openjdk/8002070-remove_logger_stack_search.patch | 658 + patches/openjdk/8003992-embedded_nulls.patch | 1026 + patches/openjdk/8004188-rename_java.security.patch | 652 + patches/openjdk/8006882-jmockit.patch | 90 + patches/openjdk/8006900-new_date_time.patch | 115 + patches/openjdk/8008589-better_mbean_permission_validation.patch | 61 + patches/openjdk/8009987-tzdata2013b.patch | 110 + patches/openjdk/8010118-caller_sensitive.patch | 2981 ++ patches/openjdk/8010727-empty_logger_name.patch | 18 +- patches/openjdk/8010939-logmanager_deadlock.patch | 22 +- patches/openjdk/8011071-better_crypto_provider_handling.patch | 287 + patches/openjdk/8011081-improve_jhat.patch | 267 + patches/openjdk/8011139-revise_checking_getenclosingclass.patch | 58 + patches/openjdk/8011157-improve_corba_portability-jdk.patch | 125 + patches/openjdk/8011157-improve_corba_portability.patch | 183 + patches/openjdk/8011990-logger_test_urls.patch | 58 + patches/openjdk/8012071-better_bean_building.patch | 87 + patches/openjdk/8012147-improve_tool.patch | 67 + patches/openjdk/8012243-serial_regression.patch | 45 + patches/openjdk/8012277-improve_dataflavour.patch | 83 + patches/openjdk/8012425-transform_transformfactory.patch | 380 + patches/openjdk/8012453-runtime.exec.patch | 383 + patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch | 131 +- patches/openjdk/8013380-logger_stack_walk_glassfish.patch | 941 + patches/openjdk/8013503-improve_stream_factories.patch | 224 + patches/openjdk/8013506-better_pack200.patch | 39 + patches/openjdk/8013510-augment_image_writing.patch | 57 + patches/openjdk/8013514-improve_cmap_stability.patch | 51 + patches/openjdk/8013739-better_ldap_resource_management.patch | 148 + patches/openjdk/8013744-better_tabling.patch | 196 + patches/openjdk/8013827-createtempfile_hang.patch | 176 + patches/openjdk/8014085-better_serialization.patch | 412 + patches/openjdk/8014093-improve_image_parsing.patch | 719 + patches/openjdk/8014102-improve_image_conversion.patch | 190 + patches/openjdk/8014341-better_kerberos_service.patch | 66 + patches/openjdk/8014349-getdeclaredclass_fix.patch | 43 + patches/openjdk/8014530-better_dsp.patch | 3121 ++ patches/openjdk/8014534-better_profiling.patch | 156 + patches/openjdk/8014718-remove_logging_suntoolkit.patch | 47 +- patches/openjdk/8014745-logger_stack_walk_switch.patch | 205 + patches/openjdk/8014987-augment_serialization.patch | 100 + patches/openjdk/8015144-performance_regression.patch | 273 + patches/openjdk/8015614-update_build.patch | 41 + patches/openjdk/8015731-auth_improvements.patch | 28 + patches/openjdk/8015743-address_internet_addresses.patch | 1290 + patches/openjdk/8015965-typo_in_property_name.patch | 42 + patches/openjdk/8015978-incorrect_transformation.patch | 22 + patches/openjdk/8016256-finalization_final.patch | 24 + patches/openjdk/8016357-update_hs_diagnostic_class.patch | 71 + patches/openjdk/8016653-ignoreable_characters.patch | 101 + patches/openjdk/8016675-robust_javadoc.patch | 75 + patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch | 107 + patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch | 94 + patches/openjdk/8017287-better_resource_disposal.patch | 22 + patches/openjdk/8017291-cast_proxies_aside.patch | 34 + patches/openjdk/8017298-better_xml_support.patch | 999 + patches/openjdk/8017300-improve_interface_implementation.patch | 129 + patches/openjdk/8017505-better_client_service.patch | 560 + patches/openjdk/8017566-backout_part_of_8000450.patch | 77 + patches/openjdk/8019292-better_attribute_value_exceptions.patch | 57 + patches/openjdk/8019584-invalid_notification_fix.patch | 69 + patches/openjdk/8019617-better_view_of_objects.patch | 68 + patches/openjdk/8019969-inet6_test_case_fix.patch | 33 + patches/openjdk/8019979-better_access_test.patch | 154 + patches/openjdk/8020293-jvm_crash.patch | 40 + patches/openjdk/8021290-signature_validation.patch | 55 + patches/openjdk/8021355-splashscreen_regression.patch | 53 + patches/openjdk/8021366-jaxp_test_fix-01.patch | 21 + patches/openjdk/8021577-bean_serialization_fix.patch | 25 + patches/openjdk/8021933-jaxp_test_fix-02.patch | 33 + patches/openjdk/8021969-jnlp_load_failure.patch | 25 + patches/openjdk/8022661-writeobject_flush.patch | 20 + patches/openjdk/8022682-supporting_xom.patch | 250 + patches/openjdk/8022940-enhance_corba_translations.patch | 41 + patches/openjdk/8023683-enhance_class_file_parsing.patch | 35 + patches/openjdk/8023964-ignore_test.patch | 29 + patches/openjdk/8024914-swapped_usage.patch | 58 + patches/openjdk/8025128-createtempfile_absolute_prefix.patch | 139 + patches/openjdk/8025255-tzdata2013g.patch | 3976 +++ patches/openjdk/oj6-19-fix_8010118_test_cases.patch | 499 + patches/openjdk/oj6-20-merge.patch | 599 + patches/openjdk/oj6-21-overrides.patch | 20 + patches/rh995488-rhel_tz_fix.patch | 77 + patches/use-idx_t.patch | 81 +- 120 files changed, 50353 insertions(+), 264 deletions(-) diffs (truncated from 52075 to 500 lines): diff -r 362263fcff48 -r 79c53dffb227 .hgtags --- a/.hgtags Wed Nov 20 15:44:52 2013 +0000 +++ b/.hgtags Fri Nov 22 04:17:33 2013 +0000 @@ -29,3 +29,4 @@ 5e17710282ddf2938993ae2077028cff3786c048 icedtea6-1.12.4 d66e262a38085bde02921a6c8001b5f7c144600c icedtea6-1.12.5 72801116cb84cf2c644e3bc273ec810597de29ea icedtea6-1.12.6 +b5e91d3c0ef207e538b4743d48af53a4cd8b3d03 icedtea-1.12.7 diff -r 362263fcff48 -r 79c53dffb227 ChangeLog --- a/ChangeLog Wed Nov 20 15:44:52 2013 +0000 +++ b/ChangeLog Fri Nov 22 04:17:33 2013 +0000 @@ -1,3 +1,165 @@ +2013-11-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/d729448-32_bit_alignment.patch: + Fix alignment on mips and mipsel. + * NEWS: Updated. + +2013-11-21 Andrew John Hughes + + * configure.ac: Bump to 1.12.7. + * NEWS: Set release date. + +2013-11-08 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patches. + * NEWS: Updated. + * patches/openjdk/6925851-pt_br.patch: Added. + * patches/openjdk/7017800-tzdata2011b.patch, + * patches/openjdk/7027387-tzdata2011d.patch: + Updated with pt_BR changes. + * patches/openjdk/7035073-missing_pt_br_timezones.patch: + Added. + * patches/openjdk/7090843-tzdata2011j.patch, + * patches/openjdk/7103108-tzdata2011l.patch, + * patches/openjdk/7103405-correct_display_names.patch, + * patches/openjdk/7158483-tzdata2012c.patch, + * patches/openjdk/8009987-tzdata2013b.patch: + Updated with pt_BR changes. + * patches/openjdk/8025255-tzdata2013g.patch: + Added. + +2013-10-29 Andrew John Hughes + + * Makefile.am: + (SECURITY_PATCHES): Add security update. + * NEWS: Updated. + * patches/jtreg-LastErrorString.patch, + * patches/use-idx_t.patch, + * patches/openjdk/7162902-corba_fixes.patch, + * patches/openjdk/7196533-timezone_bottleneck.patch, + * patches/openjdk/8010727-empty_logger_name.patch, + * patches/openjdk/8010939-logmanager_deadlock.patch, + * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, + * patches/openjdk/8014718-remove_logging_suntoolkit.patch: + Regenerated. + * patches/nss-config.patch: Fix path to java.security. + * patches/openjdk/4075303-javap_update.patch, + * patches/openjdk/4111861-static_fields.patch, + * patches/openjdk/4501661-disallow_mixing.patch, + * patches/openjdk/4884240-javap_additional_option.patch, + * patches/openjdk/6708729-javap_makefile_update.patch, + * patches/openjdk/6715767-javap_crash.patch, + * patches/openjdk/6819246-javap_instruction_decoding.patch, + * patches/openjdk/6824493-experimental.patch, + * patches/openjdk/6841419-classfile_iterator.patch, + * patches/openjdk/6841420-classfile_methods.patch, + * patches/openjdk/6843013-missing_experimental.patch, + * patches/openjdk/6852856-javap_subclasses.patch, + * patches/openjdk/6867671-javap_whitespace.patch, + * patches/openjdk/6868539-constant_pool_tags.patch, + * patches/openjdk/6902264-fix_indentation.patch, + * patches/openjdk/6954275-big_xml_signatures.patch, + * patches/openjdk/7146431-java.security_files.patch, + * patches/openjdk/8000450-restrict_access.patch, + * patches/openjdk/8002070-remove_logger_stack_search.patch, + * patches/openjdk/8003992-embedded_nulls.patch, + * patches/openjdk/8004188-rename_java.security.patch, + * patches/openjdk/8006882-jmockit.patch, + * patches/openjdk/8006900-new_date_time.patch, + * patches/openjdk/8008589-better_mbean_permission_validation.patch, + * patches/openjdk/8010118-caller_sensitive.patch, + * patches/openjdk/8011071-better_crypto_provider_handling.patch, + * patches/openjdk/8011081-improve_jhat.patch, + * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, + * patches/openjdk/8011157-improve_corba_portability-jdk.patch, + * patches/openjdk/8011157-improve_corba_portability.patch, + * patches/openjdk/8011990-logger_test_urls.patch, + * patches/openjdk/8012071-better_bean_building.patch, + * patches/openjdk/8012147-improve_tool.patch, + * patches/openjdk/8012243-serial_regression.patch, + * patches/openjdk/8012277-improve_dataflavour.patch, + * patches/openjdk/8012425-transform_transformfactory.patch, + * patches/openjdk/8012453-runtime.exec.patch, + * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, + * patches/openjdk/8013503-improve_stream_factories.patch, + * patches/openjdk/8013506-better_pack200.patch, + * patches/openjdk/8013510-augment_image_writing.patch, + * patches/openjdk/8013514-improve_cmap_stability.patch, + * patches/openjdk/8013739-better_ldap_resource_management.patch, + * patches/openjdk/8013744-better_tabling.patch, + * patches/openjdk/8013827-createtempfile_hang.patch, + * patches/openjdk/8014085-better_serialization.patch, + * patches/openjdk/8014093-improve_image_parsing.patch, + * patches/openjdk/8014102-improve_image_conversion.patch, + * patches/openjdk/8014341-better_kerberos_service.patch, + * patches/openjdk/8014349-getdeclaredclass_fix.patch, + * patches/openjdk/8014530-better_dsp.patch, + * patches/openjdk/8014534-better_profiling.patch, + * patches/openjdk/8014745-logger_stack_walk_switch.patch, + * patches/openjdk/8014987-augment_serialization.patch, + * patches/openjdk/8015144-performance_regression.patch, + * patches/openjdk/8015614-update_build.patch, + * patches/openjdk/8015731-auth_improvements.patch, + * patches/openjdk/8015743-address_internet_addresses.patch, + * patches/openjdk/8015965-typo_in_property_name.patch, + * patches/openjdk/8015978-incorrect_transformation.patch, + * patches/openjdk/8016256-finalization_final.patch, + * patches/openjdk/8016357-update_hs_diagnostic_class.patch, + * patches/openjdk/8016653-ignoreable_characters.patch, + * patches/openjdk/8016675-robust_javadoc.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, + * patches/openjdk/8017287-better_resource_disposal.patch, + * patches/openjdk/8017291-cast_proxies_aside.patch, + * patches/openjdk/8017298-better_xml_support.patch, + * patches/openjdk/8017300-improve_interface_implementation.patch, + * patches/openjdk/8017505-better_client_service.patch, + * patches/openjdk/8017566-backout_part_of_8000450.patch, + * patches/openjdk/8019292-better_attribute_value_exceptions.patch, + * patches/openjdk/8019584-invalid_notification_fix.patch, + * patches/openjdk/8019617-better_view_of_objects.patch, + * patches/openjdk/8019969-inet6_test_case_fix.patch, + * patches/openjdk/8019979-better_access_test.patch, + * patches/openjdk/8020293-jvm_crash.patch, + * patches/openjdk/8021290-signature_validation.patch, + * patches/openjdk/8021355-splashscreen_regression.patch, + * patches/openjdk/8021366-jaxp_test_fix-01.patch, + * patches/openjdk/8021577-bean_serialization_fix.patch, + * patches/openjdk/8021933-jaxp_test_fix-02.patch, + * patches/openjdk/8021969-jnlp_load_failure.patch, + * patches/openjdk/8022661-writeobject_flush.patch, + * patches/openjdk/8022682-supporting_xom.patch, + * patches/openjdk/8022940-enhance_corba_translations.patch, + * patches/openjdk/8023683-enhance_class_file_parsing.patch, + * patches/openjdk/8023964-ignore_test.patch, + * patches/openjdk/8024914-swapped_usage.patch, + * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, + * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, + * patches/openjdk/oj6-20-merge.patch, + * patches/openjdk/oj6-21-overrides.patch: Added. + +2013-09-06 Andrew John Hughes + + * ChangeLog: Credit Omair for original + version of RH995488 patch. + +2013-09-05 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/rh995488-rhel_tz_fix.patch: + Use /etc/sysconfig/clock on RHEL & clones + so that they don't search /usr/share/zoneinfo. + Main part of patch originally by Omair Majid. + * NEWS: Mention patch. + +2013-09-02 Andrew John Hughes + + * NEWS: Add missing backport entries. + 2013-09-02 Andrew John Hughes * Makefile.am: diff -r 362263fcff48 -r 79c53dffb227 Makefile.am --- a/Makefile.am Wed Nov 20 15:44:52 2013 +0000 +++ b/Makefile.am Fri Nov 22 04:17:33 2013 +0000 @@ -436,7 +436,106 @@ patches/security/20130618/langtools_merge-01.patch \ patches/security/20130618/langtools_merge-02.patch \ patches/security/20130618/langtools_generics.patch \ - patches/security/20130618/langtools_merge-03.patch + patches/security/20130618/langtools_merge-03.patch \ + patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch \ + patches/openjdk/8011157-improve_corba_portability.patch \ + patches/openjdk/8022940-enhance_corba_translations.patch \ + patches/openjdk/8013503-improve_stream_factories.patch \ + patches/openjdk/8012425-transform_transformfactory.patch \ + patches/openjdk/8017298-better_xml_support.patch \ + patches/openjdk/8014530-better_dsp.patch \ + patches/openjdk/8021366-jaxp_test_fix-01.patch \ + patches/openjdk/8021933-jaxp_test_fix-02.patch \ + patches/openjdk/8022682-supporting_xom.patch \ + patches/openjdk/8015978-incorrect_transformation.patch \ + patches/openjdk/oj6-20-merge.patch \ + patches/openjdk/8024914-swapped_usage.patch \ + patches/openjdk/8017505-better_client_service.patch \ + patches/openjdk/8015614-update_build.patch \ + patches/openjdk/8016256-finalization_final.patch \ + patches/openjdk/8023683-enhance_class_file_parsing.patch \ + patches/openjdk/4075303-javap_update.patch \ + patches/openjdk/6819246-javap_instruction_decoding.patch \ + patches/openjdk/6715767-javap_crash.patch \ + patches/openjdk/6841420-classfile_methods.patch \ + patches/openjdk/6841419-classfile_iterator.patch \ + patches/openjdk/4111861-static_fields.patch \ + patches/openjdk/4884240-javap_additional_option.patch \ + patches/openjdk/6852856-javap_subclasses.patch \ + patches/openjdk/6867671-javap_whitespace.patch \ + patches/openjdk/6868539-constant_pool_tags.patch \ + patches/openjdk/4501661-disallow_mixing.patch \ + patches/openjdk/6824493-experimental.patch \ + patches/openjdk/6843013-missing_experimental.patch \ + patches/openjdk/6902264-fix_indentation.patch \ + patches/openjdk/8016675-robust_javadoc.patch \ + patches/openjdk/8016653-ignoreable_characters.patch \ + patches/openjdk/7196533-timezone_bottleneck.patch \ + patches/openjdk/8006900-new_date_time.patch \ + patches/openjdk/8008589-better_mbean_permission_validation.patch \ + patches/openjdk/8011071-better_crypto_provider_handling.patch \ + patches/openjdk/8011081-improve_jhat.patch \ + patches/openjdk/8011157-improve_corba_portability-jdk.patch \ + patches/openjdk/8012071-better_bean_building.patch \ + patches/openjdk/8012147-improve_tool.patch \ + patches/openjdk/8012277-improve_dataflavour.patch \ + patches/openjdk/8013506-better_pack200.patch \ + patches/openjdk/8013510-augment_image_writing.patch \ + patches/openjdk/8013514-improve_cmap_stability.patch \ + patches/openjdk/8013744-better_tabling.patch \ + patches/openjdk/8014085-better_serialization.patch \ + patches/openjdk/8014093-improve_image_parsing.patch \ + patches/openjdk/8014102-improve_image_conversion.patch \ + patches/openjdk/8014341-better_kerberos_service.patch \ + patches/openjdk/8014534-better_profiling.patch \ + patches/openjdk/8014987-augment_serialization.patch \ + patches/openjdk/8015731-auth_improvements.patch \ + patches/openjdk/8015743-address_internet_addresses.patch \ + patches/openjdk/8016357-update_hs_diagnostic_class.patch \ + patches/openjdk/8002070-remove_logger_stack_search.patch \ + patches/openjdk/6708729-javap_makefile_update.patch \ + patches/openjdk/8010118-caller_sensitive.patch \ + patches/openjdk/oj6-19-fix_8010118_test_cases.patch \ + patches/openjdk/8010727-empty_logger_name.patch \ + patches/openjdk/8010939-logmanager_deadlock.patch \ + patches/openjdk/8011990-logger_test_urls.patch \ + patches/openjdk/8013380-logger_stack_walk_glassfish.patch \ + patches/openjdk/8014745-logger_stack_walk_switch.patch \ + patches/openjdk/8012243-serial_regression.patch \ + patches/openjdk/8014718-remove_logging_suntoolkit.patch \ + patches/openjdk/8011139-revise_checking_getenclosingclass.patch \ + patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch \ + patches/openjdk/8017287-better_resource_disposal.patch \ + patches/openjdk/8017291-cast_proxies_aside.patch \ + patches/openjdk/7146431-java.security_files.patch \ + patches/openjdk/8006882-jmockit.patch \ + patches/openjdk/8000450-restrict_access.patch \ + patches/openjdk/8019979-better_access_test.patch \ + patches/openjdk/8004188-rename_java.security.patch \ + patches/openjdk/8017566-backout_part_of_8000450.patch \ + patches/openjdk/8017300-improve_interface_implementation.patch \ + patches/openjdk/8019292-better_attribute_value_exceptions.patch \ + patches/openjdk/8019617-better_view_of_objects.patch \ + patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch \ + patches/openjdk/8020293-jvm_crash.patch \ + patches/openjdk/8013739-better_ldap_resource_management.patch \ + patches/openjdk/8014349-getdeclaredclass_fix.patch \ + patches/openjdk/6954275-big_xml_signatures.patch \ + patches/openjdk/8021290-signature_validation.patch \ + patches/openjdk/8012453-runtime.exec.patch \ + patches/openjdk/8015965-typo_in_property_name.patch \ + patches/openjdk/8015144-performance_regression.patch \ + patches/openjdk/8019969-inet6_test_case_fix.patch \ + patches/openjdk/8019584-invalid_notification_fix.patch \ + patches/openjdk/8021577-bean_serialization_fix.patch \ + patches/openjdk/8021969-jnlp_load_failure.patch \ + patches/openjdk/8021355-splashscreen_regression.patch \ + patches/openjdk/8022661-writeobject_flush.patch \ + patches/openjdk/8023964-ignore_test.patch \ + patches/openjdk/8003992-embedded_nulls.patch \ + patches/openjdk/8013827-createtempfile_hang.patch \ + patches/openjdk/8025128-createtempfile_absolute_prefix.patch \ + patches/openjdk/oj6-21-overrides.patch SPECIAL_SECURITY_PATCH_1 = patches/security/20120214/7112642.patch SPECIAL_SECURITY_PATCH_2 = patches/security/20130618/8009071-improve_shape_handling.patch @@ -689,21 +788,19 @@ patches/openjdk/8011154-awt_regression.patch \ patches/openjdk/8011992-MlibOpsTest_failed.patch \ patches/openjdk/8012112-MlibOpsTest_fails.patch \ - patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch \ patches/openjdk/8012933-appcontext_disposed_too_early.patch \ patches/openjdk/8013196-timezone_getdefault_throws_exception.patch \ patches/openjdk/8014427-raster_regression.patch \ - patches/openjdk/8010727-empty_logger_name.patch \ - patches/openjdk/8010939-logmanager_deadlock.patch \ - patches/openjdk/8014718-remove_logging_suntoolkit.patch \ patches/openjdk/8009996-emitter_bean.patch \ patches/openjdk/6541350-tz_display_names_l10n.patch \ patches/openjdk/6821191-tz_display_names_l10n.patch \ + patches/openjdk/6925851-pt_br.patch \ patches/openjdk/6977550-tzdata2010l.patch \ patches/openjdk/6996686-tzdata2010o.patch \ patches/openjdk/7017800-tzdata2011b.patch \ patches/openjdk/7027387-tzdata2011d.patch \ patches/openjdk/7033174-tzdata2011e.patch \ + patches/openjdk/7035073-missing_pt_br_timezones.patch \ patches/openjdk/7039469-tzdata2011g.patch \ patches/openjdk/7090843-tzdata2011j.patch \ patches/openjdk/7103108-tzdata2011l.patch \ @@ -714,7 +811,6 @@ patches/openjdk/8002225-tzdata2012i.patch \ patches/openjdk/8009987-tzdata2013b.patch \ patches/openjdk/6893617-cnctx_always_uses_default_orb.patch \ - patches/openjdk/7196533-timezone_bottleneck.patch \ patches/openjdk/6636370-appcontext_simplification.patch \ patches/openjdk/6636331-appcontext_concurrentmodificationexception.patch \ patches/openjdk/8014469-tzdata2013c.patch \ @@ -732,7 +828,10 @@ patches/openjdk/6980281-majorver_for_solaris.patch \ patches/openjdk/7000225-bad_tabs.patch \ patches/openjdk/7038711-fix_no-clobber_usage.patch \ - patches/disable-cc-incompatible-sanity-checks.patch + patches/disable-cc-incompatible-sanity-checks.patch \ + patches/rh995488-rhel_tz_fix.patch \ + patches/openjdk/8025255-tzdata2013g.patch \ + patches/d729448-32_bit_alignment.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 362263fcff48 -r 79c53dffb227 NEWS --- a/NEWS Wed Nov 20 15:44:52 2013 +0000 +++ b/NEWS Fri Nov 22 04:17:33 2013 +0000 @@ -11,19 +11,98 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.12.7 (2013-XX-XX): +New in release 1.12.7 (2013-11-21): +* Security fixes + - S8006900, CVE-2013-3829: Add new date/time capability + - S8008589: Better MBean permission validation + - S8011071, CVE-2013-5780: Better crypto provider handling + - S8011081, CVE-2013-5772: Improve jhat + - S8011157, CVE-2013-5814: Improve CORBA portablility + - S8012071, CVE-2013-5790: Better Building of Beans + - S8012147: Improve tool support + - S8012277: CVE-2013-5849: Improve AWT DataFlavor + - S8012425, CVE-2013-5802: Transform TransformerFactory + - S8013503, CVE-2013-5851: Improve stream factories + - S8013506: Better Pack200 data handling + - S8013510, CVE-2013-5809: Augment image writing code + - S8013514: Improve stability of cmap class + - S8013739, CVE-2013-5817: Better LDAP resource management + - S8013744, CVE-2013-5783: Better tabling for AWT + - S8014085: Better serialization support in JMX classes + - S8014093, CVE-2013-5782: Improve parsing of images + - S8014102, CVE-2013-5778: Improve image conversion + - S8014341, CVE-2013-5803: Better service from Kerberos servers + - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations + - S8014530, CVE-2013-5825: Better digital signature processing + - S8014534: Better profiling support + - S8014987, CVE-2013-5842: Augment serialization handling + - S8015614: Update build settings + - S8015731: Subject java.security.auth.subject to improvements + - S8015743, CVE-2013-5774: Address internet addresses + - S8016256: Make finalization final + - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names + - S8016675, CVE-2013-5797: Make Javadoc pages more robust + - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately + - S8017287, CVE-2013-5829: Better resource disposal + - S8017291, CVE-2013-5830: Cast Proxies Aside + - S8017298, CVE-2013-4002: Better XML support + - S8017300, CVE-2013-5784: Improve Interface Implementation + - S8017505, CVE-2013-5820: Better Client Service + - S8019292: Better Attribute Value Exceptions + - S8019617: Better view of objects + - S8020293: JVM crash + - S8021290, CVE-2013-5823: Better signature validation + - S8022940: Enhance CORBA translations + - S8023683: Enhance class file parsing * Backports + - S4075303: Use javap to enquire about a specific inner class + - S4111861: static final field contents are not displayed + - S4348375: Javap is not internationalized + - S4459541: "javap -l" shows line numbers as signed short; they should be unsigned + - S4501660: change diagnostic of -help as 'print this help message and exit' + - S4501661: disallow mixing -public, -private, and -protected options at the same time + - S4776241: unused source file in javap... + - S4870651: javap should recognize generics, varargs, enum + - S4876942: javap invoked without args does not print help screen + - S4880663: javap could output whitespace between class name and opening brace + - S4884240: additional option required for javap - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY + - S4975569: javap doesn't print new flag bits + - S6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table + - S6305779: javap: support annotations + - S6439940: Clean up javap implementation + - S6469569: wrong check of searchpath in JavapEnvironment + - S6474890: javap does not open .zip files in -classpath - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) + - S6587786: Javap throws error : "ERROR:Could not find " for JRE classes + - S6622215: javap ignores certain relevant access flags + - S6622216: javap names some attributes incorrectly + - S6622232: javap gets whitespace confused + - S6622260: javap prints negative bytes incorrectly in hex - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll + - S6636331: ConcurrentModificationException in AppContext code + - S6636370: minor corrections and simplification of code in AppContext + - S6708729: update jdk Makefiles for new javap + - S6715767: javap on java.lang.ClassLoader crashes - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 - S6793818: JpegImageReader is too greedy creating color profiles - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 + - S6819246: improve support for decoding instructions in classfile library + - S6824493: experimental support for additional info for instructions - S6840152: JVM crashes when heavyweight monitors are used + - S6841419: classfile: add constant pool iterator + - S6841420: classfile: add new methods to ConstantClassInfo + - S6843013: missing files in fix for 6824493 + - S6852856: javap changes to facilitate subclassing javap for variants + - S6867671: javap whitespace formatting issues + - S6868539: javap should use current names for constant pool tags - S6888215: memory leak in jpeg plugin + - S6902264: fix indentation of tableswitch and lookupswitch + - S6925851: Localize JRE into pt_BR + - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build - S6989760: cmm native compiler warnings @@ -32,11 +111,58 @@ - S7013519: [parfait] Integer overflows in 2D code - S7018912: [parfait] potential buffer overruns in imageio jpeg - S7022999: Can't build with FORCE_TIERED=0 + - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber + - S7146431: java.security files out-of-sync + - S7196533: TimeZone.getDefault() slow due to synchronization bottleneck + - S8000450: Restrict access to com/sun/corba/se/impl package + - S8002070: Remove the stack search for a resource bundle for Logger to use + - S8003992: File and other classes in java.io do not handle embedded nulls properly + - S8004188: Rename src/share/lib/security/java.security to java.security-linux - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() + - S8006882: Proxy generated classes in sun.proxy package breaks JMockit + - S8010118: Annotate jdk caller sensitive methods with @sun.reflect.CallerSensitive + - S8010727: WLS fails to add a logger with "" in its own LogManager subclass instance + - S8010939: Deadlock in LogManager + - S8011139: (reflect) Revise checking in getEnclosingClass + - S8011950: java.io.File.createTempFile enters infinite loop when passed invalid data + - S8011990: TEST_BUG: java/util/logging/bundlesearch/ResourceBundleSearchTest.java fails on Windows + - S8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21 + - S8012453: (process) Runtime.exec(String) fails if command contains spaces [win] + - S8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer + - S8013380: Removal of stack walk to find resource bundle breaks Glassfish startup + - S8013827: File.createTempFile hangs with temp file starting with 'com1.4' + - S8014469: (tz) Support tzdata2013c + - S8014718: Netbeans IDE begins to throw a lot exceptions since 7u25 b10 + - S8014745: Provide a switch to allow stack walk search of resource bundle + - S8015144: Performance regression in ICU OpenType Layout library + - S8015965: (process) Typo in name of property to allow ambiguous commands + - S8015978: Incorrect transformation of XPath expression "string(-0)" + - S8016357: Update hotspot diagnostic class + - S8017566: Backout 8000450 - Cannot access to com.sun.corba.se.impl.orb.ORBImpl + - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null + - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes + - S8019979: Replace CheckPackageAccess test with better one from closed repo + - S8020054: (tz) Support tzdata2013d - S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances + - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris + - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing + - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 + - S8021933: Add extra check for fix # JDK-8014530 + - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. + - S8022661: InetAddress.writeObject() performs flush() on object output stream + - S8022682: Supporting XOM + - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d + - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp + - S8025128: File.createTempFile fails if prefix is absolute path + - S8025255: (tz) Support tzdata2013g + - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 + - OJ20: Resolve merge issues with JAXP security fixes + - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes * Bug fixes - PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. + - RH995488: Java thinks that the default timezone is Busingen instead of Zurich + - D729448: 32-bit alignment on mips and mipsel New in release 1.12.6 (2013-07-10): diff -r 362263fcff48 -r 79c53dffb227 configure.ac --- a/configure.ac Wed Nov 20 15:44:52 2013 +0000 +++ b/configure.ac Fri Nov 22 04:17:33 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12.7pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.12.7],[distro-pkg-dev at openjdk.java.net]) From ptisnovs at icedtea.classpath.org Fri Nov 22 00:04:40 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 22 Nov 2013 08:04:40 +0000 Subject: /hg/gfx-test: Added helper methods for rendering various types o... Message-ID: changeset c446518578d9 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=c446518578d9 author: Pavel Tisnovsky date: Fri Nov 22 09:08:32 2013 +0100 Added helper methods for rendering various types of chords. Add one test into CAGOperationsOnChordAndRectangle test suite. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonCAGOperations.java | 72 ++++++++++ src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java | 32 ++++ 3 files changed, 111 insertions(+), 0 deletions(-) diffs (174 lines): diff -r 0c79e2cd45c7 -r c446518578d9 ChangeLog --- a/ChangeLog Thu Nov 21 09:21:51 2013 +0100 +++ b/ChangeLog Fri Nov 22 09:08:32 2013 +0100 @@ -1,3 +1,10 @@ +2013-11-22 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonCAGOperations.java: + Added helper methods for rendering various types of chords. + * src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java: + Add one test into CAGOperationsOnChordAndRectangle test suite. + 2013-11-21 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineQuadrantRotateTransformOp.java: diff -r 0c79e2cd45c7 -r c446518578d9 src/org/gfxtest/framework/CommonCAGOperations.java --- a/src/org/gfxtest/framework/CommonCAGOperations.java Thu Nov 21 09:21:51 2013 +0100 +++ b/src/org/gfxtest/framework/CommonCAGOperations.java Fri Nov 22 09:08:32 2013 +0100 @@ -40,6 +40,7 @@ package org.gfxtest.framework; +import java.awt.geom.Arc2D; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; @@ -52,6 +53,25 @@ */ public class CommonCAGOperations { + /** + * Start angle for arcs. + */ + private final static int ARC_START_ANGLE = 45; + + /** + * Extend angle for arcs. + */ + private final static int ARC_EXTEND_ANGLE = 270; + + /** + * Start angle for chords. + */ + private final static int CHORD_START_ANGLE = 45; + + /** + * Extend angle for chords. + */ + private final static int CHORD_EXTEND_ANGLE = 270; /** * Compute radius of circle from the position of its center point in an @@ -159,6 +179,23 @@ } /** + * Create chord area i.e. area consisting of just one chord. + * + * @param xc + * the X coordinate of the center of chord + * @param yc + * the Y coordinate of the center of chord + * @param radius + * radius of circle + * @return newly created area containing one chord + */ + private static Area createChordArea(int xc, int yc, int radius) + { + Arc2D circle = new Arc2D.Double(xc - radius, yc - radius, radius << 1, radius << 1, CHORD_START_ANGLE, CHORD_EXTEND_ANGLE, Arc2D.CHORD); + return new Area(circle); + } + + /** * Create rectangular area i.e. area consisting of just one rectangle. * * @param xc @@ -329,6 +366,25 @@ } /** + * Create area composed of only one chord. This chord is placed on + * the center of the image and its radius is bigger than the length + * of rectangle side(s). + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one circle + */ + private static Area createBiggerCenteredChordArea(TestImage image) + { + // compute center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + // compute size of the circle + int size = computeSizeOfCircleOrRectangle(xc, yc) * 5 / 3; + return createChordArea(xc, yc, size); + } + + /** * Create area composed of only one circle. This circle is placed on * the center of the image and its radius is smaller than the length * of rectangle side(s). @@ -570,6 +626,22 @@ } /** + * Create new area constructed from bigger chord and rectangle using union + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingUnionOperator(TestImage image) + { + Area area = new Area(); + area.add(createBiggerCenteredChordArea(image)); + area.add(createCenteredRectangularArea(image)); + return area; + } + + /** * Create new area constructed from bigger circle and rectangle using intersect * operation. * diff -r 0c79e2cd45c7 -r c446518578d9 src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Thu Nov 21 09:21:51 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Fri Nov 22 09:08:32 2013 +0100 @@ -40,7 +40,16 @@ package org.gfxtest.testsuites; +import java.awt.Graphics2D; +import java.awt.geom.Area; + + + +import org.gfxtest.framework.CommonCAGOperations; +import org.gfxtest.framework.CommonRenderingStyles; import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; import org.gfxtest.framework.annotations.GraphicsPrimitive; import org.gfxtest.framework.annotations.GraphicsPrimitives; import org.gfxtest.framework.annotations.RenderStyle; @@ -70,6 +79,29 @@ { /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using union operator. The shape is + * rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleUnionStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingUnionOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Fri Nov 22 00:07:23 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 22 Nov 2013 08:07:23 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest and testGetRes... Message-ID: changeset d7a085f139ba in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=d7a085f139ba author: Pavel Tisnovsky date: Fri Nov 22 09:11:17 2013 +0100 Added new testGetResourceNPETest and testGetResourceNegativeTest cases into ScriptEngineClassTest.java. diffstat: ChangeLog | 7 +++++++ src/org/RhinoTests/ScriptEngineClassTest.java | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-) diffs (45 lines): diff -r cf0d5f189876 -r d7a085f139ba ChangeLog --- a/ChangeLog Thu Nov 21 09:26:25 2013 +0100 +++ b/ChangeLog Fri Nov 22 09:11:17 2013 +0100 @@ -1,3 +1,10 @@ +2013-11-22 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineClassTest.java: + Added new testGetResourceNPETest and + testGetResourceNegativeTest cases into + ScriptEngineClassTest.java. + 2013-11-21 Pavel Tisnovsky * src/org/RhinoTests/CompiledScriptClassTest.java: diff -r cf0d5f189876 -r d7a085f139ba src/org/RhinoTests/ScriptEngineClassTest.java --- a/src/org/RhinoTests/ScriptEngineClassTest.java Thu Nov 21 09:26:25 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineClassTest.java Fri Nov 22 09:11:17 2013 +0100 @@ -1638,6 +1638,27 @@ } /** + * Test for method javax.script.ScriptEngine.getClass().getResourceNPETest() + */ + protected void testGetResourceNPETest() { + try { + Object resource = this.scriptEngineClass.getResource(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** + * Test for method javax.script.ScriptEngine.getClass().getResourceNegativeTest() + */ + protected void testGetResourceNegativeTest() { + Object resource = this.scriptEngineClass.getResource("unknown"); + assertNull(resource, "getResource() does not return null"); + } + + /** * Test for method javax.script.ScriptEngine.getClass().getResourcePositiveTest() */ protected void testGetResourcePositiveTest() { From jvanek at redhat.com Fri Nov 22 02:56:06 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 22 Nov 2013 11:56:06 +0100 Subject: [rfc][icedtrea-web] do DefaultLaunchHandlerTest unittest indepndent on system settings Message-ID: <528F3846.9050502@redhat.com> as in subject, and so remove its ocasional failures -------------- next part -------------- A non-text attachment was scrubbed... Name: madeIndepndentonSystemSetiing.patch Type: text/x-patch Size: 1064 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131122/d2d748ef/madeIndepndentonSystemSetiing.patch From ptisnovs at redhat.com Fri Nov 22 05:47:54 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Fri, 22 Nov 2013 08:47:54 -0500 (EST) Subject: [rfc][icedtrea-web] do DefaultLaunchHandlerTest unittest indepndent on system settings In-Reply-To: <528F3846.9050502@redhat.com> References: <528F3846.9050502@redhat.com> Message-ID: <561081648.39080005.1385128074039.JavaMail.root@redhat.com> ----- Jiri Vanek wrote: > as in subject, and so remove its ocasional failures Hi Jiri, well you are hacking the IT API, but it's just a junit test, so go ahead! Cheers, Pavel From jvanek at icedtea.classpath.org Fri Nov 22 05:51:02 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 22 Nov 2013 13:51:02 +0000 Subject: /hg/icedtea-web: do DefaultLaunchHandlerTest unittest indepndent... Message-ID: changeset bc73a1362e9c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bc73a1362e9c author: Jiri Vanek date: Fri Nov 22 12:12:48 2013 +0100 do DefaultLaunchHandlerTest unittest indepndent on system settings diffstat: ChangeLog | 5 +++++ tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java | 9 +++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diffs (38 lines): diff -r 956b6bd1b23e -r bc73a1362e9c ChangeLog --- a/ChangeLog Thu Nov 14 13:15:46 2013 -0500 +++ b/ChangeLog Fri Nov 22 12:12:48 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-22 Jiri Vanek + + * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java: (init) + enable logging to streams if disabled. + 2013-11-13 Andrew Azores * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: add diff -r 956b6bd1b23e -r bc73a1362e9c tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Thu Nov 14 13:15:46 2013 -0500 +++ b/tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java Fri Nov 22 12:12:48 2013 +0100 @@ -42,6 +42,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.lang.reflect.Field; +import net.sourceforge.jnlp.util.logging.LogConfig; import net.sourceforge.jnlp.util.logging.OutputController; import org.junit.Test; @@ -63,6 +65,13 @@ LocalLogger() { super(new AccessibleStream(new ByteArrayOutputStream()), new AccessibleStream(new ByteArrayOutputStream())); + try{ + Field f = LogConfig.class.getDeclaredField("logToStreams"); + f.setAccessible(true); + f.set(LogConfig.getLogConfig(), true); + }catch(Exception ex){ + ServerAccess.logException(ex); + } } public String getStream1() { From jvanek at redhat.com Fri Nov 22 06:03:54 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 22 Nov 2013 15:03:54 +0100 Subject: [rfc][icedtea-web] fix to ManifestedJar1Test cases Message-ID: <528F644A.3040309@redhat.com> Hi! This patch is fixing two long-term failing reproducers in ManifestedJar1Test testcase The patch to netx itself is discussable - do we wont to survive two jars, both with specified main class in manifest, and no other clue to main? I chose no - the reason is that it can be programmers error, and order can be *to* easily changed. However it may be to strict, and to chose the first one is correct.... Then the fix to manifestedJar1main2mainNoAppDesc will be different. The fix to manifestedJar1nothing2nothingAppDesc is obvious, and I'm surprised it was ever passing before. Now it looks better. J. -------------- next part -------------- diff -r bc73a1362e9c netx/net/sourceforge/jnlp/ResourcesDesc.java --- a/netx/net/sourceforge/jnlp/ResourcesDesc.java Fri Nov 22 12:12:48 2013 +0100 +++ b/netx/net/sourceforge/jnlp/ResourcesDesc.java Fri Nov 22 14:52:21 2013 +0100 @@ -72,11 +72,20 @@ } public static JARDesc getMainJAR(List jars) { + JARDesc markedMain = null; for (JARDesc jar : jars) { if (jar.isMain()) { - return jar; + if (markedMain == null){ + markedMain = jar; + } else { + //more then one main jar specified. It stinks. Return null to die later null; + throw new RuntimeException("More then one main jar specified. Thas fatal"); + } } } + if (markedMain!=null){ + return markedMain; + } if (jars.size() > 0) { return jars.get(0); diff -r bc73a1362e9c tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java --- a/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Fri Nov 22 12:12:48 2013 +0100 +++ b/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Fri Nov 22 14:52:21 2013 +0100 @@ -155,14 +155,13 @@ * * Two jars, both with manifest, sboth with main tag, no app desc * - * thisis passing, SUSPICIOUS, but to lunch at least something is better then to lunch nothing at all. - * althoug it maybe SHOULD throw twoMainException */ @Test public void manifestedJar1main2mainNoAppDesc() throws Exception { String id = "ManifestedJar-1main2mainNoAppDesc"; ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp"); - assertManifestedJar1(id, pr); + assertNotManifestedJar1(id, pr); + assertNotManifestedJar2(id, pr); assertNotDead(id, pr); } @@ -210,7 +209,7 @@ public void manifestedJar1nothing2nothingAppDesc() throws Exception { String id = "ManifestedJar-1nothing2nothingAppDesc"; ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp"); - assertNotManifestedJar2(id, pr); + assertManifestedJar2(id, pr); assertNotManifestedJar1(id, pr); assertNotDead(id, pr); } From aazores at redhat.com Fri Nov 22 13:27:57 2013 From: aazores at redhat.com (Andrew Azores) Date: Fri, 22 Nov 2013 16:27:57 -0500 Subject: [rfc][icedtea-web] fix to ManifestedJar1Test cases In-Reply-To: <528F644A.3040309@redhat.com> References: <528F644A.3040309@redhat.com> Message-ID: <528FCC5D.2070001@redhat.com> On 11/22/2013 09:03 AM, Jiri Vanek wrote: > Hi! > > This patch is fixing two long-term failing reproducers in > ManifestedJar1Test testcase > > The patch to netx itself is discussable - do we wont to survive two > jars, both with specified main class in manifest, and no other clue to > main? > > I chose no - the reason is that it can be programmers error, and order > can be *to* easily changed. However it may be to strict, and to chose > the first one is correct.... > Then the fix to manifestedJar1main2mainNoAppDesc will be different. > > The fix to manifestedJar1nothing2nothingAppDesc is obvious, and I'm > surprised it was ever passing before. Now it looks better. > > J. Allowing only one main JAR seems more correct to me. It shouldn't be valid to have more than one main defined, it just doesn't make sense. Allowing for this and hoping for the best when we run the application is simply asking for trouble IMO. Best to make this an explicit failure (as you've done). For the patch in ResourcesDesc, please indent the "markedMain = jar" line. Also, More then one main jar specified. Thas fatal isn't quite right ;). "Multiple main JARs specified, refusing to continue" perhaps? If you want to stick to the same phrasing, then "More than one main JAR specified. This is fatal." Otherwise I think this is okay. Thanks, -- Andrew A From andrew at icedtea.classpath.org Fri Nov 22 14:44:09 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 22 Nov 2013 22:44:09 +0000 Subject: /hg/icedtea6-hg: 11 new changesets Message-ID: changeset c6d9c3b67430 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=c6d9c3b67430 author: Andrew John Hughes date: Mon Oct 07 20:19:28 2013 +0100 Switch to b28 release tarball. 2013-10-07 Andrew John Hughes * Makefile.am: (OPENJDK_DATE): Set to date of b28. (OPENJDK_SHA256SUM): Likewise for SHA256 checksum. (OPENJDK_URL): Use new OPENJDK-6 project URL. changeset 7ce84f82f817 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=7ce84f82f817 author: Andrew John Hughes date: Mon Oct 07 23:11:18 2013 +0100 Update NEWS with features in b28 not already released. 2013-10-07 Andrew John Hughes * NEWS: Add features from b28 not already released (mainly those changes in HotSpot 20->23). changeset 598a353f5405 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=598a353f5405 author: Pavel Tisnovsky date: Tue Oct 08 09:53:44 2013 +0200 Added --no-check-certificate flag to wget command to allow downloading OpenJDK tarball using https. changeset 739dfd3ff255 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=739dfd3ff255 author: Andrew John Hughes date: Tue Oct 08 13:53:20 2013 +0100 Correct ChangeLog entry. changeset 9e8a68310569 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=9e8a68310569 author: Andrew John Hughes date: Wed Oct 09 01:08:04 2013 +0100 PR1288: Allow JARs to be optionally compressed by setting COMPRESS_JARS 2012-08-22 Andrew John Hughes PR1288: Allow JARs to be optionally compressed by setting COMPRESS_JARS * Makefile.am: (ICEDTEA_ENV): Add COMPRESS_JARS="true" if ENABLE_JAR_COMPRESSION is set. * NEWS: Updated. * acinclude.m4: Add IT_ENABLE_JAR_COMPRESSION macro. * configure.ac: Include new macro. changeset 745a52b6cece in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=745a52b6cece author: Andrew John Hughes date: Wed Oct 09 15:37:19 2013 +0100 S7025066: Build systems changes to support SE Embedded Integration 2013-10-09 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/ecj/icedtea.patch: Regenerated following compressed JAR support. * patches/openjdk/7025066-embedded_build.patch: Backport to actually provide COMPRESS_JARS support in the build. * NEWS: Updated. changeset e98b0ef70b26 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=e98b0ef70b26 author: Andrew John Hughes date: Tue Oct 29 14:24:52 2013 +0000 Add security fixes from 2013/10/15. 2013-10-29 Andrew John Hughes * patches/openjdk/8002070-remove_logger_stack_search_2.patch, * patches/openjdk/8009463-space_and_final_backslash.patch, * patches/openjdk/8013380-handle_renames.patch: Removed as incorporated in other patches. * Makefile.am: (SECURITY_PATCHES): Add security update. * patches/jtreg-LastErrorString.patch: Regenerated. * patches/openjdk/4075303-javap_update.patch, * patches/openjdk/4111861-static_fields.patch, * patches/openjdk/4501661-disallow_mixing.patch, * patches/openjdk/4884240-javap_additional_option.patch, * patches/openjdk/6708729-javap_makefile_update.patch, * patches/openjdk/6715767-javap_crash.patch, * patches/openjdk/6819246-javap_instruction_decoding.patch, * patches/openjdk/6824493-experimental.patch, * patches/openjdk/6841419-classfile_iterator.patch, * patches/openjdk/6841420-classfile_methods.patch, * patches/openjdk/6843013-missing_experimental.patch, * patches/openjdk/6852856-javap_subclasses.patch, * patches/openjdk/6867671-javap_whitespace.patch, * patches/openjdk/6868539-constant_pool_tags.patch, * patches/openjdk/6902264-fix_indentation.patch, * patches/openjdk/6954275-big_xml_signatures.patch, * patches/openjdk/7146431-java.security_files.patch, * patches/openjdk/7162902-corba_fixes.patch, * patches/openjdk/7196533-timezone_bottleneck.patch, * patches/openjdk/8000450-restrict_access.patch, * patches/openjdk/8002070-remove_logger_stack_search.patch, * patches/openjdk/8003992-embedded_nulls.patch, * patches/openjdk/8004188-rename_java.security.patch, * patches/openjdk/8006882-jmockit.patch, * patches/openjdk/8006900-new_date_time.patch, * patches/openjdk/8008589-better_mbean_permission_validation.patch, * patches/openjdk/8010118-caller_sensitive.patch, * patches/openjdk/8010727-empty_logger_name.patch, * patches/openjdk/8010939-logmanager_deadlock.patch, * patches/openjdk/8011071-better_crypto_provider_handling.patch, * patches/openjdk/8011081-improve_jhat.patch, * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, * patches/openjdk/8011157-improve_corba_portability-jdk.patch, * patches/openjdk/8011157-improve_corba_portability.patch, * patches/openjdk/8011990-logger_test_urls.patch, * patches/openjdk/8012071-better_bean_building.patch, * patches/openjdk/8012147-improve_tool.patch, * patches/openjdk/8012243-serial_regression.patch, * patches/openjdk/8012277-improve_dataflavour.patch, * patches/openjdk/8012425-transform_transformfactory.patch, * patches/openjdk/8012453-runtime.exec.patch, * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, * patches/openjdk/8013503-improve_stream_factories.patch, * patches/openjdk/8013506-better_pack200.patch, * patches/openjdk/8013510-augment_image_writing.patch, * patches/openjdk/8013514-improve_cmap_stability.patch, * patches/openjdk/8013739-better_ldap_resource_management.patch, * patches/openjdk/8013744-better_tabling.patch, * patches/openjdk/8013827-createtempfile_hang.patch, * patches/openjdk/8014085-better_serialization.patch, * patches/openjdk/8014093-improve_image_parsing.patch, * patches/openjdk/8014102-improve_image_conversion.patch, * patches/openjdk/8014341-better_kerberos_service.patch, * patches/openjdk/8014349-getdeclaredclass_fix.patch, * patches/openjdk/8014530-better_dsp.patch, * patches/openjdk/8014534-better_profiling.patch, * patches/openjdk/8014718-remove_logging_suntoolkit.patch, * patches/openjdk/8014745-logger_stack_walk_switch.patch, * patches/openjdk/8014987-augment_serialization.patch, * patches/openjdk/8015144-performance_regression.patch, * patches/openjdk/8015614-update_build.patch, * patches/openjdk/8015731-auth_improvements.patch, * patches/openjdk/8015743-address_internet_addresses.patch, * patches/openjdk/8015965-typo_in_property_name.patch, * patches/openjdk/8015978-incorrect_transformation.patch, * patches/openjdk/8016256-finalization_final.patch, * patches/openjdk/8016357-update_hs_diagnostic_class.patch, * patches/openjdk/8016653-ignoreable_characters.patch, * patches/openjdk/8016675-robust_javadoc.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, * patches/openjdk/8017287-better_resource_disposal.patch, * patches/openjdk/8017291-cast_proxies_aside.patch, * patches/openjdk/8017298-better_xml_support.patch, * patches/openjdk/8017300-improve_interface_implementation.patch, * patches/openjdk/8017505-better_client_service.patch, * patches/openjdk/8017566-backout_part_of_8000450.patch, * patches/openjdk/8019292-better_attribute_value_exceptions.patch, * patches/openjdk/8019584-invalid_notification_fix.patch, * patches/openjdk/8019617-better_view_of_objects.patch, * patches/openjdk/8019969-inet6_test_case_fix.patch, * patches/openjdk/8019979-better_access_test.patch, * patches/openjdk/8020293-jvm_crash.patch, * patches/openjdk/8020943-memory_leak.patch, * patches/openjdk/8021290-signature_validation.patch, * patches/openjdk/8021355-splashscreen_regression.patch, * patches/openjdk/8021366-jaxp_test_fix-01.patch, * patches/openjdk/8021577-bean_serialization_fix.patch, * patches/openjdk/8021933-jaxp_test_fix-02.patch, * patches/openjdk/8021969-jnlp_load_failure.patch, * patches/openjdk/8022661-writeobject_flush.patch, * patches/openjdk/8022682-supporting_xom.patch, * patches/openjdk/8022940-enhance_corba_translations.patch, * patches/openjdk/8023457-tracing_mutex.patch, * patches/openjdk/8023478-hs_crash.patch, * patches/openjdk/8023683-enhance_class_file_parsing.patch, * patches/openjdk/8023964-ignore_test.patch, * patches/openjdk/8024914-swapped_usage.patch, * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, * patches/openjdk/oj6-20-merge.patch, * patches/openjdk/oj6-21-overrides.patch: Added. * NEWS: Updated. changeset 0eed175f8b35 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=0eed175f8b35 author: Andrew John Hughes date: Fri Nov 01 09:52:25 2013 +0000 Add S390 cast fixes from 2.3 forest. 2013-10-31 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/s390_casts.patch: Backport from IcedTea 2.3 tree. changeset 10ce8e5e415f in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=10ce8e5e415f author: Andrew John Hughes date: Wed Nov 13 04:08:08 2013 +0000 Post-1.11.14 NEWS update. 2013-11-13 Andrew John Hughes * NEWS: Add 1.11.14 release notes and remove items in 1.13.0 which have been released in 1.11.x. changeset 9035f7dc1cef in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=9035f7dc1cef author: Andrew John Hughes date: Fri Nov 22 04:27:59 2013 +0000 Bump to b29. 2012-11-22 Andrew John Hughes * Makefile.am: (OPENJDK_VERSION): Bump to next release, b29. changeset ab595f7ee5a8 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=ab595f7ee5a8 author: Andrew John Hughes date: Fri Nov 22 22:43:51 2013 +0000 Remove upstreamed security patches. 2012-11-22 Andrew John Hughes * patches/openjdk/4075303-javap_update.patch, * patches/openjdk/4111861-static_fields.patch, * patches/openjdk/4501661-disallow_mixing.patch, * patches/openjdk/4884240-javap_additional_option.patch, * patches/openjdk/6708729-javap_makefile_update.patch, * patches/openjdk/6715767-javap_crash.patch, * patches/openjdk/6819246-javap_instruction_decoding.patch, * patches/openjdk/6824493-experimental.patch, * patches/openjdk/6841419-classfile_iterator.patch, * patches/openjdk/6841420-classfile_methods.patch, * patches/openjdk/6843013-missing_experimental.patch, * patches/openjdk/6852856-javap_subclasses.patch, * patches/openjdk/6867671-javap_whitespace.patch, * patches/openjdk/6868539-constant_pool_tags.patch, * patches/openjdk/6902264-fix_indentation.patch, * patches/openjdk/6954275-big_xml_signatures.patch, * patches/openjdk/7146431-java.security_files.patch, * patches/openjdk/7196533-timezone_bottleneck.patch, * patches/openjdk/8000450-restrict_access.patch, * patches/openjdk/8002070-remove_logger_stack_search.patch, * patches/openjdk/8003992-embedded_nulls.patch, * patches/openjdk/8004188-rename_java.security.patch, * patches/openjdk/8006882-jmockit.patch, * patches/openjdk/8006900-new_date_time.patch, * patches/openjdk/8008589-better_mbean_permission_validation.patch, * patches/openjdk/8010118-caller_sensitive.patch, * patches/openjdk/8010727-empty_logger_name.patch, * patches/openjdk/8010939-logmanager_deadlock.patch, * patches/openjdk/8011071-better_crypto_provider_handling.patch, * patches/openjdk/8011081-improve_jhat.patch, * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, * patches/openjdk/8011157-improve_corba_portability-jdk.patch, * patches/openjdk/8011157-improve_corba_portability.patch, * patches/openjdk/8011990-logger_test_urls.patch, * patches/openjdk/8012071-better_bean_building.patch, * patches/openjdk/8012147-improve_tool.patch, * patches/openjdk/8012243-serial_regression.patch, * patches/openjdk/8012277-improve_dataflavour.patch, * patches/openjdk/8012425-transform_transformfactory.patch, * patches/openjdk/8012453-runtime.exec.patch, * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, * patches/openjdk/8013503-improve_stream_factories.patch, * patches/openjdk/8013506-better_pack200.patch, * patches/openjdk/8013510-augment_image_writing.patch, * patches/openjdk/8013514-improve_cmap_stability.patch, * patches/openjdk/8013739-better_ldap_resource_management.patch, * patches/openjdk/8013744-better_tabling.patch, * patches/openjdk/8013827-createtempfile_hang.patch, * patches/openjdk/8014085-better_serialization.patch, * patches/openjdk/8014093-improve_image_parsing.patch, * patches/openjdk/8014102-improve_image_conversion.patch, * patches/openjdk/8014341-better_kerberos_service.patch, * patches/openjdk/8014349-getdeclaredclass_fix.patch, * patches/openjdk/8014530-better_dsp.patch, * patches/openjdk/8014534-better_profiling.patch, * patches/openjdk/8014718-remove_logging_suntoolkit.patch, * patches/openjdk/8014745-logger_stack_walk_switch.patch, * patches/openjdk/8014987-augment_serialization.patch, * patches/openjdk/8015144-performance_regression.patch, * patches/openjdk/8015731-auth_improvements.patch, * patches/openjdk/8015743-address_internet_addresses.patch, * patches/openjdk/8015965-typo_in_property_name.patch, * patches/openjdk/8015978-incorrect_transformation.patch, * patches/openjdk/8016357-update_hs_diagnostic_class.patch, * patches/openjdk/8016653-ignoreable_characters.patch, * patches/openjdk/8016675-robust_javadoc.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, * patches/openjdk/8017287-better_resource_disposal.patch, * patches/openjdk/8017291-cast_proxies_aside.patch, * patches/openjdk/8017298-better_xml_support.patch, * patches/openjdk/8017300-improve_interface_implementation.patch, * patches/openjdk/8017505-better_client_service.patch, * patches/openjdk/8017566-backout_part_of_8000450.patch, * patches/openjdk/8019292-better_attribute_value_exceptions.patch, * patches/openjdk/8019584-invalid_notification_fix.patch, * patches/openjdk/8019617-better_view_of_objects.patch, * patches/openjdk/8019969-inet6_test_case_fix.patch, * patches/openjdk/8019979-better_access_test.patch, * patches/openjdk/8020293-jvm_crash.patch, * patches/openjdk/8021290-signature_validation.patch, * patches/openjdk/8021355-splashscreen_regression.patch, * patches/openjdk/8021366-jaxp_test_fix-01.patch, * patches/openjdk/8021577-bean_serialization_fix.patch, * patches/openjdk/8021933-jaxp_test_fix-02.patch, * patches/openjdk/8021969-jnlp_load_failure.patch, * patches/openjdk/8022661-writeobject_flush.patch, * patches/openjdk/8022682-supporting_xom.patch, * patches/openjdk/8022940-enhance_corba_translations.patch, * patches/openjdk/8023964-ignore_test.patch, * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, * patches/openjdk/oj6-20-merge.patch, * patches/openjdk/oj6-21-overrides.patch: Removed. * Makefile.am: (SECURITY_PATCHES): Remove upstreamed ones. diffstat: ChangeLog | 275 + Makefile.am | 43 +- NEWS | 1002 +++- acinclude.m4 | 22 + configure.ac | 1 + patches/ecj/icedtea.patch | 90 +- patches/jtreg-LastErrorString.patch | 31 +- patches/openjdk/7025066-embedded_build.patch | 456 + patches/openjdk/7162902-corba_fixes.patch | 7 - patches/openjdk/7196533-timezone_bottleneck.patch | 66 - patches/openjdk/8002070-remove_logger_stack_search.patch | 152 - patches/openjdk/8002070-remove_logger_stack_search_2.patch | 546 - patches/openjdk/8009463-space_and_final_backslash.patch | 33 - patches/openjdk/8010118-caller_sensitive.patch | 2964 ---------- patches/openjdk/8010727-empty_logger_name.patch | 99 - patches/openjdk/8010939-logmanager_deadlock.patch | 264 - patches/openjdk/8011139-revise_checking_getenclosingclass.patch | 58 - patches/openjdk/8011990-logger_test_urls.patch | 55 - patches/openjdk/8012243-serial_regression.patch | 42 - patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch | 480 - patches/openjdk/8013380-handle_renames.patch | 107 - patches/openjdk/8013380-logger_stack_walk_glassfish.patch | 936 --- patches/openjdk/8014718-remove_logging_suntoolkit.patch | 112 - patches/openjdk/8014745-logger_stack_walk_switch.patch | 199 - patches/openjdk/8015614-update_build.patch | 60 + patches/openjdk/8016256-finalization_final.patch | 24 + patches/openjdk/8020943-memory_leak.patch | 32 + patches/openjdk/8023457-tracing_mutex.patch | 79 + patches/openjdk/8023478-hs_crash.patch | 21 + patches/openjdk/8023683-enhance_class_file_parsing.patch | 35 + patches/openjdk/8024914-swapped_usage.patch | 58 + patches/s390_casts.patch | 199 + 32 files changed, 2321 insertions(+), 6227 deletions(-) diffs (truncated from 8978 to 500 lines): diff -r 64de09c6e614 -r ab595f7ee5a8 ChangeLog --- a/ChangeLog Tue Sep 24 17:44:25 2013 +0100 +++ b/ChangeLog Fri Nov 22 22:43:51 2013 +0000 @@ -1,3 +1,278 @@ +2012-11-22 Andrew John Hughes + + * patches/openjdk/4075303-javap_update.patch, + * patches/openjdk/4111861-static_fields.patch, + * patches/openjdk/4501661-disallow_mixing.patch, + * patches/openjdk/4884240-javap_additional_option.patch, + * patches/openjdk/6708729-javap_makefile_update.patch, + * patches/openjdk/6715767-javap_crash.patch, + * patches/openjdk/6819246-javap_instruction_decoding.patch, + * patches/openjdk/6824493-experimental.patch, + * patches/openjdk/6841419-classfile_iterator.patch, + * patches/openjdk/6841420-classfile_methods.patch, + * patches/openjdk/6843013-missing_experimental.patch, + * patches/openjdk/6852856-javap_subclasses.patch, + * patches/openjdk/6867671-javap_whitespace.patch, + * patches/openjdk/6868539-constant_pool_tags.patch, + * patches/openjdk/6902264-fix_indentation.patch, + * patches/openjdk/6954275-big_xml_signatures.patch, + * patches/openjdk/7146431-java.security_files.patch, + * patches/openjdk/7196533-timezone_bottleneck.patch, + * patches/openjdk/8000450-restrict_access.patch, + * patches/openjdk/8002070-remove_logger_stack_search.patch, + * patches/openjdk/8003992-embedded_nulls.patch, + * patches/openjdk/8004188-rename_java.security.patch, + * patches/openjdk/8006882-jmockit.patch, + * patches/openjdk/8006900-new_date_time.patch, + * patches/openjdk/8008589-better_mbean_permission_validation.patch, + * patches/openjdk/8010118-caller_sensitive.patch, + * patches/openjdk/8010727-empty_logger_name.patch, + * patches/openjdk/8010939-logmanager_deadlock.patch, + * patches/openjdk/8011071-better_crypto_provider_handling.patch, + * patches/openjdk/8011081-improve_jhat.patch, + * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, + * patches/openjdk/8011157-improve_corba_portability-jdk.patch, + * patches/openjdk/8011157-improve_corba_portability.patch, + * patches/openjdk/8011990-logger_test_urls.patch, + * patches/openjdk/8012071-better_bean_building.patch, + * patches/openjdk/8012147-improve_tool.patch, + * patches/openjdk/8012243-serial_regression.patch, + * patches/openjdk/8012277-improve_dataflavour.patch, + * patches/openjdk/8012425-transform_transformfactory.patch, + * patches/openjdk/8012453-runtime.exec.patch, + * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, + * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, + * patches/openjdk/8013503-improve_stream_factories.patch, + * patches/openjdk/8013506-better_pack200.patch, + * patches/openjdk/8013510-augment_image_writing.patch, + * patches/openjdk/8013514-improve_cmap_stability.patch, + * patches/openjdk/8013739-better_ldap_resource_management.patch, + * patches/openjdk/8013744-better_tabling.patch, + * patches/openjdk/8013827-createtempfile_hang.patch, + * patches/openjdk/8014085-better_serialization.patch, + * patches/openjdk/8014093-improve_image_parsing.patch, + * patches/openjdk/8014102-improve_image_conversion.patch, + * patches/openjdk/8014341-better_kerberos_service.patch, + * patches/openjdk/8014349-getdeclaredclass_fix.patch, + * patches/openjdk/8014530-better_dsp.patch, + * patches/openjdk/8014534-better_profiling.patch, + * patches/openjdk/8014718-remove_logging_suntoolkit.patch, + * patches/openjdk/8014745-logger_stack_walk_switch.patch, + * patches/openjdk/8014987-augment_serialization.patch, + * patches/openjdk/8015144-performance_regression.patch, + * patches/openjdk/8015731-auth_improvements.patch, + * patches/openjdk/8015743-address_internet_addresses.patch, + * patches/openjdk/8015965-typo_in_property_name.patch, + * patches/openjdk/8015978-incorrect_transformation.patch, + * patches/openjdk/8016357-update_hs_diagnostic_class.patch, + * patches/openjdk/8016653-ignoreable_characters.patch, + * patches/openjdk/8016675-robust_javadoc.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, + * patches/openjdk/8017287-better_resource_disposal.patch, + * patches/openjdk/8017291-cast_proxies_aside.patch, + * patches/openjdk/8017298-better_xml_support.patch, + * patches/openjdk/8017300-improve_interface_implementation.patch, + * patches/openjdk/8017505-better_client_service.patch, + * patches/openjdk/8017566-backout_part_of_8000450.patch, + * patches/openjdk/8019292-better_attribute_value_exceptions.patch, + * patches/openjdk/8019584-invalid_notification_fix.patch, + * patches/openjdk/8019617-better_view_of_objects.patch, + * patches/openjdk/8019969-inet6_test_case_fix.patch, + * patches/openjdk/8019979-better_access_test.patch, + * patches/openjdk/8020293-jvm_crash.patch, + * patches/openjdk/8021290-signature_validation.patch, + * patches/openjdk/8021355-splashscreen_regression.patch, + * patches/openjdk/8021366-jaxp_test_fix-01.patch, + * patches/openjdk/8021577-bean_serialization_fix.patch, + * patches/openjdk/8021933-jaxp_test_fix-02.patch, + * patches/openjdk/8021969-jnlp_load_failure.patch, + * patches/openjdk/8022661-writeobject_flush.patch, + * patches/openjdk/8022682-supporting_xom.patch, + * patches/openjdk/8022940-enhance_corba_translations.patch, + * patches/openjdk/8023964-ignore_test.patch, + * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, + * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, + * patches/openjdk/oj6-20-merge.patch, + * patches/openjdk/oj6-21-overrides.patch: Removed. + * Makefile.am: + (SECURITY_PATCHES): Remove upstreamed ones. + +2012-11-22 Andrew John Hughes + + * Makefile.am: + (OPENJDK_VERSION): Bump to next release, b29. + +2013-11-13 Andrew John Hughes + + * NEWS: Add 1.11.14 release notes and + remove items in 1.13.0 which have been + released in 1.11.x. + +2013-10-31 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/s390_casts.patch: + Backport from IcedTea 2.3 tree. + +2013-10-29 Andrew John Hughes + + * patches/openjdk/8002070-remove_logger_stack_search_2.patch, + * patches/openjdk/8009463-space_and_final_backslash.patch, + * patches/openjdk/8013380-handle_renames.patch: + Removed as incorporated in other patches. + * Makefile.am: + (SECURITY_PATCHES): Add security update. + * patches/jtreg-LastErrorString.patch: Regenerated. + * patches/openjdk/4075303-javap_update.patch, + * patches/openjdk/4111861-static_fields.patch, + * patches/openjdk/4501661-disallow_mixing.patch, + * patches/openjdk/4884240-javap_additional_option.patch, + * patches/openjdk/6708729-javap_makefile_update.patch, + * patches/openjdk/6715767-javap_crash.patch, + * patches/openjdk/6819246-javap_instruction_decoding.patch, + * patches/openjdk/6824493-experimental.patch, + * patches/openjdk/6841419-classfile_iterator.patch, + * patches/openjdk/6841420-classfile_methods.patch, + * patches/openjdk/6843013-missing_experimental.patch, + * patches/openjdk/6852856-javap_subclasses.patch, + * patches/openjdk/6867671-javap_whitespace.patch, + * patches/openjdk/6868539-constant_pool_tags.patch, + * patches/openjdk/6902264-fix_indentation.patch, + * patches/openjdk/6954275-big_xml_signatures.patch, + * patches/openjdk/7146431-java.security_files.patch, + * patches/openjdk/7162902-corba_fixes.patch, + * patches/openjdk/7196533-timezone_bottleneck.patch, + * patches/openjdk/8000450-restrict_access.patch, + * patches/openjdk/8002070-remove_logger_stack_search.patch, + * patches/openjdk/8003992-embedded_nulls.patch, + * patches/openjdk/8004188-rename_java.security.patch, + * patches/openjdk/8006882-jmockit.patch, + * patches/openjdk/8006900-new_date_time.patch, + * patches/openjdk/8008589-better_mbean_permission_validation.patch, + * patches/openjdk/8010118-caller_sensitive.patch, + * patches/openjdk/8010727-empty_logger_name.patch, + * patches/openjdk/8010939-logmanager_deadlock.patch, + * patches/openjdk/8011071-better_crypto_provider_handling.patch, + * patches/openjdk/8011081-improve_jhat.patch, + * patches/openjdk/8011139-revise_checking_getenclosingclass.patch, + * patches/openjdk/8011157-improve_corba_portability-jdk.patch, + * patches/openjdk/8011157-improve_corba_portability.patch, + * patches/openjdk/8011990-logger_test_urls.patch, + * patches/openjdk/8012071-better_bean_building.patch, + * patches/openjdk/8012147-improve_tool.patch, + * patches/openjdk/8012243-serial_regression.patch, + * patches/openjdk/8012277-improve_dataflavour.patch, + * patches/openjdk/8012425-transform_transformfactory.patch, + * patches/openjdk/8012453-runtime.exec.patch, + * patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch, + * patches/openjdk/8013380-logger_stack_walk_glassfish.patch, + * patches/openjdk/8013503-improve_stream_factories.patch, + * patches/openjdk/8013506-better_pack200.patch, + * patches/openjdk/8013510-augment_image_writing.patch, + * patches/openjdk/8013514-improve_cmap_stability.patch, + * patches/openjdk/8013739-better_ldap_resource_management.patch, + * patches/openjdk/8013744-better_tabling.patch, + * patches/openjdk/8013827-createtempfile_hang.patch, + * patches/openjdk/8014085-better_serialization.patch, + * patches/openjdk/8014093-improve_image_parsing.patch, + * patches/openjdk/8014102-improve_image_conversion.patch, + * patches/openjdk/8014341-better_kerberos_service.patch, + * patches/openjdk/8014349-getdeclaredclass_fix.patch, + * patches/openjdk/8014530-better_dsp.patch, + * patches/openjdk/8014534-better_profiling.patch, + * patches/openjdk/8014718-remove_logging_suntoolkit.patch, + * patches/openjdk/8014745-logger_stack_walk_switch.patch, + * patches/openjdk/8014987-augment_serialization.patch, + * patches/openjdk/8015144-performance_regression.patch, + * patches/openjdk/8015614-update_build.patch, + * patches/openjdk/8015731-auth_improvements.patch, + * patches/openjdk/8015743-address_internet_addresses.patch, + * patches/openjdk/8015965-typo_in_property_name.patch, + * patches/openjdk/8015978-incorrect_transformation.patch, + * patches/openjdk/8016256-finalization_final.patch, + * patches/openjdk/8016357-update_hs_diagnostic_class.patch, + * patches/openjdk/8016653-ignoreable_characters.patch, + * patches/openjdk/8016675-robust_javadoc.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately-jdk.patch, + * patches/openjdk/8017196-ensure_proxies_are_handled_appropriately.patch, + * patches/openjdk/8017287-better_resource_disposal.patch, + * patches/openjdk/8017291-cast_proxies_aside.patch, + * patches/openjdk/8017298-better_xml_support.patch, + * patches/openjdk/8017300-improve_interface_implementation.patch, + * patches/openjdk/8017505-better_client_service.patch, + * patches/openjdk/8017566-backout_part_of_8000450.patch, + * patches/openjdk/8019292-better_attribute_value_exceptions.patch, + * patches/openjdk/8019584-invalid_notification_fix.patch, + * patches/openjdk/8019617-better_view_of_objects.patch, + * patches/openjdk/8019969-inet6_test_case_fix.patch, + * patches/openjdk/8019979-better_access_test.patch, + * patches/openjdk/8020293-jvm_crash.patch, + * patches/openjdk/8020943-memory_leak.patch, + * patches/openjdk/8021290-signature_validation.patch, + * patches/openjdk/8021355-splashscreen_regression.patch, + * patches/openjdk/8021366-jaxp_test_fix-01.patch, + * patches/openjdk/8021577-bean_serialization_fix.patch, + * patches/openjdk/8021933-jaxp_test_fix-02.patch, + * patches/openjdk/8021969-jnlp_load_failure.patch, + * patches/openjdk/8022661-writeobject_flush.patch, + * patches/openjdk/8022682-supporting_xom.patch, + * patches/openjdk/8022940-enhance_corba_translations.patch, + * patches/openjdk/8023457-tracing_mutex.patch, + * patches/openjdk/8023478-hs_crash.patch, + * patches/openjdk/8023683-enhance_class_file_parsing.patch, + * patches/openjdk/8023964-ignore_test.patch, + * patches/openjdk/8024914-swapped_usage.patch, + * patches/openjdk/8025128-createtempfile_absolute_prefix.patch, + * patches/openjdk/oj6-19-fix_8010118_test_cases.patch, + * patches/openjdk/oj6-20-merge.patch, + * patches/openjdk/oj6-21-overrides.patch: Added. + * NEWS: Updated. + +2013-10-09 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/ecj/icedtea.patch: + Regenerated following compressed JAR support. + * patches/openjdk/7025066-embedded_build.patch: + Backport to actually provide COMPRESS_JARS support + in the build. + * NEWS: Updated. + +2012-08-22 Andrew John Hughes + + PR1288: Allow JARs to be optionally compressed by + setting COMPRESS_JARS + * Makefile.am: + (ICEDTEA_ENV): Add COMPRESS_JARS="true" if + ENABLE_JAR_COMPRESSION is set. + * NEWS: Updated. + * acinclude.m4: Add IT_ENABLE_JAR_COMPRESSION macro. + * configure.ac: Include new macro. + +2013-10-08 Pavel Tisnovsky + + * Makefile.am: + (download-openjdk): Added --no-check-certificate + flag to wget command to allow downloading OpenJDK + tarball using https on systems with the necessary + certificates. + +2013-10-07 Andrew John Hughes + + * NEWS: + Add features from b28 not already released (mainly + those changes in HotSpot 20->23). + +2013-10-07 Andrew John Hughes + + * Makefile.am: + (OPENJDK_DATE): Set to date of b28. + (OPENJDK_SHA256SUM): Likewise for SHA256 checksum. + (OPENJDK_URL): Use new OPENJDK-6 project URL. + 2013-09-24 Andrew John Hughes * patches/hotspot/hs23/remove_bad_overrides.patch: diff -r 64de09c6e614 -r ab595f7ee5a8 Makefile.am --- a/Makefile.am Tue Sep 24 17:44:25 2013 +0100 +++ b/Makefile.am Fri Nov 22 22:43:51 2013 +0000 @@ -1,9 +1,9 @@ # Dependencies -OPENJDK_DATE = 26_oct_2012 -OPENJDK_SHA256SUM = 044c3877b15940ff04f8aa817337f2878a00cc89674854557f1a02f15b1802a0 -OPENJDK_VERSION = b28 -OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ +OPENJDK_DATE = 04_oct_2013 +OPENJDK_SHA256SUM = ac4fceed060ad61dab938c41181455fb0910f58f6944f820f0637b0f0c64bf75 +OPENJDK_VERSION = b29 +OPENJDK_URL = https://java.net/downloads/openjdk6/ CACAO_VERSION = 68fe50ac34ec CACAO_SHA256SUM = b8230f20d7022f9230bbfea13b2f3f179b2f42db40138ac6d32c82fc418ffc3a @@ -281,7 +281,14 @@ DROP_PATCHES = SECURITY_PATCHES = \ - patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch + patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch \ + patches/openjdk/8024914-swapped_usage.patch \ + patches/openjdk/8015614-update_build.patch \ + patches/openjdk/8016256-finalization_final.patch \ + patches/openjdk/8023683-enhance_class_file_parsing.patch \ + patches/openjdk/8023457-tracing_mutex.patch \ + patches/openjdk/8020943-memory_leak.patch \ + patches/openjdk/8023478-hs_crash.patch SPECIAL_SECURITY_PATCH_1 = patches/security/20120214/7112642.patch SPECIAL_SECURITY_PATCH_2 = patches/security/20130618/8009071-improve_shape_handling.patch @@ -515,7 +522,6 @@ patches/openjdk/8006536-remove_trailing_slashes.patch \ patches/openjdk/8009165-inappropriate_method_in_reflectutil.patch \ patches/openjdk/8009217-fix_test_compile.patch \ - patches/openjdk/8009463-space_and_final_backslash.patch \ patches/openjdk/8009610-blacklist_malware_certificate.patch \ patches/openjdk/8010213-set_socketoptions_windows.patch \ patches/openjdk/8010714-xml_dsig_retrievalmethod.patch \ @@ -523,25 +529,12 @@ patches/openjdk/8011313-OCSP_timeout_wrong_value.patch \ patches/openjdk/8011992-MlibOpsTest_failed.patch \ patches/openjdk/8012112-MlibOpsTest_fails.patch \ - patches/openjdk/8012617-arrayindexoutofbounds_linebreakmeasurer.patch \ patches/openjdk/8012933-appcontext_disposed_too_early.patch \ patches/openjdk/8013196-timezone_getdefault_throws_exception.patch \ patches/openjdk/8014205-blank_swing_dialogs_windows.patch \ patches/openjdk/8014427-raster_regression.patch \ patches/openjdk/8014676-javadebugger_space_in_paths.patch \ patches/openjdk/8014968-OCSP_timeout_default.patch \ - patches/openjdk/8002070-remove_logger_stack_search.patch \ - patches/openjdk/8002070-remove_logger_stack_search_2.patch \ - patches/openjdk/8010118-caller_sensitive.patch \ - patches/openjdk/8010727-empty_logger_name.patch \ - patches/openjdk/8010939-logmanager_deadlock.patch \ - patches/openjdk/8011990-logger_test_urls.patch \ - patches/openjdk/8013380-logger_stack_walk_glassfish.patch \ - patches/openjdk/8013380-handle_renames.patch \ - patches/openjdk/8014745-logger_stack_walk_switch.patch \ - patches/openjdk/8012243-serial_regression.patch \ - patches/openjdk/8014718-remove_logging_suntoolkit.patch \ - patches/openjdk/8011139-revise_checking_getenclosingclass.patch \ patches/openjdk/6541350-tz_display_names_l10n.patch \ patches/openjdk/6821191-tz_display_names_l10n.patch \ patches/openjdk/6977550-tzdata2010l.patch \ @@ -558,7 +551,6 @@ patches/openjdk/7198570-tzdata2012f.patch \ patches/openjdk/8002225-tzdata2012i.patch \ patches/openjdk/8009987-tzdata2013b.patch \ - patches/openjdk/7196533-timezone_bottleneck.patch \ patches/openjdk/6636370-appcontext_simplification.patch \ patches/openjdk/6636331-appcontext_concurrentmodificationexception.patch \ patches/sparc-ptracefix.patch \ @@ -632,7 +624,9 @@ patches/arm/cc_compile-04.patch \ patches/arm/cc_compile-05.patch \ patches/arm/cc_compile-06.patch \ - patches/hotspot/hs23/arm-hsdis.patch + patches/hotspot/hs23/arm-hsdis.patch \ + patches/openjdk/7025066-embedded_build.patch \ + patches/s390_casts.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -846,6 +840,11 @@ KRB5_CFLAGS="${KRB5_CFLAGS}" endif +if ENABLE_JAR_COMPRESSION +ICEDTEA_ENV += \ + COMPRESS_JARS="true" +endif + # OpenJDK ecj build environment. ICEDTEA_ENV_ECJ = $(ICEDTEA_ENV) \ ALT_OUTPUTDIR="$(ECJ_BUILD_OUTPUT_DIR)" \ @@ -1070,7 +1069,7 @@ if [ -e $(OPENJDK_SRC_ZIP) ] ; then \ mv $(OPENJDK_SRC_ZIP) $(OPENJDK_SRC_ZIP).old ; \ fi ; \ - $(WGET) $(OPENJDK_URL)$(OPENJDK_SRC_ZIP) -O $(OPENJDK_SRC_ZIP); \ + $(WGET) $(OPENJDK_URL)$(OPENJDK_SRC_ZIP) --no-check-certificate -O $(OPENJDK_SRC_ZIP); \ if ! echo "$(OPENJDK_SHA256SUM) $(OPENJDK_SRC_ZIP)" \ | $(SHA256SUM) --check ; then \ echo "ERROR: Bad download of OpenJDK zip"; false; \ diff -r 64de09c6e614 -r ab595f7ee5a8 NEWS --- a/NEWS Tue Sep 24 17:44:25 2013 +0100 +++ b/NEWS Fri Nov 22 22:43:51 2013 +0000 @@ -14,39 +14,870 @@ New in release 1.13.0 (201X-XX-XX): * New features - - PR1317: Provide an option to build with a more up-to-date HotSpot - PR1458: Make use of bootstrap tools & -Xbootclasspath patches optional - PR718: Backport LCMS2 support from IcedTea7 + - PR1288: Allow JARs to be optionally compressed by setting COMPRESS_JARS +* Import of OpenJDK6 b28 + - OJ1: Confirm that community members can commit to hotspot in OpenJDK6 + - OJ2: Revert unnecessary file added to hotspot repo + - OJ4: Backport the new version of copyMemory from OpenJDK 7 to allow Snappy to build + - OJ10: Add additional use of generics to satisfy OpenJDK 6 javac + - OJ11: Add generics to javadoc to allow it to compile with recent backports + - OJ12: Xalan/xerxes classes don't have access to its own internal packages + - OJ13: Font configuration problem on RHEL6 systems + - OJ15: Windows lacks SIZE_MAX + - OJ16: Windows lacks variadic macros + - OJ17: Error in Backport of Windows version of 7170730 + - OJ18: HotSpot 23's Java code won't build with a 1.5 compiler due to @Override on interfaces + - S4965777: GC changes to support use of discovered field for pending references + - S5091921: Sign flip issues in loop optimizer + - S6310967: SA: jstack -m produce failures in output + - S6330863: vm/gc/InfiniteList.java fails intermittently due to timeout + - S6354181: nsk.logging.stress.threads.scmhml001 fails assertion in "src/share/vm/oops/instanceKlass.cpp, 111" + - S6385687: UseFastEmptyMethods/UseFastAccessorMethods considered harmful + - S6472925: OutOfMemoryError fails to generate stack trace as it now ought + - S6478991: C1 NullCheckEliminator yields incorrect exceptions + - S6484965: G1: piggy-back liveness accounting phase on marking + - S6484982: G1: process references during evacuation pauses + - S6512830: Error: assert(tag_at(which).is_unresolved_klass(), "Corrupted constant pool") + - S6528013: C1 CTW failure with -XX:+VerifyOops assert(allocates2(pc),"") + - S6535709: interrupt of wait()ing thread isn't triggerring InterruptedException - test intwait3 + - S6552561: MaxRecursiveInlineLevel flag doesn't operate correctly + - S6564610: assert(UseCompiler || CompileTheWorld, "UseCompiler should be set by now.") + - S6566340: Restore use of stillborn flag to signify a thread that was stopped before it started + - S6588413: Use -fvisibility=hidden for gcc compiles + - S6589823: Error: meet not symmetric + - S6591247: C2 cleans up the merge point too early during SplitIf + - S6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads + - S6608385: G1: need to support parallel reference processing + - S6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m + - S6627983: G1: Bad oop deference during marking + - S6631003: Add hg tip changeset to build image + - S6636110: unaligned stackpointer leads to crash during deoptimization + - S6668573: CMS: reference processing crash if ParallelCMSThreads > ParallelGCThreads + - S6679764: enable parallel compaction by default + - S6725983: Assertion "method->method_holder())->is_not_initialized(),"method holder must be initialized" + - S6728025: LinkResolver is missing some ResourceMarks + - S6741940: Nonvolatile XMM registers not preserved across JNI calls + - S6766644: Redefinition of compiled method fails with assertion "Can not load classes with the Compiler thread" + - S6777083: assert(target != __null,"must not be null") + - S6789220: CMS: intermittent timeout running nsk/regression/b4796926 + - S6791672: enable 1G and larger pages on solaris + - S6804436: G1: heap region indices should be size_t + - S6809483: hotspot:::method_entry are not correctly generated for "method()V" + - S6810861: G1: support -XX:+{PrintClassHistogram,HeapDump}{Before,After}FullGC + - S6812217: Base memory of MergeMem node violates assert during killing expanded AllocateArray node + - S6814390: G1: remove the concept of non-generational G1 + - S6817525: turn on method handle functionality by default for JSR 292 + - S6820066: Check that -XX:ParGCArrayScanChunk has a value larger than zero. + - S6839872: remove implementation inheritance from JSR 292 APIs + - S6841742: par compact - remove unused/unsupported options + - S6845426: non-static method with no args is called during the class initialization process + - S6865265: JVM crashes with "missing exception handler" error + - S6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests + - S6888336: G1: avoid explicitly marking and pushing objects in survivor spaces + - S6890673: Eliminate allocations immediately after EA + - S6896099: Integrate CMS heap ergo with default heap sizing ergo + - S6909440: C2 fails with assertion (_always_cold->is_cold(),"must always be cold") + - S6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?") + - S6916968: CMS: freeList.cpp:304 assert(_allocation_stats.prevSweep() + ..., "Conservation Principle") + - S6918185: Remove unused code for lost card-marking optimization in BacktraceBuilder + - S6923430: G1: assert(res != 0,"This should have worked.") + - S6924259: Remove String.count/String.offset + - S6929868: G1: introduce min / max young gen size bounds + - S6939861: JVM should handle more conversion operations + - S6941923: RFE: Handling large log files produced by long running Java Applications + - S6942326: x86 code in string_indexof() could read beyond reserved heap space + - S6946385: G1: jstat does not support G1 GC + - S6946417: G1: Java VisualVM does not support G1 properly. + - S6948149: G1: Imbalance in termination times + - S6951623: 3/3 possible performance problems in FollowReferences() and GetObjectsWithTags() + - S6954420: 2/4 jps shows "process information unavailable" sometimes + - S6962930: make the string table size configurable + - S6962931: move interned strings out of the perm gen + - S6964776: c2 should ensure the polling page is reachable on 64 bit + - S6965570: assert(!needs_patching && x->is_loaded(),"how do we know it's volatile if it's not loaded") + - S6972759: Step over not working after thrown exception and Pop + - S6976060: G1: humongous object allocations should initiate marking cycles when necessary + - S6981791: remove experimental code for JSR 292 + - S6986065: Rebrand exe/dll company names + - S6987703: iCMS: Intermittent hang with gc/gctests/CallGC/CallGC01 and +ExplicitGCInvokesConcurrent + - S6987991: JSR 292 phpreboot test/testtracefun2.phpr segfaults + - S6988308: assert((cnt > 0.0f) && (prob > 0.0f)) failed: Bad frequency assignment in if + - S6990015: Incorrect Icache line size is used for 64 bit x86 + - S6990212: JSR 292 JVMTI MethodEnter hook is not called for JSR 292 bootstrap and target methods + - S6990754: Use native memory and reference counting to implement SymbolTable + - S6992789: assert(phi->_idx >= nodes_size()) failed: only new Phi per instance memory slice + - S6993078: JSR 292 too many pushes: Lesp points into register window + - S6994322: Remove the is_tlab and is_noref / is_large_noref parameters from the CollectedHeap + - S6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify + - S6998541: JSR 292 implement missing return-type conversion for OP_RETYPE_RAW + - S7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification + - S7003401: Implement VM error-reporting functionality on erroneous termination + - S7003454: order constants in constant table by number of references in code + - S7004535: Clone loop predicate during loop unswitch + - S7004547: regular loop unroll should not unroll more than max unrolling From andrew at icedtea.classpath.org Sat Nov 23 09:27:39 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Sat, 23 Nov 2013 17:27:39 +0000 Subject: /hg/icedtea6-hg: Remove upstreamed HotSpot security patches. Message-ID: changeset b692fa22a093 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=b692fa22a093 author: Andrew John Hughes date: Sat Nov 23 17:26:52 2013 +0000 Remove upstreamed HotSpot security patches. 2012-11-23 Andrew John Hughes * patches/openjdk/8015614-update_build.patch, * patches/openjdk/8016256-finalization_final.patch, * patches/openjdk/8020943-memory_leak.patch, * patches/openjdk/8023457-tracing_mutex.patch, * patches/openjdk/8023478-hs_crash.patch, * patches/openjdk/8023683-enhance_class_file_parsing.patch, * patches/openjdk/8024914-swapped_usage.patch: Removed. * Makefile.am: (SECURITY_PATCHES): Remove upstreamed ones. diffstat: ChangeLog | 12 ++ Makefile.am | 9 +- patches/openjdk/8015614-update_build.patch | 60 ------------ patches/openjdk/8016256-finalization_final.patch | 24 ---- patches/openjdk/8020943-memory_leak.patch | 32 ------ patches/openjdk/8023457-tracing_mutex.patch | 79 ---------------- patches/openjdk/8023478-hs_crash.patch | 21 ---- patches/openjdk/8023683-enhance_class_file_parsing.patch | 35 ------- patches/openjdk/8024914-swapped_usage.patch | 58 ----------- 9 files changed, 13 insertions(+), 317 deletions(-) diffs (375 lines): diff -r ab595f7ee5a8 -r b692fa22a093 ChangeLog --- a/ChangeLog Fri Nov 22 22:43:51 2013 +0000 +++ b/ChangeLog Sat Nov 23 17:26:52 2013 +0000 @@ -1,3 +1,15 @@ +2012-11-23 Andrew John Hughes + + * patches/openjdk/8015614-update_build.patch, + * patches/openjdk/8016256-finalization_final.patch, + * patches/openjdk/8020943-memory_leak.patch, + * patches/openjdk/8023457-tracing_mutex.patch, + * patches/openjdk/8023478-hs_crash.patch, + * patches/openjdk/8023683-enhance_class_file_parsing.patch, + * patches/openjdk/8024914-swapped_usage.patch: Removed. + * Makefile.am: + (SECURITY_PATCHES): Remove upstreamed ones. + 2012-11-22 Andrew John Hughes * patches/openjdk/4075303-javap_update.patch, diff -r ab595f7ee5a8 -r b692fa22a093 Makefile.am --- a/Makefile.am Fri Nov 22 22:43:51 2013 +0000 +++ b/Makefile.am Sat Nov 23 17:26:52 2013 +0000 @@ -281,14 +281,7 @@ DROP_PATCHES = SECURITY_PATCHES = \ - patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch \ - patches/openjdk/8024914-swapped_usage.patch \ - patches/openjdk/8015614-update_build.patch \ - patches/openjdk/8016256-finalization_final.patch \ - patches/openjdk/8023683-enhance_class_file_parsing.patch \ - patches/openjdk/8023457-tracing_mutex.patch \ - patches/openjdk/8020943-memory_leak.patch \ - patches/openjdk/8023478-hs_crash.patch + patches/security/20120830/7182135-impossible_to_use_some_editors_directly.patch SPECIAL_SECURITY_PATCH_1 = patches/security/20120214/7112642.patch SPECIAL_SECURITY_PATCH_2 = patches/security/20130618/8009071-improve_shape_handling.patch diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8015614-update_build.patch --- a/patches/openjdk/8015614-update_build.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -# HG changeset patch -# User erikj -# Date 1381419677 -3600 -# Thu Oct 10 16:41:17 2013 +0100 -# Node ID 918a90950fa69e5247e3af2599d2e7674d64e3d6 -# Parent d0b5dc55e72cde11331399cbb960458b8f45ea4a -8015614: Update build settings -Reviewed-by: tbell, dholmes, ahgross - -diff -r d0b5dc55e72c -r 918a90950fa6 make/windows/makefiles/compile.make ---- openjdk/hotspot/make/windows/makefiles/compile.make Tue Sep 17 12:04:11 2013 +0200 -+++ openjdk/hotspot/make/windows/makefiles/compile.make Thu Oct 10 16:41:17 2013 +0100 -@@ -140,6 +140,7 @@ - !if "$(MSC_VER)" == "1600" - COMPILER_NAME=VS2010 - !endif -+SAFESEH_FLAG = /SAFESEH - !endif - - # By default, we do not want to use the debug version of the msvcrt.dll file -@@ -170,6 +171,7 @@ - PRODUCT_OPT_OPTION = /O2 /Oy- - FASTDEBUG_OPT_OPTION = /O2 /Oy- - DEBUG_OPT_OPTION = /Od -+SAFESEH_FLAG = /SAFESEH - !endif - - !if "$(COMPILER_NAME)" == "VS2005" -@@ -186,6 +188,7 @@ - # Manifest Tool - used in VS2005 and later to adjust manifests stored - # as resources inside build artifacts. - MT=mt.exe -+SAFESEH_FLAG = /SAFESEH - !endif - - !if "$(COMPILER_NAME)" == "VS2008" -@@ -209,8 +212,8 @@ - # as resources inside build artifacts. - MT=mt.exe - !if "$(BUILDARCH)" == "i486" --LD_FLAGS = /SAFESEH $(LD_FLAGS) --!endif -+LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS) -+SAFESEH_FLAG = /SAFESEH - !endif - - # Compile for space above time. -diff -r d0b5dc55e72c -r 918a90950fa6 make/windows/makefiles/sa.make ---- openjdk/hotspot/make/windows/makefiles/sa.make Tue Sep 17 12:04:11 2013 +0200 -+++ openjdk/hotspot/make/windows/makefiles/sa.make Thu Oct 10 16:41:17 2013 +0100 -@@ -107,6 +107,9 @@ - !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" - SA_LFLAGS = $(SA_LFLAGS) /map /debug - !endif -+!if "$(BUILDARCH)" == "i486" -+SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS) -+!endif - - # Note that we do not keep sawindbj.obj around as it would then - # get included in the dumpbin command in build_vm_def.sh diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8016256-finalization_final.patch --- a/patches/openjdk/8016256-finalization_final.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -# HG changeset patch -# User sgabdura -# Date 1373869363 -14400 -# Mon Jul 15 10:22:43 2013 +0400 -# Node ID bbd051c9089f61c65fe7d95487d47920164c7ee0 -# Parent 918a90950fa69e5247e3af2599d2e7674d64e3d6 -8016256: Make finalization final -Reviewed-by: hseigel - -diff -r 918a90950fa6 -r bbd051c9089f src/share/vm/classfile/classFileParser.cpp ---- openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp Thu Oct 10 16:41:17 2013 +0100 -+++ openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp Mon Jul 15 10:22:43 2013 +0400 -@@ -3762,9 +3762,8 @@ - for (int index = 0; index < num_methods; index++) { - methodOop m = (methodOop)methods->obj_at(index); - -- // skip private, static and methods -- if ((!m->is_private()) && -- (!m->is_static()) && -+ // skip static and methods -+ if ((!m->is_static()) && - (m->name() != vmSymbols::object_initializer_name())) { - - Symbol* name = m->name(); diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8020943-memory_leak.patch --- a/patches/openjdk/8020943-memory_leak.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -# HG changeset patch -# User kevinw -# Date 1375442806 -3600 -# Fri Aug 02 12:26:46 2013 +0100 -# Node ID 2660219948088d89dd3fc285e093dab2520349e5 -# Parent 4b3487aa553cca3fb7ecb74d284b9524d0bf5bf8 -8020943: Memory leak when GCNotifier uses create_from_platform_dependent_str() -Reviewed-by: mgerdin, fparain, dcubed - -diff -r 4b3487aa553c -r 266021994808 src/share/vm/services/gcNotifier.cpp ---- openjdk/hotspot/src/share/vm/services/gcNotifier.cpp Thu Oct 17 19:28:00 2013 +0100 -+++ openjdk/hotspot/src/share/vm/services/gcNotifier.cpp Fri Aug 02 12:26:46 2013 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -211,9 +211,9 @@ - NotificationMark nm(request); - Handle objGcInfo = createGcInfo(request->gcManager, request->gcStatInfo, THREAD); - -- Handle objName = java_lang_String::create_from_platform_dependent_str(request->gcManager->name(), CHECK); -- Handle objAction = java_lang_String::create_from_platform_dependent_str(request->gcAction, CHECK); -- Handle objCause = java_lang_String::create_from_platform_dependent_str(request->gcCause, CHECK); -+ Handle objName = java_lang_String::create_from_str(request->gcManager->name(), CHECK); -+ Handle objAction = java_lang_String::create_from_str(request->gcAction, CHECK); -+ Handle objCause = java_lang_String::create_from_str(request->gcCause, CHECK); - - klassOop k = Management::sun_management_GarbageCollectorImpl_klass(CHECK); - instanceKlassHandle gc_mbean_klass(THREAD, k); diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8023457-tracing_mutex.patch --- a/patches/openjdk/8023457-tracing_mutex.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -# HG changeset patch -# User mgronlun -# Date 1382034480 -3600 -# Thu Oct 17 19:28:00 2013 +0100 -# Node ID 4b3487aa553cca3fb7ecb74d284b9524d0bf5bf8 -# Parent 3091721c83780cbb9a946f05007651e0bd09490b -8023457: Event based tracing framework needs a mutex for thread groups -Reviewed-by: acorn, sla - -diff -r 3091721c8378 -r 4b3487aa553c src/share/vm/runtime/mutexLocker.cpp ---- openjdk/hotspot/src/share/vm/runtime/mutexLocker.cpp Sat Aug 24 00:14:46 2013 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/mutexLocker.cpp Thu Oct 17 19:28:00 2013 +0100 -@@ -134,12 +134,16 @@ - - Mutex* Management_lock = NULL; - Monitor* Service_lock = NULL; --Mutex* Stacktrace_lock = NULL; -+Monitor* PeriodicTask_lock = NULL; - -+#ifdef INCLUDE_TRACE - Monitor* JfrQuery_lock = NULL; -+Mutex* JfrStacktrace_lock = NULL; - Monitor* JfrMsg_lock = NULL; - Mutex* JfrBuffer_lock = NULL; - Mutex* JfrStream_lock = NULL; -+Mutex* JfrThreadGroups_lock = NULL; -+#endif - - #define MAX_NUM_MUTEX 128 - static Monitor * _mutex_array[MAX_NUM_MUTEX]; -@@ -215,7 +219,6 @@ - def(Patching_lock , Mutex , special, true ); // used for safepointing and code patching. - def(ObjAllocPost_lock , Monitor, special, false); - def(Service_lock , Monitor, special, true ); // used for service thread operations -- def(Stacktrace_lock , Mutex, special, true ); // used for JFR stacktrace database - def(JmethodIdCreation_lock , Mutex , leaf, true ); // used for creating jmethodIDs. - - def(SystemDictionary_lock , Monitor, leaf, true ); // lookups done by VM thread -@@ -279,12 +282,18 @@ - def(Debug2_lock , Mutex , nonleaf+4, true ); - def(Debug3_lock , Mutex , nonleaf+4, true ); - def(ProfileVM_lock , Monitor, nonleaf+4, false); // used for profiling of the VMThread -- def(CompileThread_lock , Monitor, nonleaf+5, false ); -+ def(CompileThread_lock , Monitor, nonleaf+5, false); -+ def(PeriodicTask_lock , Monitor, nonleaf+5, true); - -+#ifdef INCLUDE_TRACE - def(JfrQuery_lock , Monitor, nonleaf, true); // JFR locks, keep these in consecutive order - def(JfrMsg_lock , Monitor, nonleaf+2, true); - def(JfrBuffer_lock , Mutex, nonleaf+3, true); -+ def(JfrThreadGroups_lock , Mutex, nonleaf+1, true); - def(JfrStream_lock , Mutex, nonleaf+4, true); -+ def(JfrStacktrace_lock , Mutex, special, true ); -+#endif -+ - } - - GCMutexLocker::GCMutexLocker(Monitor * mutex) { -diff -r 3091721c8378 -r 4b3487aa553c src/share/vm/runtime/mutexLocker.hpp ---- openjdk/hotspot/src/share/vm/runtime/mutexLocker.hpp Sat Aug 24 00:14:46 2013 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/mutexLocker.hpp Thu Oct 17 19:28:00 2013 +0100 -@@ -136,12 +136,16 @@ - - extern Mutex* Management_lock; // a lock used to serialize JVM management - extern Monitor* Service_lock; // a lock used for service thread operation --extern Mutex* Stacktrace_lock; // used to guard access to the stacktrace table -+extern Monitor* PeriodicTask_lock; // protects the periodic task structure - -+#ifdef INCLUDE_TRACE -+extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table - extern Monitor* JfrQuery_lock; // protects JFR use - extern Monitor* JfrMsg_lock; // protects JFR messaging - extern Mutex* JfrBuffer_lock; // protects JFR buffer operations - extern Mutex* JfrStream_lock; // protects JFR stream access -+extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups -+#endif - - // A MutexLocker provides mutual exclusion with respect to a given mutex - // for the scope which contains the locker. The lock is an OS lock, not diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8023478-hs_crash.patch --- a/patches/openjdk/8023478-hs_crash.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -# HG changeset patch -# User kevinw -# Date 1379364550 25200 -# Mon Sep 16 13:49:10 2013 -0700 -# Node ID e8d1979fe077eda9a94528c4b76dd4c5243d5dec -# Parent 2660219948088d89dd3fc285e093dab2520349e5 -8023478: Test fails with HS crash in GCNotifier. -Reviewed-by: sla - -diff -r 266021994808 -r e8d1979fe077 src/share/vm/services/gcNotifier.cpp ---- openjdk/hotspot/src/share/vm/services/gcNotifier.cpp Fri Aug 02 12:26:46 2013 +0100 -+++ openjdk/hotspot/src/share/vm/services/gcNotifier.cpp Mon Sep 16 13:49:10 2013 -0700 -@@ -209,7 +209,7 @@ - GCNotificationRequest *request = getRequest(); - if (request != NULL) { - NotificationMark nm(request); -- Handle objGcInfo = createGcInfo(request->gcManager, request->gcStatInfo, THREAD); -+ Handle objGcInfo = createGcInfo(request->gcManager, request->gcStatInfo, CHECK); - - Handle objName = java_lang_String::create_from_str(request->gcManager->name(), CHECK); - Handle objAction = java_lang_String::create_from_str(request->gcAction, CHECK); diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8023683-enhance_class_file_parsing.patch --- a/patches/openjdk/8023683-enhance_class_file_parsing.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# HG changeset patch -# User iklam -# Date 1377328486 25200 -# Sat Aug 24 00:14:46 2013 -0700 -# Node ID 3091721c83780cbb9a946f05007651e0bd09490b -# Parent bbd051c9089f61c65fe7d95487d47920164c7ee0 -8023683: Enhance class file parsing -Summary: Use the value returned by REALLOC_RESOURCE_ARRAY() -Reviewed-by: coleenp, ahgross - -diff -r bbd051c9089f -r 3091721c8378 src/share/vm/classfile/classFileParser.cpp ---- openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp Mon Jul 15 10:22:43 2013 +0400 -+++ openjdk/hotspot/src/share/vm/classfile/classFileParser.cpp Sat Aug 24 00:14:46 2013 -0700 -@@ -1821,8 +1821,8 @@ - } - if (lvt_cnt == max_lvt_cnt) { - max_lvt_cnt <<= 1; -- REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); -- REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); -+ localvariable_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); -+ localvariable_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); - } - localvariable_table_start[lvt_cnt] = - parse_localvariable_table(code_length, -@@ -1851,8 +1851,8 @@ - // Parse local variable type table - if (lvtt_cnt == max_lvtt_cnt) { - max_lvtt_cnt <<= 1; -- REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); -- REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); -+ localvariable_type_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); -+ localvariable_type_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); - } - localvariable_type_table_start[lvtt_cnt] = - parse_localvariable_table(code_length, diff -r ab595f7ee5a8 -r b692fa22a093 patches/openjdk/8024914-swapped_usage.patch --- a/patches/openjdk/8024914-swapped_usage.patch Fri Nov 22 22:43:51 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -# HG changeset patch -# User tschatzl -# Date 1379412251 -7200 -# Tue Sep 17 12:04:11 2013 +0200 -# Node ID d0b5dc55e72cde11331399cbb960458b8f45ea4a -# Parent 41d2a089e66401c8815af0c6b6efd2af9aeabe99 -8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp -Summary: Incorrect usage of idx_t where bm_word_t is appropriate. -Reviewed-by: tschatzl, brutisso -Contributed-by: Dan Horak - -diff -r 41d2a089e664 -r d0b5dc55e72c src/share/vm/utilities/bitMap.inline.hpp ---- openjdk/hotspot/src/share/vm/utilities/bitMap.inline.hpp Fri Oct 04 12:22:34 2013 -0400 -+++ openjdk/hotspot/src/share/vm/utilities/bitMap.inline.hpp Tue Sep 17 12:04:11 2013 +0200 -@@ -52,16 +52,16 @@ - - inline bool BitMap::par_set_bit(idx_t bit) { - verify_index(bit); -- volatile idx_t* const addr = word_addr(bit); -- const idx_t mask = bit_mask(bit); -- idx_t old_val = *addr; -+ volatile bm_word_t* const addr = word_addr(bit); -+ const bm_word_t mask = bit_mask(bit); -+ bm_word_t old_val = *addr; - - do { -- const idx_t new_val = old_val | mask; -+ const bm_word_t new_val = old_val | mask; - if (new_val == old_val) { - return false; // Someone else beat us to it. - } -- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val, -+ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val, - (volatile void*) addr, - (void*) old_val); - if (cur_val == old_val) { -@@ -73,16 +73,16 @@ - - inline bool BitMap::par_clear_bit(idx_t bit) { - verify_index(bit); -- volatile idx_t* const addr = word_addr(bit); -- const idx_t mask = ~bit_mask(bit); -- idx_t old_val = *addr; -+ volatile bm_word_t* const addr = word_addr(bit); -+ const bm_word_t mask = ~bit_mask(bit); -+ bm_word_t old_val = *addr; - - do { -- const idx_t new_val = old_val & mask; -+ const bm_word_t new_val = old_val & mask; - if (new_val == old_val) { - return false; // Someone else beat us to it. - } -- const idx_t cur_val = (idx_t) Atomic::cmpxchg_ptr((void*) new_val, -+ const bm_word_t cur_val = (bm_word_t) Atomic::cmpxchg_ptr((void*) new_val, - (volatile void*) addr, - (void*) old_val); - if (cur_val == old_val) { From ptisnovs at icedtea.classpath.org Mon Nov 25 00:29:53 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 25 Nov 2013 08:29:53 +0000 Subject: /hg/gfx-test: Added helper methods for rendering various types o... Message-ID: changeset c9b9cc4c7aaf in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=c9b9cc4c7aaf author: Pavel Tisnovsky date: Mon Nov 25 09:33:47 2013 +0100 Added helper methods for rendering various types of pies. Add one test into CAGOperationsOnPieAndRectangle test suite. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonCAGOperations.java | 102 ++++++++- src/org/gfxtest/testsuites/CAGOperationsOnPieAndRectangle.java | 34 +++- 3 files changed, 122 insertions(+), 21 deletions(-) diffs (217 lines): diff -r c446518578d9 -r c9b9cc4c7aaf ChangeLog --- a/ChangeLog Fri Nov 22 09:08:32 2013 +0100 +++ b/ChangeLog Mon Nov 25 09:33:47 2013 +0100 @@ -1,3 +1,10 @@ +2013-11-25 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonCAGOperations.java: + Added helper methods for rendering various types of pies. + * src/org/gfxtest/testsuites/CAGOperationsOnPieAndRectangle.java: + Add one test into CAGOperationsOnPieAndRectangle test suite. + 2013-11-22 Pavel Tisnovsky * src/org/gfxtest/framework/CommonCAGOperations.java: diff -r c446518578d9 -r c9b9cc4c7aaf src/org/gfxtest/framework/CommonCAGOperations.java --- a/src/org/gfxtest/framework/CommonCAGOperations.java Fri Nov 22 09:08:32 2013 +0100 +++ b/src/org/gfxtest/framework/CommonCAGOperations.java Mon Nov 25 09:33:47 2013 +0100 @@ -74,6 +74,16 @@ private final static int CHORD_EXTEND_ANGLE = 270; /** + * Start angle for pies. + */ + private final static int PIE_START_ANGLE = 45; + + /** + * Extend angle for pies. + */ + private final static int PIE_EXTEND_ANGLE = 270; + + /** * Compute radius of circle from the position of its center point in an * image size (width and height). * @@ -186,13 +196,30 @@ * @param yc * the Y coordinate of the center of chord * @param radius - * radius of circle + * radius of chord * @return newly created area containing one chord */ private static Area createChordArea(int xc, int yc, int radius) { - Arc2D circle = new Arc2D.Double(xc - radius, yc - radius, radius << 1, radius << 1, CHORD_START_ANGLE, CHORD_EXTEND_ANGLE, Arc2D.CHORD); - return new Area(circle); + Arc2D chord = new Arc2D.Double(xc - radius, yc - radius, radius << 1, radius << 1, CHORD_START_ANGLE, CHORD_EXTEND_ANGLE, Arc2D.CHORD); + return new Area(chord); + } + + /** + * Create pie area i.e. area consisting of just one pie. + * + * @param xc + * the X coordinate of the center of pie + * @param yc + * the Y coordinate of the center of pie + * @param radius + * radius of pie + * @return newly created area containing one pie + */ + private static Area createPieArea(int xc, int yc, int radius) + { + Arc2D pie = new Arc2D.Double(xc - radius, yc - radius, radius << 1, radius << 1, PIE_START_ANGLE, PIE_EXTEND_ANGLE, Arc2D.PIE); + return new Area(pie); } /** @@ -372,7 +399,7 @@ * * @param image * image to which area is to be drawn - * @return newly created area containing one circle + * @return newly created area containing one chord */ private static Area createBiggerCenteredChordArea(TestImage image) { @@ -385,6 +412,25 @@ } /** + * Create area composed of only one pie. This pie is placed on + * the center of the image and its radius is bigger than the length + * of rectangle side(s). + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one pie + */ + private static Area createBiggerCenteredPieArea(TestImage image) + { + // compute center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + // compute size of the circle + int size = computeSizeOfCircleOrRectangle(xc, yc) * 5 / 3; + return createPieArea(xc, yc, size); + } + + /** * Create area composed of only one circle. This circle is placed on * the center of the image and its radius is smaller than the length * of rectangle side(s). @@ -626,22 +672,6 @@ } /** - * Create new area constructed from bigger chord and rectangle using union - * operation. - * - * @param image - * image to which area is to be drawn - * @return newly created area - */ - public static Area createAreaFromBiggerChordAndRectangleUsingUnionOperator(TestImage image) - { - Area area = new Area(); - area.add(createBiggerCenteredChordArea(image)); - area.add(createCenteredRectangularArea(image)); - return area; - } - - /** * Create new area constructed from bigger circle and rectangle using intersect * operation. * @@ -706,6 +736,38 @@ } /** + * Create new area constructed from bigger chord and rectangle using union + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingUnionOperator(TestImage image) + { + Area area = new Area(); + area.add(createBiggerCenteredChordArea(image)); + area.add(createCenteredRectangularArea(image)); + return area; + } + + /** + * Create new area constructed from bigger pie and rectangle using union + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerPieAndRectangleUsingUnionOperator(TestImage image) + { + Area area = new Area(); + area.add(createBiggerCenteredPieArea(image)); + area.add(createCenteredRectangularArea(image)); + return area; + } + + /** * Create new area constructed from smaller circle placed inside a rectangle * using union operation. * diff -r c446518578d9 -r c9b9cc4c7aaf src/org/gfxtest/testsuites/CAGOperationsOnPieAndRectangle.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnPieAndRectangle.java Fri Nov 22 09:08:32 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnPieAndRectangle.java Mon Nov 25 09:33:47 2013 +0100 @@ -40,7 +40,16 @@ package org.gfxtest.testsuites; +import java.awt.Graphics2D; +import java.awt.geom.Area; + + + +import org.gfxtest.framework.CommonCAGOperations; +import org.gfxtest.framework.CommonRenderingStyles; import org.gfxtest.framework.GfxTest; +import org.gfxtest.framework.TestImage; +import org.gfxtest.framework.TestResult; import org.gfxtest.framework.annotations.GraphicsPrimitive; import org.gfxtest.framework.annotations.GraphicsPrimitives; import org.gfxtest.framework.annotations.RenderStyle; @@ -68,7 +77,30 @@ @Zoom(1) public class CAGOperationsOnPieAndRectangle extends GfxTest { - + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from pie and rectangle using union operator. The shape is + * rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigPieRectangleUnionStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromBiggerPieAndRectangleUsingUnionOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + /** * Entry point to the test suite. * From ptisnovs at icedtea.classpath.org Mon Nov 25 00:33:57 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 25 Nov 2013 08:33:57 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNPETest and testGetRes... Message-ID: changeset 52f3b6653ccd in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=52f3b6653ccd author: Pavel Tisnovsky date: Mon Nov 25 09:37:50 2013 +0100 Added new testGetResourceNPETest and testGetResourceNegativeTest cases into SimpleBindingsClassTest.java. diffstat: ChangeLog | 7 +++++++ src/org/RhinoTests/SimpleBindingsClassTest.java | 13 +++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) diffs (37 lines): diff -r d7a085f139ba -r 52f3b6653ccd ChangeLog --- a/ChangeLog Fri Nov 22 09:11:17 2013 +0100 +++ b/ChangeLog Mon Nov 25 09:37:50 2013 +0100 @@ -1,3 +1,10 @@ +2013-11-25 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleBindingsClassTest.java: + Added new testGetResourceNPETest and + testGetResourceNegativeTest cases into + SimpleBindingsClassTest.java. + 2013-11-22 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineClassTest.java: diff -r d7a085f139ba -r 52f3b6653ccd src/org/RhinoTests/SimpleBindingsClassTest.java --- a/src/org/RhinoTests/SimpleBindingsClassTest.java Fri Nov 22 09:11:17 2013 +0100 +++ b/src/org/RhinoTests/SimpleBindingsClassTest.java Mon Nov 25 09:37:50 2013 +0100 @@ -1670,6 +1670,19 @@ } /** + * Test for method javax.script.SimpleBindings.getClass().getResourceNPETest() + */ + protected void testGetResourceNPETest() { + try { + Object resource = this.simpleBindingsClass.getResource(null); + throw new AssertionError("NullPointerException expected!"); + } + catch (NullPointerException e) { + //This is OK OK + } + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleBindings */ @SuppressWarnings("cast") From jvanek at icedtea.classpath.org Mon Nov 25 01:10:26 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 25 Nov 2013 09:10:26 +0000 Subject: /hg/icedtea-web: fix to ManifestedJar1Test cases Message-ID: changeset bf80f38923af in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bf80f38923af author: Jiri Vanek date: Mon Nov 25 10:16:42 2013 +0100 fix to ManifestedJar1Test cases * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) throw an RuntimeException when more then one main jar is specified. Preventing app to start. * tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java:(manifestedJar1main2mainNoAppDesc), (manifestedJar1nothing2nothingAppDesc)fixed and adapted to change. diffstat: ChangeLog | 9 ++++++++ netx/net/sourceforge/jnlp/ResourcesDesc.java | 11 +++++++++- tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java | 7 ++--- 3 files changed, 22 insertions(+), 5 deletions(-) diffs (70 lines): diff -r bc73a1362e9c -r bf80f38923af ChangeLog --- a/ChangeLog Fri Nov 22 12:12:48 2013 +0100 +++ b/ChangeLog Mon Nov 25 10:16:42 2013 +0100 @@ -1,3 +1,12 @@ +2013-11-25 Jiri Vanek + + * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) throw an + RuntimeException when more then one main jar is specified. Preventing + app to start. + * tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: + (manifestedJar1main2mainNoAppDesc), (manifestedJar1nothing2nothingAppDesc) + fixed and adapted to change. + 2013-11-22 Jiri Vanek * tests/netx/unit/net/sourceforge/jnlp/DefaultLaunchHandlerTest.java: (init) diff -r bc73a1362e9c -r bf80f38923af netx/net/sourceforge/jnlp/ResourcesDesc.java --- a/netx/net/sourceforge/jnlp/ResourcesDesc.java Fri Nov 22 12:12:48 2013 +0100 +++ b/netx/net/sourceforge/jnlp/ResourcesDesc.java Mon Nov 25 10:16:42 2013 +0100 @@ -72,11 +72,20 @@ } public static JARDesc getMainJAR(List jars) { + JARDesc markedMain = null; for (JARDesc jar : jars) { if (jar.isMain()) { - return jar; + if (markedMain == null){ + markedMain = jar; + } else { + //more then one main jar specified. It stinks. Return null to die later null; + throw new RuntimeException("Multiple main JARs specified, refusing to continue."); + } } } + if (markedMain!=null){ + return markedMain; + } if (jars.size() > 0) { return jars.get(0); diff -r bc73a1362e9c -r bf80f38923af tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java --- a/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Fri Nov 22 12:12:48 2013 +0100 +++ b/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Mon Nov 25 10:16:42 2013 +0100 @@ -155,14 +155,13 @@ * * Two jars, both with manifest, sboth with main tag, no app desc * - * thisis passing, SUSPICIOUS, but to lunch at least something is better then to lunch nothing at all. - * althoug it maybe SHOULD throw twoMainException */ @Test public void manifestedJar1main2mainNoAppDesc() throws Exception { String id = "ManifestedJar-1main2mainNoAppDesc"; ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp"); - assertManifestedJar1(id, pr); + assertNotManifestedJar1(id, pr); + assertNotManifestedJar2(id, pr); assertNotDead(id, pr); } @@ -210,7 +209,7 @@ public void manifestedJar1nothing2nothingAppDesc() throws Exception { String id = "ManifestedJar-1nothing2nothingAppDesc"; ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp"); - assertNotManifestedJar2(id, pr); + assertManifestedJar2(id, pr); assertNotManifestedJar1(id, pr); assertNotDead(id, pr); } From jvanek at redhat.com Mon Nov 25 03:22:06 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 25 Nov 2013 12:22:06 +0100 Subject: [rfc][icedtea-web] rewritten java console In-Reply-To: <528E4E34.3030303@redhat.com> References: <528E4E34.3030303@redhat.com> Message-ID: <529332DE.3020808@redhat.com> No brave soul to check the concept? tss :) Dont blame me later ;) J. On 11/21/2013 07:17 PM, Jiri Vanek wrote: > Hi all, after week of work there is complete rewrote of java console. > The motivation was that it was ugly and useless. > With new logging, when plugin is logging to its file, java aprt is logging into its file, when one cen easily redirect stderr/out to separate chanels and when one can set verbosity and headers in itw-settings or by environment variable. > With system logging on the way (although I did not yet decided how to do it), I believe java console should have some additional value. Maybe we can hunt applets developers with advertisement "we have better console" :) > > What I was misisng most, were missing plugin messages. So most of this patch is focused on including them. Other parts are focused on colour and setupable, powerfull console. > In meanwhile I stumbled over few bugs or incomplete features, so they are also included in this patch. I know i crossed the limits of review, and so after some general comments I will push in smaller steps. > > Generally in this patch: > - java console can receive plugin messages > - this was implemented by *new* pipe at the end. I tried various approaches (file, sockets, shared pipe) and this one had the best performance > - new pipe is now third parameter to jvm lunch > - console itself have highlight, and search and filtering capabilities > - advantage is, that when its hidden, or shown and debug of, then it have nearly no overhead. Debug on and visibel one can have some overhead, but nothing crucial (unless you set some terrible filters/settings) > - plugin si now logging to file > - log dir can be set in itw-settings (the deployment key was already in itw, so Ijust added textfield) > - the logs now have human readable name > > Small bugfixes and improvements > - the pies are now in XDG_RUNTIME_DIR - or in temp as they were if it is not setup > - headers (for c) are generated by shared function > - teh tmp path search is does in separate function > - headers in java are represented by object, and changed to string when it have sense > - fixed few newline terminators in PLUGINDEBUG/ERROR macros call > > and unluckily much more :) > > > > the "changelog" is like this: > > * netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java: > - added jtextfield and button "reset to default" to set KEY_USER_LOG_DIR > > * netx/net/sourceforge/jnlp/resources/Messages.properties: > - fixed and added few entries, but whole ConsoleOutputPane is waiting to be added > > *netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPane.java: > - is repalcement for old "twoplain text stdout/err" panels > - it have higlighlt, can sort, can filter, can search.. well apply and see;) > - is folowing observer/obsevable patter, and is updating smoothly > -- code hint -- > It is updating the lines, not regenrating all of them (unless necessary), however there is still an performance critical part, I do joptionpane.setText(srting) in all ways, and imho the parsing of html is here the worst. > I was trying to add text or whatever.. but no imprvement. Maybe because underlying document.insertString is creating new string anyway :) > Maybe I will swap to jtextpane in next iterations > ------------- > - most of the code are adding some listeners or layout fighting, so dont be scared ;) > > * netx/net/sourceforge/jnlp/util/logging/FileLog.java: > - created human readable, alphabet-sortable name > - much better constructor handling > > * netx/net/sourceforge/jnlp/util/logging/JavaConsole.java: > - removed old palintext stdout/err textareas > - added reader of new pipe, started only if pipe is presented > - messages from pluginare parsed to header and message > - java messages are already recieved as header and body > instead of remove textares, it now contains one (by default, can have endelss of them) ConsoleOutputPane > - update of ConsoleOutputPane is doen by observable,observer pattern > - all ConsoleOutputPane updates are disabled when console is hidden > > * netx/net/sourceforge/jnlp/util/logging/LogConfig.java: > - config made accessible , ConsoleOutputPane is setting default appearence based on them > > * netx/net/sourceforge/jnlp/util/logging/OutputController.java > - fixed isOutput, isError aproach (from static tomember), added isWarnig,isDebug,isNotDebug > - adapted to work with object Header instead of string header > - console is reciving headers always (but is showing them on demand) > - header code moved to new class (Header:) > > * netx/net/sourceforge/jnlp/util/logging/headers/Header.java: > - simple obkject representtig header > - is requesting > - String getMessage(); > - Header getHeader(); > > netx/net/sourceforge/jnlp/util/logging/headers/MessageWithHeader.java > - shared interface for JavaMessage and PluginMessage > > * netx/net/sourceforge/jnlp/util/logging/headers/JavaMessage.java: > - wrapper around Header and string message body > > > * netx/net/sourceforge/jnlp/util/logging/headers/ObservableMessagesProvider.java: > - abstraction for data source for ConsoleOutputPane > - the only implementation is JavaConsole > - enforcing > - List getData(); > - Observable getObservable(); > > * netx/net/sourceforge/jnlp/util/logging/headers/PluginHeader.java > - extending Header > - adding some plugin specific constants, preintint mark, and addindg original timestamp and preinti flag > > * netx/net/sourceforge/jnlp/util/logging/headers/PluginMessage.java > - second mplementation of MessageWithHeader > - have factory method to parse source string (parts of header and message) > > > * plugin/icedteanp/IcedTeaNPPlugin.cc: > - adding new pipe for debug messages->java > - gchar* debug_pipe_name > - the messages are buffered in FIFO (declared in IcedTeaPluginUtils.cc), but access to this fifo ave to be sinchronised - pthread_mutex_t debug_pipe_lock > - GIOChannel* debug_to_appletviewer - channel around pipe > - bool plugin_debug_to_console = true; - flag initialised form deployment-properties, log is used to decide whther create pipe, and whether to write to it,whether to initalisated buffer, and so on... > - creating (and cleaning in case of failure) logic in ititialisation - if plugin_debug_to_console is true, then pipe for debug messages is intialised. A bit later the thread reading buffer is stared > - if debug to console is true, path to debug pipe is passed to jvm > - two mwthods > - plugin_send_message_to_appletviewer_console and flush_plugin_send_message_to_appletviewer_console to opearte the pipe. > - they do not log to prevent deadlock > - adding logging into file possibility > - std::string plugin_file_log_name - name of file to save the plugin's part messages/*errors > - FILE * plugin_file_log; - stream to write to file > - eg the getMimeDesc or similar, are called *without* plugin initialisation. Or as separate nstance orhow to say it. So each call to them (mostly one or two per browser run) is creating a log file. But I would call it feature :) > - clenup of pipe and log fiel in shutdown time > - various fixes of new line at end of _MESSAGES_ > - generation of tmp dir path moved to std::string IcedTeaPluginUtilities::getTmpPath() (and used by std::string IcedTeaPluginUtilities::getRuntimePath()) > > > * plugin/icedteanp/IcedTeaNPPlugin.h: > declared extern public definitions of pthread_mutex_t debug_pipe_lock, plugin_debug_to_console; plugin_file_log; plugin_file_log_name;jvm_up; plugin_send_message_to_appletviewer_console and flush_plugin_send_message_to_appletviewer_console > > * plugin/icedteanp/IcedTeaParseProperties.cc: > - added logic to read deployment.console.startup.mode and eployment.user.logdir (or to provide default) (each read only once during initialisation) > > * plugin/icedteanp/IcedTeaParseProperties.h > - declared above > > * plugin/icedteanp/IcedTeaPluginUtils.cc > - declared buffer to store preinit messages and to buffer runtime messages - std::queue pre_jvm_message > - flush_pre_init_messages body of thread which is poping from queuq > - push_pre_init_messages - sinchronised push to queuq > -- code hint -- > I "synced" the thread via : > + struct timespec ts; > + ts.tv_sec = 1; > + ts.tv_nsec = 0; > + nanosleep(&ts ,0); > afaikit is not good :( But behave greate for me. But I have little experience withc synchroisatin i c/c++ :( > ---------------- > - IcedTeaPluginUtilities::initFileLog method to create path to file elog and open the stream > - initConsoleFile (and initErrFile with initOutFile) relicts from time when plugin messages were sen tto java side via files :) > - IcedTeaPluginUtilities::generateLogFileName - generating human redable log name - same as javaside, just with different prefix > - IcedTeaPluginUtilities::printDebugStatus() - method to log current status of debug settngs > - IcedTeaPluginUtilities::getTmpPath() :) > - IcedTeaPluginUtilities::getRuntimePath( returning value of XDG_RUNTIME_DIR ot getTmpPath if XDG_RUNTIME_DIR is not set. USed to create pipes destinations > > > * plugin/icedteanp/IcedTeaPluginUtils.h: > - nicer initialisation of log subsystems > - CREATE_HEADER jsut cosmetic changes > - PLUGIN_DEBU and ERROR are reusing the header, added psh to buffer and log to file > - declared new IcedTeaPluginUtilities methods > > * plugin/icedteanp/java/sun/applet/PluginMain.java: > - printed out imput arguments > - handled third one (debug pipe name) > > * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java* > omented out repeated endless "woken consumer" message - it was still spamming the outputs > > * tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc : > - partially considered existence of console logs > > * tests/netx/unit/net/sourceforge/jnlp/util/logging/JavaConsoleTest.java: > - added some tests for parsing the plugin message From jvanek at redhat.com Mon Nov 25 06:16:32 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 25 Nov 2013 15:16:32 +0100 Subject: [rfc][icedtea-web] removed most of checks to no output Message-ID: <52935BC0.8060302@redhat.com> This patch is stabilizing reproducers by removing checks for output lengths from all "normal" reproducers. In remote reproducers, where the "no output" is sometimes only point to pass/fail ( :((( ), the different approach was taken. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: anotherFixesToReproducers.patch Type: text/x-patch Size: 19233 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131125/0bfa76e5/anotherFixesToReproducers.patch From aazores at redhat.com Mon Nov 25 06:41:03 2013 From: aazores at redhat.com (Andrew Azores) Date: Mon, 25 Nov 2013 09:41:03 -0500 Subject: [rfc][icedtea-web] removed most of checks to no output In-Reply-To: <52935BC0.8060302@redhat.com> References: <52935BC0.8060302@redhat.com> Message-ID: <5293617F.9050901@redhat.com> On 11/25/2013 09:16 AM, Jiri Vanek wrote: > This patch is stabilizing reproducers by removing checks for output > lengths from all "normal" reproducers. > In remote reproducers, where the "no output" is sometimes only point > to pass/fail ( :((( ), the different approach was taken. > > J. Why the change from "const char*" to "char*" in IcedTeaNPPlugin.cc? Intentional or just something that slipped past? This results in a build error (failure.txt attachment) for me. Otherwise the patch looks good. Just running the tests myself to verify it. Thanks, -- Andrew A -------------- next part -------------- /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaNPPlugin.cc: In function ?char* NP_GetMIMEDescription()?: /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaNPPlugin.cc:1955:24: error: new declaration ?char* NP_GetMIMEDescription()? NP_GetMIMEDescription () ^ In file included from /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaNPPlugin.h:44:0, from /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaJavaRequestProcessor.h:47, from /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaScriptablePluginObject.h:45, from /home/aazores/icedtea/icedtea-web/build/../plugin/icedteanp/IcedTeaNPPlugin.cc:56: /usr/include/xulrunner-25.0/npfunctions.h:283:52: error: ambiguates old declaration ?const char* NP_GetMIMEDescription()? NP_EXPORT(const char*) NP_GetMIMEDescription(void); From jvanek at redhat.com Mon Nov 25 06:52:18 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 25 Nov 2013 15:52:18 +0100 Subject: [rfc][icedtea-web] removed most of checks to no output In-Reply-To: <5293617F.9050901@redhat.com> References: <52935BC0.8060302@redhat.com> <5293617F.9050901@redhat.com> Message-ID: <52936422.3000505@redhat.com> On 11/25/2013 03:41 PM, Andrew Azores wrote: > On 11/25/2013 09:16 AM, Jiri Vanek wrote: >> This patch is stabilizing reproducers by removing checks for output lengths from all "normal" reproducers. >> In remote reproducers, where the "no output" is sometimes only point to pass/fail ( :((( ), the different approach was taken. >> >> J. > > Why the change from "const char*" to "char*" in IcedTeaNPPlugin.cc? Intentional or just something that slipped past? This results in a build error (failure.txt attachment) for me. Yes, it slipped past. It was old system build. And I used same build dir as src dir. Thanx for noticing. > > Otherwise the patch looks good. Just running the tests myself to verify it. > > Thanks, > From ptisnovs at redhat.com Mon Nov 25 07:05:43 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Mon, 25 Nov 2013 10:05:43 -0500 (EST) Subject: Regression after refactoring for XDG specification In-Reply-To: <52779586.80302@redhat.com> References: <52699056.8000406@gmx.de> <52779586.80302@redhat.com> Message-ID: <2010251487.40202802.1385391943728.JavaMail.root@redhat.com> Hi Jiri, the patch itself seems harmless at least :-) but it would be nice to have a bigger set of reproducers for the most (IMHO common) issues - problems with privileges, selinux modes, nfs related issues etc. etc. And the validator class seems not to pass through all branches at the first sight. A few notes: + /** The system'subdirResult deployment.config file */ -> this (missing space) seems to be some strange result of a find&replace? + public int getPasses() { + public int getFailures() { -> Seems a bit tricky, need a javadoc! -> Well all public methods in public classes (even inner static classes) should have a javadoc, please :) +DCmaindircheckNotexists=After all tryes your configuration directory {0} do not exists -> tryes??? -> "attempts" would be better AFAIK Thanks, Pavel ----- Jiri Vanek wrote: > > > > -------- Original Message -------- > Subject: Re: [icedtea-web] Regression after refactoring for XDG specification > Date: Thu, 24 Oct 2013 23:25:42 +0200 > From: Jacob Wisor > To: distro-pkg-dev at openjdk.java.net > CC: Jiri Vanek > > Hello! > > Jiri Vanek wrote: > > Hi! > > > > Can i push? This patch will be soon inapplicable, and it is heavily needed. > > Generally speaking, as I already mentioned this approach is too complex in my > opinion. And, I don't care really anymore because the initial requirement or > intention was to > 1. check whether the system implements the XDG specification and > 2. if it does, make sure that all necessary parent directories are created in a > "virgin" user's home directory. > Not much else. So I think this has got a little bit out of hand. But, I won't > oppose this patch as long as it does what it should do. And, I like the new > DirectoryValidator class. ;-) > Nevertheless, I would be happier if some other IcedTea-Web hacker would review > this patch too, with my remarks on it in mind. > > I also have to mention that I did not have the time to actually apply this patch > and test it. > > > diff -r 6124fd87eaba > > tests/netx/unit/net/sourceforge/jnlp/config/DirectoryValidatorTest.java > > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > > +++ b/tests/netx/unit/net/sourceforge/jnlp/config/DirectoryValidatorTest.java > > Thu Sep 12 11:14:54 2013 +0200 > > @@ -0,0 +1,271 @@ > > +/* > > + Copyright (C) 2012 Red Hat, Inc. > > It's 2013 already ;-) > > Since you are so eager to have three different error messages, please at least > rewrite them into proper and rather simple English. See the examples below. > > > diff -r 6124fd87eaba netx/net/sourceforge/jnlp/resources/Messages.properties > > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Sep 11 > > 12:05:44 2013 +0200 > > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Sep 12 > > 11:14:54 2013 +0200 > > @@ -304,6 +304,9 @@ > > DCInternal=Internal error: {0} > > DCSourceInternal= > > DCUnknownSettingWithName=Property "{0}" is unknown. > > +DCmaindircheckNotexists=After all tryes your configuration directory {0} do > > not exists > > IcedTea-Web's configuration directory {0} does not exist. > > I do not actually understand what you have meant with this message. Should it > rather say: Could not create IcedTea-Web's configuration directory {0}.? > > > +DCmaindircheckNotdir=Your configuration directory {0} is not directory > > IcedTea-Web's configuration directory {0} is a file instead of a directory. > > > +DCmaindircheckRwproblem=Your configuration directory {0} can not be > > read/written properly > > Cannot write to or read from IcedTea-Web's configuration directory {0}. > > > [?] > > > > Ok, painfull review indeed! > > > > I did my best, see below: > > > > On 09/10/2013 09:34 PM, Jacob Wisor wrote: > >> Jiri Vanek schrieb: > >>> On 07/30/2013 06:14 PM, Jacob Wisor wrote: > > ..snip... > >>>> Nevertheless, thank you for addressing this issue, so please keep up > >>>> the good work. > >> > >>> + private static void ensureMainDirs() { > >> > >> I am especially unhappy with this method's naming. I am aware that > >> naming is a > >> difficult task in CS, but it pays off investing time into it. What > >> does it > >> ensure main directories about? What happens if something cannot be or > >> has not > >> been ensured? Does possibly a RuntimeException be thrown? Except from > >> that, what > >> are main directories supposed to be? Perhaps root directories? What > >> makes a > >> directory so distinct to be "main"? So, please find an adequate name > >> and add > >> some documentation. > > > > Ok. I refactored it a bit and added javadoc. I hope it is much cleaner > > now. Thanx for well deserved > > kick. > > Well, my comment was not meant to sound or feel like a kick. But, it obviously > has met its purpose. :-D > > As a side note; some quote from Disney's Mulan comes to my mind: "But I don't > want to kick the other kid's butt" :-D > > >> > >> Some language stuff: > >>> + System.out.println("WARNING: key " + key + " do > >>> not have > >> value, switching to default"); > >> > >> "WARNING: key " + key + " has no value, setting to default value" > >> > >>> + System.out.println("WARNING: key " + key + " do > >>> not have > >> value, skipping"); > >> > >> "WARNING: key " + key + " has no value, skipping" > >> > >>> + System.err.println("ERROR: key " + key + " > >>> value: " + > >> value + " not existed, and was NOT created"); > >> > >> "ERROR: Directory " + value + " denoted by key " + key + " does not > >> exist and > >> has not been created" > >> > >>> + System.out.println("OK: key " + key + " value: " > >>> + value > >> + " not existed, and was created"); > >> > >> "OK: Directory " + value + " denoted by key " + key + " did not exist > >> but has > >> been created" > > > > Used. Thank you. > >> > >>> + //not private for testing > >>> + static String testMainDir(File f, boolean verbose) { > >> > >> Since you have made this method not private please add some > >> documentation on > >> what this method's purpose is and what it does. It is definitely not > >> self-explanatory, even after reading its code. And, as mentioned below > >> it is > >> probably unnecessary complex and seems to be mixing functional code > >> with message > > I hope fixed by refactoring. > > > >> generating code. If you really want to keep this differentiated error > >> reporting > >> feature, I would strongly advise to deglomerate functional and message > >> generating code. > > > > Well, nothing else then pure laziness was on my side here:( Sorry! I > > have added wrapper class which > > is keeping the symptoms of failures, and message is generated later, > > based on those flags. > > > >> > >>> + StringBuilder messages = new StringBuilder(); > >>> + if (!f.exists()) { > >>> + String s = (R("DCmaindircheckNotexists", > >>> f.getAbsolutePath())); > >>> + if (verbose) { > >>> + System.err.println(s); > >>> + } > >>> + messages.append(s).append("\n"); > >>> + } > >>> + if (!f.isDirectory()) { > >>> + String s = (R("DCmaindircheckNotdir", > >>> f.getAbsolutePath())); > >>> + if (verbose) { > >>> + System.err.println(s); > >>> + } > >>> + messages.append(s).append("\n"); > >>> + } > >> > >> These two tests are redundant. File.isDirectory() implies a check for > >> existence. > >> It does not matter to the user or the application whether the desired > >> directory > >> does not exist or is not a directory. In effect the program cannot read > >> from/write to the desired location. > > > > Partially yes, and aprtially no. IsDirectory really implies fileExists, > > but the message then would > > be misleading. I really would like to keep those most common error cases > > separately. > >> > >>> + File testFile = null; > >>> + boolean ok = false; > >> > >> Naming again. What is ok? > > > > renamed. > >> > >>> + try { > >>> + testFile = File.createTempFile("maindir", "check", f); > >>> + if (testFile.exists()) { > >>> + ok = true; > >>> + } > >>> + try { > >>> + FileUtils.saveFile("ww", testFile); > >>> + String s = FileUtils.loadFileAsString(testFile); > >>> + if (!s.trim().equals("ww")) { > >>> + ok = false; > >>> + } > >> > >> This test misses probably its point because it is testing for creating > >> a *file* > >> not a *directory*. Most file systems with DACLs distinguish between > >> /creating/ > >> files or directories, and between /creating/ and /writing/ into files or > >> directories, so it is important to be precise here. Furthermore, it tests > >> writing into a file instead of perhaps writing into a file in a > >> subdirectory. > > > > Fair enough. I forgot about this case utterly. The test is now testing > > also subdirectory artificaly > > created inisde real directory (call to testMainDir one more times) > >> > >>> + } catch (Exception ex) { > >>> + if (JNLPRuntime.isDebug()) { > >>> + ex.printStackTrace(); > >>> + } > >>> + ok = false; > >>> + } > >> > >> No really, you should *not* catch arbitrary exceptions. It ain't just > >> some empty > >> words. > > > > Well.. There are cases where it brings moore good then wrong. Endless > > loops are very often > > implemented like: > > public void run(){ > > while (true){ > > try{ > > }catch(Throwable r){ > > log(t) > > } > > } > > } > > > > By otherwords, when exception should not , by no means, disturb the > > program - eg my case above - it > > does not sound so bad... > > Yes indeed, but this is because exceptions in such constructs usually get > handled properly by restoring or resetting whatever state is necessary so that > the code in the try block can continue or restart. > > > I would like to keep the exception cough as it is. > > The core of the problem is that you actually cannot guard any piece of code from > being subject to exceptions. You can only try handling an exception. In Java, > there is no way to define a critical section that guarantees successful code > execution unconditionally (of course, as long as the code is logically and > formally correct). Btw, this is exactly one reason why Java is not suitable for > real-time applications per se. > The most commonly forgotten kind of exception is an OutOfMemoryException. This > exception can disturb the flow of code at any time - not only when creating new > objects! Almost exactly the same is true for a general RuntimeException. Please > do not forget that not only Java code can throw exceptions but native code can > do too. Ignoring all exceptions is neither actually handling an exception nor a > solution. It is only acceptable if and only if the state of the application > after the exception has been ignored is consistent or in other words can be > dealt with by the following code. I am not really sure about it in this case. > > >> > >> After all, this method is overly complex and does not add any value > >> for the > >> user. So I would advise you to discard this method. > >> > >>> diff -r 79bdc074df81 > >>> netx/net/sourceforge/jnlp/resources/Messages.properties > >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri > >>> Aug 30 > >> 11:02:08 2013 -0400 > >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue > >>> Sep 03 > >> 13:56:53 2013 +0200 > >>> @@ -304,6 +304,9 @@ > >>> DCInternal=Internal error: {0} > >>> DCSourceInternal= > >>> DCUnknownSettingWithName=Property "{0}" is unknown. > >>> +DCmaindircheckNotexists=After all tryes your configuration directory > >>> {0} do > >> not exists > >>> +DCmaindircheckNotdir=Your configuration directory {0} is not directory > >>> +DCmaindircheckRwproblem=Your configuration directory {0} can not be > >> read/written properly > >> > >> Although it is nice of you to make precise distinctions between error > >> types to > >> help the user it is actually not necessary and does not offer any > >> additional > >> help when analyzing this problem. All these messages can be fused into > >> one > > > > I really think that two most common cases file instead of dir and > > insufficient privledges should be > > distinguished. > > > > Unless you stongly insists, I would like to keep the three messages as > > it was. > >> sufficiently explanatory error message: DCCannotAccessConfig="Cannot > >> access > >> configuration in file {full path to config file}." This should > >> probably be > >> enough for an admin, even for a user. I would really advise this > >> because it > >> makes the code simpler and yet serves its purpose. > > > > Well.. eh.. yes.m I admit that the code is complex. Now it is even a bit > > more complex. I hope that > > refactoring made it much more readable, and taht testing is strong enough. > > > > I would like to keep the "three distinguish messages" but any idea to > > keep them, check all parts, > > and make the check algorithm a bit simpler is welcomed. > >> > >> > > Finally I would like to mention that it have been nice of you that you have > taken care of it. Good luck! > Jacob > > From andrew at icedtea.classpath.org Mon Nov 25 07:21:48 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 25 Nov 2013 15:21:48 +0000 Subject: /hg/release/icedtea6-1.12: Start 1.12.8 release cycle. Message-ID: changeset 7a37bcf9b91b in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=7a37bcf9b91b author: Andrew John Hughes date: Mon Nov 25 14:58:53 2013 +0000 Start 1.12.8 release cycle. 2013-11-25 Andrew John Hughes * configure.ac: Set to 1.12.8pre. * NEWS: Add 1.12.8 section. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r 79c53dffb227 -r 7a37bcf9b91b ChangeLog --- a/ChangeLog Fri Nov 22 04:17:33 2013 +0000 +++ b/ChangeLog Mon Nov 25 14:58:53 2013 +0000 @@ -1,3 +1,8 @@ +2013-11-25 Andrew John Hughes + + * configure.ac: Set to 1.12.8pre. + * NEWS: Add 1.12.8 section. + 2013-11-21 Andrew John Hughes * Makefile.am: diff -r 79c53dffb227 -r 7a37bcf9b91b NEWS --- a/NEWS Fri Nov 22 04:17:33 2013 +0000 +++ b/NEWS Mon Nov 25 14:58:53 2013 +0000 @@ -11,6 +11,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 1.12.8 (2014-XX-XX): + New in release 1.12.7 (2013-11-21): * Security fixes diff -r 79c53dffb227 -r 7a37bcf9b91b configure.ac --- a/configure.ac Fri Nov 22 04:17:33 2013 +0000 +++ b/configure.ac Mon Nov 25 14:58:53 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12.7],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.12.8pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From aazores at redhat.com Mon Nov 25 07:36:02 2013 From: aazores at redhat.com (Andrew Azores) Date: Mon, 25 Nov 2013 10:36:02 -0500 (EST) Subject: [rfc][icedtea-web] removed most of checks to no output In-Reply-To: <52936422.3000505@redhat.com> References: <52935BC0.8060302@redhat.com> <5293617F.9050901@redhat.com> <52936422.3000505@redhat.com> Message-ID: <539578684.279216.1385393762815.JavaMail.root@redhat.com> Okay to push :) Thanks. ----- Original Message ----- From: "Jiri Vanek" To: "Andrew Azores" Cc: "IcedTea Distro List" Sent: Monday, November 25, 2013 9:52:18 AM Subject: Re: [rfc][icedtea-web] removed most of checks to no output On 11/25/2013 03:41 PM, Andrew Azores wrote: > On 11/25/2013 09:16 AM, Jiri Vanek wrote: >> This patch is stabilizing reproducers by removing checks for output lengths from all "normal" reproducers. >> In remote reproducers, where the "no output" is sometimes only point to pass/fail ( :((( ), the different approach was taken. >> >> J. > > Why the change from "const char*" to "char*" in IcedTeaNPPlugin.cc? Intentional or just something that slipped past? This results in a build error (failure.txt attachment) for me. Yes, it slipped past. It was old system build. And I used same build dir as src dir. Thanx for noticing. > > Otherwise the patch looks good. Just running the tests myself to verify it. > > Thanks, > From jvanek at icedtea.classpath.org Mon Nov 25 07:47:47 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Mon, 25 Nov 2013 15:47:47 +0000 Subject: /hg/icedtea-web: Removed most of checks to no output from reprod... Message-ID: changeset 349c86e05863 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=349c86e05863 author: Jiri Vanek date: Mon Nov 25 16:54:23 2013 +0100 Removed most of checks to no output from reproducers diffstat: ChangeLog | 22 ++++ netx/net/sourceforge/jnlp/JNLPFile.java | 4 +- netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 2 +- tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java | 50 ++++++--- tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java | 1 - tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java | 3 - tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java | 1 - tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java | 1 - tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java | 1 - tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java | 1 - tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java | 2 - tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java | 1 - tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java | 1 - tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java | 1 - tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java | 1 - 15 files changed, 59 insertions(+), 33 deletions(-) diffs (347 lines): diff -r bf80f38923af -r 349c86e05863 ChangeLog --- a/ChangeLog Mon Nov 25 10:16:42 2013 +0100 +++ b/ChangeLog Mon Nov 25 16:54:23 2013 +0100 @@ -1,3 +1,25 @@ +2013-11-25 Jiri Vanek + + * netx/net/sourceforge/jnlp/JNLPFile.java: (TITLE_NOT_FOUND) new constant + holding the no title found string to be reused. (getTitleFromManifest) + Now using that constant. + * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: adding window + erro message moved to be debug only. + * ests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java: + Added (clean) mechanism to filter out TITLE_NOT_FOUND + * tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java: + * tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java: + * tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: + * tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java + * tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java + * tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java + * tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java + * tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java + * tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java + * tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java + * tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java + Removed checks for emty outputs + 2013-11-25 Jiri Vanek * netx/net/sourceforge/jnlp/ResourcesDesc.java: (getMainJAR) throw an diff -r bf80f38923af -r 349c86e05863 netx/net/sourceforge/jnlp/JNLPFile.java --- a/netx/net/sourceforge/jnlp/JNLPFile.java Mon Nov 25 10:16:42 2013 +0100 +++ b/netx/net/sourceforge/jnlp/JNLPFile.java Mon Nov 25 16:54:23 2013 +0100 @@ -134,6 +134,8 @@ /** important manifests' attributes */ private final ManifestsAttributes manifestsAttributes = new ManifestsAttributes(); + public static final String TITLE_NOT_FOUND = "Application title was not found in manifest. Check with application vendor"; + { // initialize defaults if security allows try { @@ -340,7 +342,7 @@ public String getTitleFromManifest() { String inManifestTitle = getManifestsAttributes().getApplicationName(); if (inManifestTitle == null && getManifestsAttributes().isLoader()){ - OutputController.getLogger().log(OutputController.Level.WARNING_ALL,"Application title was not found in manifest. Check with application vendor"); + OutputController.getLogger().log(OutputController.Level.WARNING_ALL, TITLE_NOT_FOUND); } return inManifestTitle; } diff -r bf80f38923af -r 349c86e05863 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Mon Nov 25 10:16:42 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Mon Nov 25 16:54:23 2013 +0100 @@ -344,7 +344,7 @@ if (app != null && window instanceof Window) { Window w = (Window) window; - OutputController.getLogger().log(OutputController.Level.ERROR_ALL, "SM: app: " + app.getTitle() + " is adding a window: " + window + " with appContext " + AppContext.getAppContext()); + OutputController.getLogger().log(OutputController.Level.ERROR_DEBUG, "SM: app: " + app.getTitle() + " is adding a window: " + window + " with appContext " + AppContext.getAppContext()); weakWindows.add(w); // for mapping window -> app weakApplications.add(app); diff -r bf80f38923af -r 349c86e05863 tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java --- a/tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/custom/remote/testcases/RemoteApplicationSettings.java Mon Nov 25 16:54:23 2013 +0100 @@ -37,6 +37,7 @@ import java.net.MalformedURLException; import java.net.URL; +import net.sourceforge.jnlp.JNLPFile; import net.sourceforge.jnlp.ProcessResult; import org.junit.Assert; import org.junit.Test; @@ -70,6 +71,9 @@ URL u; + public String clean(String s){ + return s.replaceAll("\\s*" + JNLPFile.TITLE_NOT_FOUND + "\\s*", "").trim(); + } @Override public URL getUrl() { return u; @@ -88,8 +92,8 @@ @Override public void evaluate(ProcessResult pr) { - Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0); - Assert.assertTrue(pr.stderr.length() == 0 || pr.stderr.contains(IllegalStateException.class.getName())); + Assert.assertTrue(stdoutEmpty, clean(pr.stdout).length() == 0); + Assert.assertTrue(clean(pr.stderr).length() == 0 || pr.stderr.contains(IllegalStateException.class.getName())); } } @@ -102,8 +106,8 @@ @Override public void evaluate(ProcessResult pr) { - Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0); - Assert.assertTrue(pr.stderr.length() == 0 || pr.stderr.contains("Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed")); + Assert.assertTrue(stdoutEmpty, clean(pr.stdout).length() == 0); + Assert.assertTrue(clean(pr.stderr).length() == 0 || pr.stderr.contains("Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed")); } } @@ -116,7 +120,7 @@ @Override public void evaluate(ProcessResult pr) { - Assert.assertTrue(stdout, pr.stdout.length() == 0); + Assert.assertTrue(stdout, clean(pr.stdout).length() == 0); Assert.assertTrue(pr.stderr.contains("Splash closed")); Assert.assertFalse(pr.stderr.contains("Exception")); @@ -131,10 +135,8 @@ @Override public void evaluate(ProcessResult pr) { - Assert.assertTrue(pr.stdout.length() > 0); - Assert.assertTrue(pr.stderr.length() > 0); - Assert.assertFalse(pr.stderr.contains("Exception")); - Assert.assertFalse(pr.stdout.contains("Exception")); + Assert.assertTrue(pr.stdout.length() == 0); + Assert.assertTrue(pr.stderr.length() == 0); } } @@ -153,35 +155,49 @@ } } - public static class Arbores extends NoOutputs { + public abstract static class NearlyNoOutputs extends StringBasedURL { + + public NearlyNoOutputs(String r) { + super(r); + } + + @Override + public void evaluate(ProcessResult pr) { + Assert.assertTrue(stdoutEmpty, clean(pr.stdout).length() == 0); + Assert.assertTrue(stderrEmpty, clean(pr.stderr).length() == 0); + + } + } + + public static class Arbores extends NearlyNoOutputs { public Arbores() { super("http://www.arbores.ca/AnnuityCalc.jnlp"); } } - public static class PhetSims extends NoOutputs { + public static class PhetSims extends NearlyNoOutputs { public PhetSims() { super("http://phetsims.colorado.edu/sims/circuit-construction-kit/circuit-construction-kit-dc_en.jnlp"); } } - public static class TopCoder extends NoOutputs { + public static class TopCoder extends NearlyNoOutputs { public TopCoder() { super("http://www.topcoder.com/contest/arena/ContestAppletProd.jnlp"); } } - public static class SunSwingDemo extends NoOutputs { + public static class SunSwingDemo extends NearlyNoOutputs { public SunSwingDemo() throws MalformedURLException { super("http://java.sun.com/docs/books/tutorialJWS/uiswing/events/ex6/ComponentEventDemo.jnlp"); } } - public static class ArboresDeposit extends NoOutputs { + public static class ArboresDeposit extends NearlyNoOutputs { public ArboresDeposit() throws MalformedURLException { super("http://www.arbores.ca/Deposit.jnlp"); @@ -192,8 +208,8 @@ @Override public void evaluate(ProcessResult pr) { - Assert.assertTrue(stdoutEmpty, pr.stdout.length() == 0); - Assert.assertTrue(pr.stderr.length() == 0 || (pr.stderr.contains("Cannot read File Manager history data file,") + Assert.assertTrue(stdoutEmpty, clean(pr.stdout).length() == 0); + Assert.assertTrue(clean(pr.stderr).length() == 0 || (clean(pr.stderr).contains("Cannot read File Manager history data file,") && pr.stderr.contains("FileMgr will be initialized with default options"))); } @@ -203,7 +219,7 @@ } } - public static class FuseSwing extends NoOutputs { + public static class FuseSwing extends NearlyNoOutputs { public FuseSwing() { super("http://www.progx.org/users/Gfx/apps/fuse-swing-demo.jnlp"); diff -r bf80f38923af -r 349c86e05863 tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java --- a/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -58,7 +58,6 @@ Assert.assertTrue("Stderr should contains "+s+" but did not",pr.stderr.contains(s)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); - Assert.assertTrue("stdout lenght should be <2 but was "+pr.stdout.length(),pr.stdout.length()<2); // /home/user or /root or eanything else :( Assert.assertFalse("should not be terminated but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java --- a/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -58,7 +58,6 @@ Assert.assertTrue("Stderr should match "+accessMatcher+" but did not",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); - Assert.assertTrue("stdout lenght should be <2 but was "+pr.stdout.length(),pr.stdout.length()<2); // /home/user or /root or eanything else :( Assert.assertFalse("should not be terminated but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } @@ -70,7 +69,6 @@ Assert.assertFalse("Stderr should NOT match "+accessMatcher+" but did",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); - Assert.assertTrue("stdout lenght should be >= but was "+pr.stdout.length(),pr.stdout.length()>=4); // /home/user or /root or eanything else :( Assert.assertFalse("should not be terminated but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } @@ -81,7 +79,6 @@ Assert.assertTrue("Stderr should match "+accessMatcher+" but did not",pr.stderr.matches(accessMatcher)); String ss="ClassNotFoundException"; Assert.assertFalse("Stderr should not contains "+ss+" but did",pr.stderr.contains(ss)); - Assert.assertFalse("stdout lenght should not be >2 but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("should not be terminated but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); ProcessResult pr2=server.executeJavawsHeadless(null,"/ReadProperties1.jnlp"); diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java --- a/tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -61,7 +61,6 @@ ProcessResult pr = server.executeJavawsHeadless(null, "/AddShutdownHook.jnlp"); Assert.assertTrue("stderr " + mr.toPassingString(), mr.evaluate(pr.stderr)); Assert.assertFalse("stderr " + cnf.toFailingString(), cnf.evaluate(pr.stderr)); - Assert.assertFalse("stdout length should be <=2, but was " + pr.stdout.length(), pr.stdout.length() > 2); Assert.assertFalse("AddShutdownHookTestLunch1 should not be terminated, but was", pr.wasTerminated); Assert.assertFalse("stderr " + cf.toFailingString(), cf.evaluate(pr.stderr)); Assert.assertEquals((Integer) 0, pr.returnValue); diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java --- a/tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -54,7 +54,6 @@ Assert.assertTrue("stderr should match `"+c+"`, but didn't ",pr.stderr.matches(c)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did ",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("AllStackTracesTest1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java --- a/tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -52,7 +52,6 @@ Assert.assertTrue("Stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("CreateClassLoaderLunch1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java --- a/tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -51,7 +51,6 @@ Assert.assertTrue("stderr should match"+s+"but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("ReadEnvironmentLunch1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java --- a/tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -52,7 +52,6 @@ Assert.assertTrue("stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("ReadPropertiesLunch1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } @@ -64,7 +63,6 @@ Assert.assertTrue("stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("ReadPropertiesLunch2 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer)0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java --- a/tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -51,7 +51,6 @@ Assert.assertTrue("Stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("RedirectStreams should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java --- a/tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -51,7 +51,6 @@ Assert.assertTrue("stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("ReplaceSecurityManagerLunch1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java --- a/tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java Mon Nov 25 16:54:23 2013 +0100 @@ -51,7 +51,6 @@ Assert.assertTrue("stderr should match "+s+" but didn't",pr.stderr.matches(s)); String cc="ClassNotFoundException"; Assert.assertFalse("stderr should NOT contains `"+cc+"`, but did",pr.stderr.contains(cc)); - Assert.assertFalse("stdout length should be <=2, but was "+pr.stdout.length(),pr.stdout.length()>2); Assert.assertFalse("SetContextClassLoader1 should not be terminated, but was",pr.wasTerminated); Assert.assertEquals((Integer) 0, pr.returnValue); } diff -r bf80f38923af -r 349c86e05863 tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java --- a/tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java Mon Nov 25 10:16:42 2013 +0100 +++ b/tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java Mon Nov 25 16:54:23 2013 +0100 @@ -49,7 +49,6 @@ @Test public void testSimpletest2lunchException() throws Exception { ProcessResult pr=server.executeJavawsHeadless(null,"/simpletest2.jnlp"); - Assert.assertTrue("stdout should be < 1 , but was "+pr.stdout.trim().length(),pr.stdout.trim().length() < 1); String s="Correct exception"; Assert.assertTrue("stderr should contains "+s+" but didn't",pr.stderr.contains(s)); String ss="Exception"; From stefan.reich.maker.of.eye at googlemail.com Mon Nov 25 08:50:35 2013 From: stefan.reich.maker.of.eye at googlemail.com (Stefan Reich) Date: Mon, 25 Nov 2013 17:50:35 +0100 Subject: IcedTea Java plugin cannot load applet jar file Message-ID: Hi! Is this the place to get some IcedTea support...? :) I have terrible trouble getting the simplest Java applets to work... System is Peppermint 3 (32 bit) with original Firefox and Debian package "icedtea-plugin". I can see some applets, like this one: http://math.hws.edu/xJava/MB/ But a very simple test applet does not work: http://sessions-hamburg.de/applet/applet_noswing.html There is an exception in ~/.icedtea/log/java.stderr: java.lang.ClassNotFoundException: ma.ma01.NoSwingApplet at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1404) ...which is apparently caused by an unability to load the applet's jar file (I saw an exception about that somewhere else I think). However, the jar file is clearly there: http://sessions-hamburg.de/applet/MagicApplet.jar And the weird thing is, the applet viewer loads the applet just fine! (Try "appletviewer http://sessions-hamburg.de/applet/applet_noswing.html" on your command line, does it work? The applet should just say "Hello world".) Finally, I cannot get a Java console to pop up even if I select that in the IcedTea configuration screen. Hehe... sorry if this question is boring or something - it's very important to me, I need to write an important applet. Best regards, Stefan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131125/3c292946/attachment.html From aazores at redhat.com Mon Nov 25 10:02:33 2013 From: aazores at redhat.com (Andrew Azores) Date: Mon, 25 Nov 2013 13:02:33 -0500 Subject: IcedTea Java plugin cannot load applet jar file In-Reply-To: References: Message-ID: <529390B9.6000306@redhat.com> On 11/25/2013 11:50 AM, Stefan Reich wrote: > Hi! > > Is this the place to get some IcedTea support...? :) > > I have terrible trouble getting the simplest Java applets to work... > > System is Peppermint 3 (32 bit) with original Firefox and Debian > package "icedtea-plugin". > > I can see some applets, like this one: http://math.hws.edu/xJava/MB/ > > But a very simple test applet does not work: > http://sessions-hamburg.de/applet/applet_noswing.html > > There is an exception in ~/.icedtea/log/java.stderr: > > java.lang.ClassNotFoundException: ma.ma01.NoSwingApplet > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1404) > > ...which is apparently caused by an unability to load the applet's jar > file (I saw an exception about that somewhere else I think). However, > the jar file is clearly there: > http://sessions-hamburg.de/applet/MagicApplet.jar > > And the weird thing is, the applet viewer loads the applet just fine! > (Try "appletviewer > http://sessions-hamburg.de/applet/applet_noswing.html" on your command > line, does it work? The applet should just say "Hello world".) What version is your icedtea-plugin package? The examples seem to work fine for me with IcedTea-Web 1.3 and 1.4 on Fedora. I don't know about Peppermint but you might still be stuck with 1.2, I believe that's what Ubuntu and Mint still have in their repos, since that's also what Debian Stable offers. Perhaps you could try with a newer release from Debian Testing or Debian Unstable? > > Finally, I cannot get a Java console to pop up even if I select that > in the IcedTea configuration screen. > > Hehe... sorry if this question is boring or something - it's very > important to me, I need to write an important applet. > > Best regards, > Stefan Thanks, -- Andrew A From stefan.reich.maker.of.eye at googlemail.com Mon Nov 25 11:56:19 2013 From: stefan.reich.maker.of.eye at googlemail.com (Stefan Reich) Date: Mon, 25 Nov 2013 20:56:19 +0100 Subject: IcedTea Java plugin cannot load applet jar file In-Reply-To: <529390B9.6000306@redhat.com> References: <529390B9.6000306@redhat.com> Message-ID: OK, I think I got it figured out... the problem was byte code versions. I compiled to 1.7 and used a 1.6 IcedTea plugin. (Packages icedtea-6-plugin/icedtea-7-plugin respectively). Recompiling for 1.6 fixed the problem for both plug-in versions. :) The last weird thing is that the IcedTea Web Control Panel settings don't seem to have any effect (specifically, turning on a Java console). Having the plug-in display a gray area and nothing else on error is a little unsatisfying... But anyway, the problem can be classified as solved I'd say. :) Thanks Andrew! Stefan On Mon, Nov 25, 2013 at 7:02 PM, Andrew Azores wrote: > On 11/25/2013 11:50 AM, Stefan Reich wrote: > >> Hi! >> >> Is this the place to get some IcedTea support...? :) >> >> I have terrible trouble getting the simplest Java applets to work... >> >> System is Peppermint 3 (32 bit) with original Firefox and Debian package >> "icedtea-plugin". >> >> I can see some applets, like this one: http://math.hws.edu/xJava/MB/ >> >> But a very simple test applet does not work: http://sessions-hamburg.de/ >> applet/applet_noswing.html >> >> There is an exception in ~/.icedtea/log/java.stderr: >> >> java.lang.ClassNotFoundException: ma.ma01.NoSwingApplet >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass( >> JNLPClassLoader.java:1404) >> >> ...which is apparently caused by an unability to load the applet's jar >> file (I saw an exception about that somewhere else I think). However, the >> jar file is clearly there: http://sessions-hamburg.de/ >> applet/MagicApplet.jar >> >> And the weird thing is, the applet viewer loads the applet just fine! >> (Try "appletviewer http://sessions-hamburg.de/applet/applet_noswing.html" >> on your command line, does it work? The applet should just say "Hello >> world".) >> > > What version is your icedtea-plugin package? The examples seem to work > fine for me with IcedTea-Web 1.3 and 1.4 on Fedora. I don't know about > Peppermint but you might still be stuck with 1.2, I believe that's what > Ubuntu and Mint still have in their repos, since that's also what Debian > Stable offers. Perhaps you could try with a newer release from Debian > Testing or Debian Unstable? > > > >> Finally, I cannot get a Java console to pop up even if I select that in >> the IcedTea configuration screen. >> >> Hehe... sorry if this question is boring or something - it's very >> important to me, I need to write an important applet. >> >> Best regards, >> Stefan >> > > Thanks, > > -- > Andrew A > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131125/1e3ebd4e/attachment.html From ptisnovs at icedtea.classpath.org Tue Nov 26 01:05:54 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 26 Nov 2013 09:05:54 +0000 Subject: /hg/gfx-test: Ten new tests added into BitBitBltAffineIdentityTr... Message-ID: changeset d6d58629764a in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=d6d58629764a author: Pavel Tisnovsky date: Tue Nov 26 10:09:43 2013 +0100 Ten new tests added into BitBitBltAffineIdentityTransformOp.java. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java | 140 ++++++++++ 2 files changed, 145 insertions(+), 0 deletions(-) diffs (162 lines): diff -r c9b9cc4c7aaf -r d6d58629764a ChangeLog --- a/ChangeLog Mon Nov 25 09:33:47 2013 +0100 +++ b/ChangeLog Tue Nov 26 10:09:43 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-26 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: + Ten new tests added into BitBitBltAffineIdentityTransformOp.java: + 2013-11-25 Pavel Tisnovsky * src/org/gfxtest/framework/CommonCAGOperations.java: diff -r c9b9cc4c7aaf -r d6d58629764a src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java --- a/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Mon Nov 25 09:33:47 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java Tue Nov 26 10:09:43 2013 +0100 @@ -2284,6 +2284,146 @@ } /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp4); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp5(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp5); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshort565RGBIdentifyTranspormationOp6(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshort565RGB(image, graphics2d, IdentifyTranspormationOp6); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayIdentifyTranspormationOp1(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, IdentifyTranspormationOp1); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayIdentifyTranspormationOp2(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, IdentifyTranspormationOp2); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayIdentifyTranspormationOp3(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, IdentifyTranspormationOp3); + } + + /** + * Test basic BitBlt operation for checker buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltCheckerBufferedImageTypeUshortGrayIdentifyTranspormationOp4(TestImage image, Graphics2D graphics2d) + { + return doBitBltCheckerBufferedImageTypeUshortGray(image, graphics2d, IdentifyTranspormationOp4); + } + + /** * Entry point to the test suite. * * @param args not used in this case From ptisnovs at icedtea.classpath.org Tue Nov 26 01:19:25 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 26 Nov 2013 09:19:25 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNegativeTest into Scri... Message-ID: changeset 2c30f6a7c285 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=2c30f6a7c285 author: Pavel Tisnovsky date: Tue Nov 26 10:23:20 2013 +0100 Added new testGetResourceNegativeTest into ScriptContextClassTest.java. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/ScriptContextClassTest.java | 8 ++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diffs (31 lines): diff -r 52f3b6653ccd -r 2c30f6a7c285 ChangeLog --- a/ChangeLog Mon Nov 25 09:37:50 2013 +0100 +++ b/ChangeLog Tue Nov 26 10:23:20 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-26 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptContextClassTest.java: + Added new testGetResourceNegativeTest into + ScriptContextClassTest.java. + 2013-11-25 Pavel Tisnovsky * src/org/RhinoTests/SimpleBindingsClassTest.java: diff -r 52f3b6653ccd -r 2c30f6a7c285 src/org/RhinoTests/ScriptContextClassTest.java --- a/src/org/RhinoTests/ScriptContextClassTest.java Mon Nov 25 09:37:50 2013 +0100 +++ b/src/org/RhinoTests/ScriptContextClassTest.java Tue Nov 26 10:23:20 2013 +0100 @@ -1592,6 +1592,14 @@ } /** + * Test for method javax.script.ScriptContext.getClass().getResourceNegativeTest() + */ + protected void testGetResourceNegativeTest() { + Object resource = this.scriptContextClass.getResource("unknown"); + assertNull(resource, "getResource() does not return null"); + } + + /** * Test for method javax.script.ScriptContext.getClass().getResourcePositiveTest() */ protected void testGetResourcePositiveTest() { From jvanek at redhat.com Tue Nov 26 01:21:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 10:21:50 +0100 Subject: IcedTea Java plugin cannot load applet jar file In-Reply-To: References: <529390B9.6000306@redhat.com> Message-ID: <5294682E.1040209@redhat.com> hi! In next release of 1.4 (current stable) will be console enabled and *show-able* . It is enabled since 1.3, however by error it was never visible. if interested, you may see this simple patch : http://icedtea.classpath.org/hg/release/icedtea-web-1.4/rev/acbada276d23 , which had fixed it. For 1.5 the console is going to be completely rewritten - see http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-November/025342.html if you wont to affect its development :) Best regards J. On 11/25/2013 08:56 PM, Stefan Reich wrote: > OK, I think I got it figured out... the problem was byte code versions. I compiled to 1.7 and used a > 1.6 IcedTea plugin. (Packages icedtea-6-plugin/icedtea-7-plugin respectively). > > Recompiling for 1.6 fixed the problem for both plug-in versions. :) thanx for investigation! It is interested case. > > The last weird thing is that the IcedTea Web Control Panel settings don't seem to have any effect > (specifically, turning on a Java console). Having the plug-in display a gray area and nothing else > on error is a little unsatisfying... > > But anyway, the problem can be classified as solved I'd say. :) > > Thanks Andrew! > > Stefan > > > On Mon, Nov 25, 2013 at 7:02 PM, Andrew Azores > wrote: > > On 11/25/2013 11:50 AM, Stefan Reich wrote: > > Hi! > > Is this the place to get some IcedTea support...? :) > > I have terrible trouble getting the simplest Java applets to work... > > System is Peppermint 3 (32 bit) with original Firefox and Debian package "icedtea-plugin". > > I can see some applets, like this one: http://math.hws.edu/xJava/MB/ > > But a very simple test applet does not work: > http://sessions-hamburg.de/__applet/applet_noswing.html > > > There is an exception in ~/.icedtea/log/java.stderr: > > java.lang.__ClassNotFoundException: ma.ma01.NoSwingApplet > at net.sourceforge.jnlp.runtime.__JNLPClassLoader.loadClass(__JNLPClassLoader.java:1404) > > ...which is apparently caused by an unability to load the applet's jar file (I saw an > exception about that somewhere else I think). However, the jar file is clearly there: > http://sessions-hamburg.de/__applet/MagicApplet.jar > > > And the weird thing is, the applet viewer loads the applet just fine! (Try "appletviewer > http://sessions-hamburg.de/__applet/applet_noswing.html > " on your command line, does it work? > The applet should just say "Hello world".) > > > What version is your icedtea-plugin package? The examples seem to work fine for me with > IcedTea-Web 1.3 and 1.4 on Fedora. I don't know about Peppermint but you might still be stuck > with 1.2, I believe that's what Ubuntu and Mint still have in their repos, since that's also > what Debian Stable offers. Perhaps you could try with a newer release from Debian Testing or > Debian Unstable? > > > > Finally, I cannot get a Java console to pop up even if I select that in the IcedTea > configuration screen. > > Hehe... sorry if this question is boring or something - it's very important to me, I need to > write an important applet. > > Best regards, > Stefan > > > Thanks, > > -- > Andrew A > > From aph at redhat.com Tue Nov 26 01:25:00 2013 From: aph at redhat.com (Andrew Haley) Date: Tue, 26 Nov 2013 09:25:00 +0000 Subject: IcedTea Java plugin cannot load applet jar file In-Reply-To: References: <529390B9.6000306@redhat.com> Message-ID: <529468EC.3090203@redhat.com> On 11/25/2013 07:56 PM, Stefan Reich wrote: > OK, I think I got it figured out... the problem was byte code versions. I > compiled to 1.7 and used a 1.6 IcedTea plugin. (Packages > icedtea-6-plugin/icedtea-7-plugin respectively). Hmm, okay. We should detect that and tell the user. Andrew. From jvanek at redhat.com Tue Nov 26 01:39:30 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 10:39:30 +0100 Subject: IcedTea Java plugin cannot load applet jar file In-Reply-To: <5294682E.1040209@redhat.com> References: <529390B9.6000306@redhat.com> <5294682E.1040209@redhat.com> Message-ID: <52946C52.6060203@redhat.com> On 11/26/2013 10:21 AM, Jiri Vanek wrote: > hi! > > In next release of 1.4 (current stable) will be console enabled and *show-able* . It is enabled > since 1.3, however by error it was never visible. > if interested, you may see this simple patch : > http://icedtea.classpath.org/hg/release/icedtea-web-1.4/rev/acbada276d23 , which had fixed it. > > For 1.5 the console is going to be completely rewritten - see > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-November/025342.html if you wont to > affect its development :) crap, close enough: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-November/025327.html > > Best regards > J. > > On 11/25/2013 08:56 PM, Stefan Reich wrote: >> OK, I think I got it figured out... the problem was byte code versions. I compiled to 1.7 and used a >> 1.6 IcedTea plugin. (Packages icedtea-6-plugin/icedtea-7-plugin respectively). >> >> Recompiling for 1.6 fixed the problem for both plug-in versions. :) > > thanx for investigation! It is interested case. >> From jvanek at redhat.com Tue Nov 26 02:29:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 11:29:38 +0100 Subject: [rfc][icedtea-web] fixed another exception from get attributes Message-ID: <52947812.3030805@redhat.com> Reported today by Xerxes, test is longer then fix :) Also the page with it was added to http://icedtea.classpath.org/wiki/IcedTea-Web-Tests - http://joliclic.free.fr/html/object-tag/en/object-java.html Thanx for keeping en eye on head Xerxes! J. -------------- next part -------------- A non-text attachment was scrubbed... Name: anotherNpeInGetAttributes.patch Type: text/x-patch Size: 4631 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/b8539d9f/anotherNpeInGetAttributes-0001.patch From xerxes at zafena.se Tue Nov 26 04:35:49 2013 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Tue, 26 Nov 2013 13:35:49 +0100 Subject: [rfc][icedtea-web] fixed another exception from get attributes In-Reply-To: <52947812.3030805@redhat.com> References: <52947812.3030805@redhat.com> Message-ID: <529495A5.4080400@zafena.se> 2013-11-26 11:29, Jiri Vanek skrev: > Reported today by Xerxes, test is longer then fix :) > Also the page with it was added to http://icedtea.classpath.org/wiki/IcedTea-Web-Tests - http://joliclic.free.fr/html/object-tag/en/object-java.html > > Thanx for keeping en eye on head Xerxes! > > J. > The NPE is fixed on my side as well with the patch attached. Passed: net.sourceforge.jnlp.runtime.JNLPClassLoaderTest.tryNullManifest A review of the patch: diff -r 5cbe8b1de584 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov 26 11:05:25 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov 26 11:25:00 2013 +0100 @@ -900,6 +900,11 @@ JarFile mainJar = null; try { mainJar = new JarFile(f); + Manifest manifest = mainJar.getManifest(); + if (manifest == null || manifest.getMainAttributes() == null){ + //yes, jars without manifest exists + return null; + } attributeValue = mainJar.getManifest(). How about using the already fetched manifest. here? ^ Thank you Jiri for the good object tag discussion in #openjdk at irc.oftc.net Cheers Xerxes From jvanek at redhat.com Tue Nov 26 05:25:14 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 14:25:14 +0100 Subject: [rfc][icedtea-web] removed recent check for multiple main jar Message-ID: <5294A13A.4010003@redhat.com> As Xerxes repoted today, new exception started to jump from multiple jars (most of web) applets - RuntimeException("Multiple main JARs specified, refusing to continue.") I was to rush to add this, and had just webStart in mind. There is rotten issue/feature/correct behaviour in itw that all jars for appelts are considered main. So my patch to javaws made all applets to stop work. As for javaws discussion - this was already once fixed, and if strict mode is on, then RuntimeException("Multiple main JARs specified, refusing to continue.") is thrown from more correct location, otherwise first mian jar is taken (see new testcase) This is causing some issues for getting the attributes like application-name or similar. Its hard to decide froim which jar they should go. In case of applets they are searched in order as they are written. So we can probably consider it as correct. For javaws they are first tried from first main jar, and then from first jar where specified, again, in order as declared.... Not nice but nothing better in mind :( There is one unrelated fix - + if (!result.toString().startsWith(base.toString()) && !base.toString().startsWith(result.toString())){ This line was causing strict to fail *always* but was *so* wrong that I did not dare to remove the condition. The new testcase was leading to this failure. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: removedFixToManifestedJar1TestCases-throwMultipleMaainJars.patch Type: text/x-patch Size: 4586 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/75a53913/removedFixToManifestedJar1TestCases-throwMultipleMaainJars.patch From jvanek at redhat.com Tue Nov 26 05:38:28 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 14:38:28 +0100 Subject: [rfc][icedtea-web] fixed another exception from get attributes In-Reply-To: <529495A5.4080400@zafena.se> References: <52947812.3030805@redhat.com> <529495A5.4080400@zafena.se> Message-ID: <5294A454.4090408@redhat.com> On 11/26/2013 01:35 PM, Xerxes R?nby wrote: > 2013-11-26 11:29, Jiri Vanek skrev: >> Reported today by Xerxes, test is longer then fix :) >> Also the page with it was added to http://icedtea.classpath.org/wiki/IcedTea-Web-Tests - http://joliclic.free.fr/html/object-tag/en/object-java.html >> >> Thanx for keeping en eye on head Xerxes! >> >> J. >> > > The NPE is fixed on my side as well with the patch attached. > Passed: net.sourceforge.jnlp.runtime.JNLPClassLoaderTest.tryNullManifest > > A review of the patch: > > diff -r 5cbe8b1de584 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov 26 11:05:25 2013 +0100 > +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov 26 11:25:00 2013 +0100 > @@ -900,6 +900,11 @@ > JarFile mainJar = null; > try { > mainJar = new JarFile(f); > + Manifest manifest = mainJar.getManifest(); > + if (manifest == null || manifest.getMainAttributes() == null){ > + //yes, jars without manifest exists > + return null; > + } > attributeValue = mainJar.getManifest(). > > How about using the already fetched manifest. here? ^ > Sure. Fixed. Thanx for check! > > Thank you Jiri for the good object tag discussion in #openjdk at irc.oftc.net > > Cheers > Xerxes > -------------- next part -------------- A non-text attachment was scrubbed... Name: anotherNpeInGetAttributes2.patch Type: text/x-patch Size: 5498 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/dbe48b68/anotherNpeInGetAttributes2.patch From aazores at redhat.com Tue Nov 26 07:27:04 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 26 Nov 2013 10:27:04 -0500 Subject: [rfc][icedtea-web] removed recent check for multiple main jar In-Reply-To: <5294A13A.4010003@redhat.com> References: <5294A13A.4010003@redhat.com> Message-ID: <5294BDC8.6010904@redhat.com> On 11/26/2013 08:25 AM, Jiri Vanek wrote: > As Xerxes repoted today, new exception started to jump from multiple > jars (most of web) applets - RuntimeException("Multiple main JARs > specified, refusing to continue.") > > I was to rush to add this, and had just webStart in mind. There is > rotten issue/feature/correct behaviour in itw that all jars for > appelts are considered main. > So my patch to javaws made all applets to stop work. Sounds like the reviewer should have done some more testing too before approving... :( > > As for javaws discussion - this was already once fixed, and if strict > mode is on, then RuntimeException("Multiple main JARs specified, > refusing to continue.") is thrown from more correct location, > otherwise first mian jar is taken (see new testcase) > > This is causing some issues for getting the attributes like > application-name or similar. Its hard to decide froim which jar they > should go. In case of applets they are searched in order as they are > written. So we can probably consider it as correct. > For javaws they are first tried from first main jar, and then from > first jar where specified, again, in order as declared.... Not nice > but nothing better in mind :( Yuck. Oh well, if it's the best that can be done, then it'll have to be good enough. > > There is one unrelated fix - > + if (!result.toString().startsWith(base.toString()) && > !base.toString().startsWith(result.toString())){ > > This line was causing strict to fail *always* but was *so* wrong that > I did not dare to remove the condition. The new testcase was leading > to this failure. > > J. Well, I guess this is okay to go into head and bring us back to where we were. :) Thanks, -- Andrew A From jvanek at redhat.com Tue Nov 26 07:41:28 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 26 Nov 2013 16:41:28 +0100 Subject: Fwd: Re: Regression after refactoring for XDG specification In-Reply-To: <5294BFED.6020302@redhat.com> References: <5294BFED.6020302@redhat.com> Message-ID: <5294C128.4070708@redhat.com> sent to Pavel only, fixing. -------- Original Message -------- Subject: Re: Regression after refactoring for XDG specification Date: Tue, 26 Nov 2013 16:36:13 +0100 From: Jiri Vanek To: Pavel Tisnovsky On 11/25/2013 04:05 PM, Pavel Tisnovsky wrote: > Hi Jiri, > > the patch itself seems harmless at least :-) but it would be nice to have > a bigger set of reproducers for the most (IMHO common) issues - problems > with privileges, selinux modes, nfs related issues etc. etc. And the > validator class seems not to pass through all branches at the first sight. > > A few notes: > + /** The system'subdirResult deployment.config file */ > -> this (missing space) seems to be some strange result of a find&replace? > fixed > + public int getPasses() { > + public int getFailures() { > -> Seems a bit tricky, need a javadoc! > -> Well all public methods in public classes (even inner static classes) should have a javadoc, please :) sure, my wrong. Bunch of javadocs added. > > +DCmaindircheckNotexists=After all tryes your configuration directory {0} do not exists > -> tryes??? -> "attempts" would be better AFAIK > oook:( Also all stdou/err/debug ere moved to current logging. > Thanks, > Pavel Thanx on my side, my sleeping will be much better after you eyballed this. J. > > > ----- Jiri Vanek wrote: >> >> >> >> -------- Original Message -------- >> Subject: Re: [icedtea-web] Regression after refactoring for XDG specification >> Date: Thu, 24 Oct 2013 23:25:42 +0200 >> From: Jacob Wisor >> To: distro-pkg-dev at openjdk.java.net >> CC: Jiri Vanek >> >> Hello! >> >> Jiri Vanek wrote: >>> Hi! >>> >>> Can i push? This patch will be soon inapplicable, and it is heavily needed. >> >> Generally speaking, as I already mentioned this approach is too complex in my >> opinion. And, I don't care really anymore because the initial requirement or >> intention was to >> 1. check whether the system implements the XDG specification and >> 2. if it does, make sure that all necessary parent directories are created in a >> "virgin" user's home directory. >> Not much else. So I think this has got a little bit out of hand. But, I won't >> oppose this patch as long as it does what it should do. And, I like the new >> DirectoryValidator class. ;-) >> Nevertheless, I would be happier if some other IcedTea-Web hacker would review >> this patch too, with my remarks on it in mind. >> >> I also have to mention that I did not have the time to actually apply this patch >> and test it. >> >>> diff -r 6124fd87eaba >>> tests/netx/unit/net/sourceforge/jnlp/config/DirectoryValidatorTest.java >>> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >>> +++ b/tests/netx/unit/net/sourceforge/jnlp/config/DirectoryValidatorTest.java >>> Thu Sep 12 11:14:54 2013 +0200 >>> @@ -0,0 +1,271 @@ >>> +/* >>> + Copyright (C) 2012 Red Hat, Inc. >> >> It's 2013 already ;-) >> >> Since you are so eager to have three different error messages, please at least >> rewrite them into proper and rather simple English. See the examples below. >> >>> diff -r 6124fd87eaba netx/net/sourceforge/jnlp/resources/Messages.properties >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Sep 11 >>> 12:05:44 2013 +0200 >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Thu Sep 12 >>> 11:14:54 2013 +0200 >>> @@ -304,6 +304,9 @@ >>> DCInternal=Internal error: {0} >>> DCSourceInternal= >>> DCUnknownSettingWithName=Property "{0}" is unknown. >>> +DCmaindircheckNotexists=After all tryes your configuration directory {0} do >>> not exists >> >> IcedTea-Web's configuration directory {0} does not exist. >> >> I do not actually understand what you have meant with this message. Should it >> rather say: Could not create IcedTea-Web's configuration directory {0}.? >> >>> +DCmaindircheckNotdir=Your configuration directory {0} is not directory >> >> IcedTea-Web's configuration directory {0} is a file instead of a directory. >> >>> +DCmaindircheckRwproblem=Your configuration directory {0} can not be >>> read/written properly >> >> Cannot write to or read from IcedTea-Web's configuration directory {0}. >> >>> [?] >>> >>> Ok, painfull review indeed! >>> >>> I did my best, see below: >>> >>> On 09/10/2013 09:34 PM, Jacob Wisor wrote: >>>> Jiri Vanek schrieb: >>>>> On 07/30/2013 06:14 PM, Jacob Wisor wrote: >>> ..snip... >>>>>> Nevertheless, thank you for addressing this issue, so please keep up >>>>>> the good work. >>>> >>>>> + private static void ensureMainDirs() { >>>> >>>> I am especially unhappy with this method's naming. I am aware that >>>> naming is a >>>> difficult task in CS, but it pays off investing time into it. What >>>> does it >>>> ensure main directories about? What happens if something cannot be or >>>> has not >>>> been ensured? Does possibly a RuntimeException be thrown? Except from >>>> that, what >>>> are main directories supposed to be? Perhaps root directories? What >>>> makes a >>>> directory so distinct to be "main"? So, please find an adequate name >>>> and add >>>> some documentation. >>> >>> Ok. I refactored it a bit and added javadoc. I hope it is much cleaner >>> now. Thanx for well deserved >>> kick. >> >> Well, my comment was not meant to sound or feel like a kick. But, it obviously >> has met its purpose. :-D >> >> As a side note; some quote from Disney's Mulan comes to my mind: "But I don't >> want to kick the other kid's butt" :-D >> >>>> >>>> Some language stuff: >>>>> + System.out.println("WARNING: key " + key + " do >>>>> not have >>>> value, switching to default"); >>>> >>>> "WARNING: key " + key + " has no value, setting to default value" >>>> >>>>> + System.out.println("WARNING: key " + key + " do >>>>> not have >>>> value, skipping"); >>>> >>>> "WARNING: key " + key + " has no value, skipping" >>>> >>>>> + System.err.println("ERROR: key " + key + " >>>>> value: " + >>>> value + " not existed, and was NOT created"); >>>> >>>> "ERROR: Directory " + value + " denoted by key " + key + " does not >>>> exist and >>>> has not been created" >>>> >>>>> + System.out.println("OK: key " + key + " value: " >>>>> + value >>>> + " not existed, and was created"); >>>> >>>> "OK: Directory " + value + " denoted by key " + key + " did not exist >>>> but has >>>> been created" >>> >>> Used. Thank you. >>>> >>>>> + //not private for testing >>>>> + static String testMainDir(File f, boolean verbose) { >>>> >>>> Since you have made this method not private please add some >>>> documentation on >>>> what this method's purpose is and what it does. It is definitely not >>>> self-explanatory, even after reading its code. And, as mentioned below >>>> it is >>>> probably unnecessary complex and seems to be mixing functional code >>>> with message >>> I hope fixed by refactoring. >>> >>>> generating code. If you really want to keep this differentiated error >>>> reporting >>>> feature, I would strongly advise to deglomerate functional and message >>>> generating code. >>> >>> Well, nothing else then pure laziness was on my side here:( Sorry! I >>> have added wrapper class which >>> is keeping the symptoms of failures, and message is generated later, >>> based on those flags. >>> >>>> >>>>> + StringBuilder messages = new StringBuilder(); >>>>> + if (!f.exists()) { >>>>> + String s = (R("DCmaindircheckNotexists", >>>>> f.getAbsolutePath())); >>>>> + if (verbose) { >>>>> + System.err.println(s); >>>>> + } >>>>> + messages.append(s).append("\n"); >>>>> + } >>>>> + if (!f.isDirectory()) { >>>>> + String s = (R("DCmaindircheckNotdir", >>>>> f.getAbsolutePath())); >>>>> + if (verbose) { >>>>> + System.err.println(s); >>>>> + } >>>>> + messages.append(s).append("\n"); >>>>> + } >>>> >>>> These two tests are redundant. File.isDirectory() implies a check for >>>> existence. >>>> It does not matter to the user or the application whether the desired >>>> directory >>>> does not exist or is not a directory. In effect the program cannot read >>>> from/write to the desired location. >>> >>> Partially yes, and aprtially no. IsDirectory really implies fileExists, >>> but the message then would >>> be misleading. I really would like to keep those most common error cases >>> separately. >>>> >>>>> + File testFile = null; >>>>> + boolean ok = false; >>>> >>>> Naming again. What is ok? >>> >>> renamed. >>>> >>>>> + try { >>>>> + testFile = File.createTempFile("maindir", "check", f); >>>>> + if (testFile.exists()) { >>>>> + ok = true; >>>>> + } >>>>> + try { >>>>> + FileUtils.saveFile("ww", testFile); >>>>> + String s = FileUtils.loadFileAsString(testFile); >>>>> + if (!s.trim().equals("ww")) { >>>>> + ok = false; >>>>> + } >>>> >>>> This test misses probably its point because it is testing for creating >>>> a *file* >>>> not a *directory*. Most file systems with DACLs distinguish between >>>> /creating/ >>>> files or directories, and between /creating/ and /writing/ into files or >>>> directories, so it is important to be precise here. Furthermore, it tests >>>> writing into a file instead of perhaps writing into a file in a >>>> subdirectory. >>> >>> Fair enough. I forgot about this case utterly. The test is now testing >>> also subdirectory artificaly >>> created inisde real directory (call to testMainDir one more times) >>>> >>>>> + } catch (Exception ex) { >>>>> + if (JNLPRuntime.isDebug()) { >>>>> + ex.printStackTrace(); >>>>> + } >>>>> + ok = false; >>>>> + } >>>> >>>> No really, you should *not* catch arbitrary exceptions. It ain't just >>>> some empty >>>> words. >>> >>> Well.. There are cases where it brings moore good then wrong. Endless >>> loops are very often >>> implemented like: >>> public void run(){ >>> while (true){ >>> try{ >>> }catch(Throwable r){ >>> log(t) >>> } >>> } >>> } >>> >>> By otherwords, when exception should not , by no means, disturb the >>> program - eg my case above - it >>> does not sound so bad... >> >> Yes indeed, but this is because exceptions in such constructs usually get >> handled properly by restoring or resetting whatever state is necessary so that >> the code in the try block can continue or restart. >> >>> I would like to keep the exception cough as it is. >> >> The core of the problem is that you actually cannot guard any piece of code from >> being subject to exceptions. You can only try handling an exception. In Java, >> there is no way to define a critical section that guarantees successful code >> execution unconditionally (of course, as long as the code is logically and >> formally correct). Btw, this is exactly one reason why Java is not suitable for >> real-time applications per se. >> The most commonly forgotten kind of exception is an OutOfMemoryException. This >> exception can disturb the flow of code at any time - not only when creating new >> objects! Almost exactly the same is true for a general RuntimeException. Please >> do not forget that not only Java code can throw exceptions but native code can >> do too. Ignoring all exceptions is neither actually handling an exception nor a >> solution. It is only acceptable if and only if the state of the application >> after the exception has been ignored is consistent or in other words can be >> dealt with by the following code. I am not really sure about it in this case. >> >>>> >>>> After all, this method is overly complex and does not add any value >>>> for the >>>> user. So I would advise you to discard this method. >>>> >>>>> diff -r 79bdc074df81 >>>>> netx/net/sourceforge/jnlp/resources/Messages.properties >>>>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri >>>>> Aug 30 >>>> 11:02:08 2013 -0400 >>>>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue >>>>> Sep 03 >>>> 13:56:53 2013 +0200 >>>>> @@ -304,6 +304,9 @@ >>>>> DCInternal=Internal error: {0} >>>>> DCSourceInternal= >>>>> DCUnknownSettingWithName=Property "{0}" is unknown. >>>>> +DCmaindircheckNotexists=After all tryes your configuration directory >>>>> {0} do >>>> not exists >>>>> +DCmaindircheckNotdir=Your configuration directory {0} is not directory >>>>> +DCmaindircheckRwproblem=Your configuration directory {0} can not be >>>> read/written properly >>>> >>>> Although it is nice of you to make precise distinctions between error >>>> types to >>>> help the user it is actually not necessary and does not offer any >>>> additional >>>> help when analyzing this problem. All these messages can be fused into >>>> one >>> >>> I really think that two most common cases file instead of dir and >>> insufficient privledges should be >>> distinguished. >>> >>> Unless you stongly insists, I would like to keep the three messages as >>> it was. >>>> sufficiently explanatory error message: DCCannotAccessConfig="Cannot >>>> access >>>> configuration in file {full path to config file}." This should >>>> probably be >>>> enough for an admin, even for a user. I would really advise this >>>> because it >>>> makes the code simpler and yet serves its purpose. >>> >>> Well.. eh.. yes.m I admit that the code is complex. Now it is even a bit >>> more complex. I hope that >>> refactoring made it much more readable, and taht testing is strong enough. >>> >>> I would like to keep the "three distinguish messages" but any idea to >>> keep them, check all parts, >>> and make the check algorithm a bit simpler is welcomed. >>>> >>>> >> >> Finally I would like to mention that it have been nice of you that you have >> taken care of it. Good luck! >> Jacob >> >> > -------------- next part -------------- A non-text attachment was scrubbed... Name: xdgForcingDirs5.patch Type: text/x-patch Size: 31628 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/3d8d3b74/xdgForcingDirs5-0001.patch From aazores at redhat.com Tue Nov 26 07:55:26 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 26 Nov 2013 10:55:26 -0500 Subject: [rfc][icedtea-web] Reproducer touch-up for JNLPClassLoaderDeadlock In-Reply-To: <528B6086.2090409@redhat.com> References: <5285174A.5020108@redhat.com> <528B6086.2090409@redhat.com> Message-ID: <5294C46E.9060205@redhat.com> On 11/19/2013 07:58 AM, Jiri Vanek wrote: > On 11/14/2013 07:32 PM, Andrew Azores wrote: >> The JNLPClassLoaderDeadlock reproducer was occasionally failing, IMO >> wrongly. The second applet's output would not appear in the stdout >> and so the test would fail, even though the first applet could be >> observed to have run, and so a deadlock did not seem to have taken >> place. I think what was happening was that the first applet ran, >> produced the "magical closing string", and the browser would begin to >> close before the second applet ever run. This patch fixes the test to >> accommodate for this, making the test more reliable (at least on my >> system). >> >> Thanks, >> > > Isnt best to have both applets to let them print out heir end? > System.out.println("*** APPLET 1 FINISHED ***"); > System.out.println("*** APPLET 2 FINISHED ***"); > > And then wait for both strings in clsoing listener/passed assert? > > J. > Yea, probably better that way. Thanks, -- Andrew A -------------- next part -------------- A non-text attachment was scrubbed... Name: jnlpclassloaderdeadlock-touchup.patch Type: text/x-patch Size: 2788 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/f9824167/jnlpclassloaderdeadlock-touchup.patch From aazores at redhat.com Tue Nov 26 08:35:10 2013 From: aazores at redhat.com (Andrew Azores) Date: Tue, 26 Nov 2013 11:35:10 -0500 Subject: [rfc][icedtea-web] fixed another exception from get attributes In-Reply-To: <5294A454.4090408@redhat.com> References: <52947812.3030805@redhat.com> <529495A5.4080400@zafena.se> <5294A454.4090408@redhat.com> Message-ID: <5294CDBE.1020009@redhat.com> On 11/26/2013 08:38 AM, Jiri Vanek wrote: > On 11/26/2013 01:35 PM, Xerxes R?nby wrote: >> 2013-11-26 11:29, Jiri Vanek skrev: >>> Reported today by Xerxes, test is longer then fix :) >>> Also the page with it was added to >>> http://icedtea.classpath.org/wiki/IcedTea-Web-Tests - >>> http://joliclic.free.fr/html/object-tag/en/object-java.html >>> >>> Thanx for keeping en eye on head Xerxes! >>> >>> J. >>> >> >> The NPE is fixed on my side as well with the patch attached. >> Passed: net.sourceforge.jnlp.runtime.JNLPClassLoaderTest.tryNullManifest >> >> A review of the patch: >> >> diff -r 5cbe8b1de584 >> netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java >> --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov >> 26 11:05:25 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Nov >> 26 11:25:00 2013 +0100 >> @@ -900,6 +900,11 @@ >> JarFile mainJar = null; >> try { >> mainJar = new JarFile(f); >> + Manifest manifest = mainJar.getManifest(); >> + if (manifest == null || manifest.getMainAttributes() >> == null){ >> + //yes, jars without manifest exists >> + return null; >> + } >> attributeValue = mainJar.getManifest(). >> >> How about using the already fetched manifest. here? ^ >> > > Sure. Fixed. Thanx for check! > >> >> Thank you Jiri for the good object tag discussion in #openjdk at >> irc.oftc.net >> >> Cheers >> Xerxes >> > This looks good to me, okay for head. Thanks, -- Andrew A From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 12:41:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Nov 2013 20:41:41 +0000 Subject: [Bug 1607] New: IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 Bug ID: 1607 Summary: IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: xerxes at zafena.se CC: unassigned at icedtea.classpath.org https://jogamp.org/bugzilla/show_bug.cgi?id=910 - IcedTea Web removes Components from the Applet Container before Applet.stop() causing a Crash. Assigned bug to IcedTea Web. This bug is observed using IcedTea-web 1.3, 1.4 and 1.5pre hg tip. +++ IcedTea-web contains code that call AWT Component.removeNotify(), too early when the user leave/reload an applet page, before Applet.stop() and Applet.destroy() has been called. Confirmed by xranby + sgothel. https://jogamp.org/bugzilla/show_bug.cgi?id=910#c17 Removing components before Applet.stop() and Applet.destroy() has been called violates the applet lifeCycle "spec": http://docs.oracle.com/javase/tutorial/deployment/applet/lifeCycle.html +++ JogAmp provides a DemoBug910ExtendedAWTAppletLifecycleCheck test applet that can be used to check and verify the Applet and Component lifecycle: http://jogamp.org/deployment/test/bug910/Bug910-AppletLifecycleCheck.html DemoBug910ExtendedAWTAppletLifecycleCheck sourcecode written by Sven Gotel is available inside the JogAmp JOGL git: http://jogamp.org/git/?p=jogl.git;a=commit;h=9310b11b2b6e1e89fa5ed9b8de26e56ff6a6b262 http://jogamp.org/git/?p=jogl.git;a=commit;h=65247a8188c7470ee7f599f2e84cae1bc84fff9c Bug 910: Add Standalone Extended Applet Lifecycle Validation Test Test is online @ http://jogamp.org/deployment/test/bug910/ Test validates the state of the added component: TC1 - addNotify() and removeNotify() has been called from AWT-EDT. TC2 - removeNotify() is not called before Applet.destroy() Test also validates the Applet state: TA1 - isActive() TA2 - init count TA3 - start count TA4 - stop count TA5 - destroy count Test start/stop balance. +++ Expected console output for OK lifecycle: http://jogamp.org/deployment/test/bug910/isotst.oracle.stderr.txt Actual console output with ERROR * mark at unexpected states: http://jogamp.org/deployment/test/bug910/isotst.icedtea.stderr.txt -- 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/20131126/4d57fa7b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 12:44:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Nov 2013 20:44:03 +0000 Subject: [Bug 1607] IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 Xerxes R?nby changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |http://jogamp.org/deploymen | |t/test/bug910/Bug910-Applet | |LifecycleCheck.html -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131126/29ef26c9/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 13:19:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Nov 2013 21:19:25 +0000 Subject: [Bug 1607] IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 --- Comment #1 from Xerxes R?nby --- Sven Gothel 2013-11-26 20:16:32 CET https://jogamp.org/bugzilla/show_bug.cgi?id=910#c23 IcedTea Web exposes the following errors: isActive() state between start()-stop(): ======================== Applet-State @ start: ERROR, active[exp true, has false]*, init[exp 1, has 1], start[exp 1, has 1], stop[exp 0, has 0], destroy[exp 0, has 0] removeNotify() not called from AWT-EDT (Fixed in 1.5*): ================================ Applet.Canvas.removeNotify() ERROR: Not on AWT-EDT removeNotify() called before destroy(): ======================== Component-State @ stop: ERROR, contained[exp true, has true], addNotify[exp 1, has 1], removeNotify[exp 0, has 1]*, compCount 1, compClazz canvas0 Component-State @ destroy-remove.pre: ERROR, contained[exp true, has true], addNotify[exp 1, has 1], removeNotify[exp 0, has 1]*, compCount 1, compClazz canvas0 -- 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/20131126/047245e0/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 14:25:27 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 26 Nov 2013 22:25:27 +0000 Subject: [Bug 1607] IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 --- Comment #2 from Sven Gothel --- You can get the test applet source here And the corresponding test html page here Source is BSD licensed, written by me and you may use it w/ your license as you wish, ofc. -- 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/20131126/09265fdd/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 16:57:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 27 Nov 2013 00:57:25 +0000 Subject: [Bug 910] IcedTea-web browser plugin doesn't connect when i launch Oanda forex trading applet. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=910 Ramesh Krishna changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rmkrish55 at gmail.com Hardware|x86 |x86_64 Version|1.2 |1.4 --- Comment #2 from Ramesh Krishna --- I'd like to awaken this bug report from a while back, because I've noticed that I have this exact same problem here with OANDA's fxTrade java web app. This problem is still affecting the latest version of IcedTea (1.4.1), using Firefox 25 (I'm using Fedora Core 20 beta). I am attaching a fresh plugin.log, obtained using the following command: ICEDTEAPLUGIN_DEBUG=true firefox 2>&1 | tee plugin.log I am also attaching, as the last post suggests, all of the log files in the ~/.icedtea/log folder. Let me know if you need any other logs or information. -- 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/20131127/6f4ac4ce/attachment-0001.html From bugzilla-daemon at icedtea.classpath.org Tue Nov 26 16:59:06 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 27 Nov 2013 00:59:06 +0000 Subject: [Bug 910] IcedTea-web browser plugin doesn't connect when i launch Oanda forex trading applet. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=910 --- Comment #3 from Ramesh Krishna --- Created attachment 983 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=983&action=edit Log Files produced by IcedTea for OANDA fxTrade This attachment contains the plugin.log and the contents of the ~/.icedtea/log folder after running the OANDA fxTrade application, and letting it hang at 40%. I then closed Firefox after about 1 minute. -- 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/20131127/cad6fce8/attachment.html From ptisnovs at icedtea.classpath.org Wed Nov 27 00:28:41 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 27 Nov 2013 08:28:41 +0000 Subject: /hg/gfx-test: Nine new common test methods added into BitBltBuff... Message-ID: changeset 8f6f8eaf5fbc in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8f6f8eaf5fbc author: Pavel Tisnovsky date: Wed Nov 27 09:32:36 2013 +0100 Nine new common test methods added into BitBltBufferedImageOp. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBufferedImageOp.java | 151 ++++++++++++++++++ 2 files changed, 156 insertions(+), 0 deletions(-) diffs (173 lines): diff -r d6d58629764a -r 8f6f8eaf5fbc ChangeLog --- a/ChangeLog Tue Nov 26 10:09:43 2013 +0100 +++ b/ChangeLog Wed Nov 27 09:32:36 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-27 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBufferedImageOp.java: + Nine new common test methods added into BitBltBufferedImageOp. + 2013-11-26 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltAffineIdentityTransformOp.java: diff -r d6d58629764a -r 8f6f8eaf5fbc src/org/gfxtest/testsuites/BitBltBufferedImageOp.java --- a/src/org/gfxtest/testsuites/BitBltBufferedImageOp.java Tue Nov 26 10:09:43 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltBufferedImageOp.java Wed Nov 27 09:32:36 2013 +0100 @@ -1109,6 +1109,157 @@ return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR, rasterOp); } + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_4BYTE_ABGR}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_4BYTE_ABGR_PRE}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageType4ByteABGRPre(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_INT_ARGB}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_INT_ARGB_PRE}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeIntARGBPre(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_INT_BGR}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_BGR, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_INT_RGB}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_INT_RGB, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_USHORT_555_RGB}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_USHORT_565_RGB}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB, rasterOp); + } + + /** + * Test basic BitBlt operation for diagonal grid buffered image with type {@link BufferedImage#TYPE_USHORT_GRAY}. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @param rasterOp + * selected raster operation + * @return test result status - PASSED, FAILED or ERROR + */ + protected TestResult doBitBltDiagonalGridBufferedImageTypeUshortGray(TestImage image, Graphics2D graphics2d, + BufferedImageOp rasterOp) + { + return CommonBitmapOperations.doBitBltTestWithGridImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY, rasterOp); } /** From ptisnovs at icedtea.classpath.org Wed Nov 27 00:32:06 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 27 Nov 2013 08:32:06 +0000 Subject: /hg/rhino-tests: Added new testGetResourcePositiveTest into Message-ID: changeset 194c886a7975 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=194c886a7975 author: Pavel Tisnovsky date: Wed Nov 27 09:36:03 2013 +0100 Added new testGetResourcePositiveTest into AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/AbstractScriptEngineClassTest.java | 9 +++++++++ 2 files changed, 15 insertions(+), 0 deletions(-) diffs (32 lines): diff -r 2c30f6a7c285 -r 194c886a7975 ChangeLog --- a/ChangeLog Tue Nov 26 10:23:20 2013 +0100 +++ b/ChangeLog Wed Nov 27 09:36:03 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-27 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added new testGetResourcePositiveTest into + AbstractScriptEngineClassTest.java. + 2013-11-26 Pavel Tisnovsky * src/org/RhinoTests/ScriptContextClassTest.java: diff -r 2c30f6a7c285 -r 194c886a7975 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Tue Nov 26 10:23:20 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Wed Nov 27 09:36:03 2013 +0100 @@ -1850,6 +1850,15 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getResourceAsStreamPositiveTest() + */ + protected void testGetResourceAsStreamPositiveTest() { + Object stream; + stream = this.abstractScriptEngineClass.getResourceAsStream("/org/RhinoTests/AbstractScriptEngineClassTest.class"); + assertNotNull(stream, "getResourceAsStream(\"/org/RhinoTests/AbstractScriptEngineClassTest.class\") returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.AbstractScriptEngine */ @SuppressWarnings("cast") From jvanek at redhat.com Wed Nov 27 04:53:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 27 Nov 2013 13:53:53 +0100 Subject: [rfc][icedtea-web] Reproducer touch-up for JNLPClassLoaderDeadlock In-Reply-To: <5294C46E.9060205@redhat.com> References: <5285174A.5020108@redhat.com> <528B6086.2090409@redhat.com> <5294C46E.9060205@redhat.com> Message-ID: <5295EB61.6030102@redhat.com> Have not tested this version, but considering it working, ok to head. J. On 11/26/2013 04:55 PM, Andrew Azores wrote: > On 11/19/2013 07:58 AM, Jiri Vanek wrote: >> On 11/14/2013 07:32 PM, Andrew Azores wrote: >>> The JNLPClassLoaderDeadlock reproducer was occasionally failing, IMO wrongly. The second applet's output would not appear in the stdout and so the test would fail, even though the first applet could be observed to have run, and so a deadlock did not seem to have taken place. I think what was happening was that the first applet ran, produced the "magical closing string", and the browser would begin to close before the second applet ever run. This patch fixes the test to accommodate for this, making the test more reliable (at least on my system). >>> >>> Thanks, >>> >> >> Isnt best to have both applets to let them print out heir end? >> System.out.println("*** APPLET 1 FINISHED ***"); >> System.out.println("*** APPLET 2 FINISHED ***"); >> >> And then wait for both strings in clsoing listener/passed assert? >> >> J. >> > > Yea, probably better that way. > > Thanks, > From bugzilla-daemon at icedtea.classpath.org Wed Nov 27 04:48:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 27 Nov 2013 12:48:05 +0000 Subject: [Bug 1607] IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 --- Comment #3 from Xerxes R?nby --- (In reply to comment #1) > isActive() state between start()-stop(): > ======================== > Applet-State @ start: ERROR, active[exp true, has false]*, init[exp 1, has > 1], start[exp 1, has 1], stop[exp 0, has 0], destroy[exp 0, has 0] Problem located: OpenJDK 6 7 & 8 AppletPanel fail to implement the AppletStub interface according to spec. The AppletStub: http://icedtea.classpath.org/hg/icedtea7-forest/jdk/file/00cd9dc3c2b5/src/share/classes/java/applet/AppletStub.java#l41 41 /** 42 * Determines if the applet is active. An applet is active just 43 * before its start method is called. It becomes 44 * inactive just before its stop method is called. 45 * 46 * @return true if the applet is active; 47 * false otherwise. 48 */ 49 boolean isActive(); The AppletPanel implementation differ from the AppletStub spec: http://icedtea.classpath.org/hg/icedtea7-forest/jdk/file/00cd9dc3c2b5/src/share/classes/sun/applet/AppletPanel.java#l887 887 /** 888 * Return true when the applet has been started. 889 */ 890 public boolean isActive() { 891 return status == APPLET_START; 892 } Thus the AppletPanel implementation needs to be adjusted to follow the AppletStub spec. The status = APPLET_START; must be performed at the line just before applet.start(); in order to correctly implement the spec. http://icedtea.classpath.org/hg/icedtea7-forest/jdk/file/00cd9dc3c2b5/src/share/classes/sun/applet/AppletPanel.java#l467 -- 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/20131127/f8ae0f5c/attachment.html From jvanek at icedtea.classpath.org Wed Nov 27 05:14:08 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 27 Nov 2013 13:14:08 +0000 Subject: /hg/icedtea-web: 3 new changesets Message-ID: changeset 52b966504176 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=52b966504176 author: Jiri Vanek date: Wed Nov 27 14:11:13 2013 +0100 Added null check when getting manifest attributes for case of jar without manifest * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) added check fo null manifest to prevent npe. * /tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: added test for npe from getManifestAttribute * tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java: (createJarWithContents) enhanced to be able to create jar without manifest. changeset 2332108cd5b0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=2332108cd5b0 author: Jiri Vanek date: Wed Nov 27 14:14:59 2013 +0100 removed redundant slash in chnagelog changeset d5bcc8f80d90 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d5bcc8f80d90 author: Jiri Vanek date: Wed Nov 27 14:20:25 2013 +0100 Reverted "fix to ManifestedJar1Test cases", better manifestedjar tests, added srtict test * netx/net/sourceforge/jnlp/Parser.java: added indentation, fixes condition in strict base check * netx/net/sourceforge/jnlp/ResourcesDesc.java: revertedt recently added throw * tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: (manifestedJar1main2mainNoAppDesc) adapted and (manifestedJar1main2mainNoAppDescStrict) added diffstat: ChangeLog | 20 +++++ netx/net/sourceforge/jnlp/Parser.java | 21 +++-- netx/net/sourceforge/jnlp/ResourcesDesc.java | 13 +--- netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 8 +- tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java | 35 ++++++++++ tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java | 19 +++++ tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java | 16 ++++- 7 files changed, 108 insertions(+), 24 deletions(-) diffs (249 lines): diff -r 349c86e05863 -r d5bcc8f80d90 ChangeLog --- a/ChangeLog Mon Nov 25 16:54:23 2013 +0100 +++ b/ChangeLog Wed Nov 27 14:20:25 2013 +0100 @@ -1,3 +1,23 @@ +2013-11-26 Jiri Vanek + + Reverted "fix to ManifestedJar1Test cases", better manifestedjar tests, + added srtict test + * netx/net/sourceforge/jnlp/Parser.java: added indentation, fixes + condition in strict base check + * netx/net/sourceforge/jnlp/ResourcesDesc.java: revertedt recently added throw + * tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java: + (manifestedJar1main2mainNoAppDesc) adapted and + (manifestedJar1main2mainNoAppDescStrict) added + +2013-11-26 Jiri Vanek + + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) + added check for null manifest to prevent npe. + * tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java: + added test for npe from getManifestAttribute + * tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java: + (createJarWithContents) enhanced to be able to create jar without manifest. + 2013-11-25 Jiri Vanek * netx/net/sourceforge/jnlp/JNLPFile.java: (TITLE_NOT_FOUND) new constant diff -r 349c86e05863 -r d5bcc8f80d90 netx/net/sourceforge/jnlp/Parser.java --- a/netx/net/sourceforge/jnlp/Parser.java Mon Nov 25 16:54:23 2013 +0100 +++ b/netx/net/sourceforge/jnlp/Parser.java Wed Nov 27 14:20:25 2013 +0100 @@ -250,13 +250,13 @@ Node resources[] = getChildNodes(parent, "resources"); // ensure that there are at least one information section present - if (resources.length == 0 && !j2se) + if (resources.length == 0 && !j2se) { throw new ParseException(R("PNoResources")); - + } // create objects from the resources sections - for (int i = 0; i < resources.length; i++) + for (int i = 0; i < resources.length; i++) { result.add(getResourcesDesc(resources[i], j2se)); - + } return result; } @@ -302,9 +302,11 @@ // check for duplicate main entries if (jar.isMain()) { - if (mainFlag == true) - if (strict) + if (mainFlag == true) { + if (strict) { throw new ParseException(R("PTwoMains")); + } + } mainFlag = true; } @@ -1073,10 +1075,11 @@ URL result = new URL(base, href); // check for going above the codebase - if (!result.toString().startsWith(base.toString())) - if (strict) + if (!result.toString().startsWith(base.toString()) && !base.toString().startsWith(result.toString())){ + if (strict) { throw new ParseException(R("PUrlNotInCodebase", node.getNodeName(), href, base)); - + } + } return result; } diff -r 349c86e05863 -r d5bcc8f80d90 netx/net/sourceforge/jnlp/ResourcesDesc.java --- a/netx/net/sourceforge/jnlp/ResourcesDesc.java Mon Nov 25 16:54:23 2013 +0100 +++ b/netx/net/sourceforge/jnlp/ResourcesDesc.java Wed Nov 27 14:20:25 2013 +0100 @@ -72,19 +72,10 @@ } public static JARDesc getMainJAR(List jars) { - JARDesc markedMain = null; for (JARDesc jar : jars) { if (jar.isMain()) { - if (markedMain == null){ - markedMain = jar; - } else { - //more then one main jar specified. It stinks. Return null to die later null; - throw new RuntimeException("Multiple main JARs specified, refusing to continue."); - } - } - } - if (markedMain!=null){ - return markedMain; + return jar; + } } if (jars.size() > 0) { diff -r 349c86e05863 -r d5bcc8f80d90 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Mon Nov 25 16:54:23 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 27 14:20:25 2013 +0100 @@ -900,8 +900,12 @@ JarFile mainJar = null; try { mainJar = new JarFile(f); - attributeValue = mainJar.getManifest(). - getMainAttributes().getValue(attribute); + Manifest manifest = mainJar.getManifest(); + if (manifest == null || manifest.getMainAttributes() == null){ + //yes, jars without manifest exists + return null; + } + attributeValue = manifest.getMainAttributes().getValue(attribute); } catch (IOException ioe) { attributeValue = null; } finally { diff -r 349c86e05863 -r d5bcc8f80d90 tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Mon Nov 25 16:54:23 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/runtime/JNLPClassLoaderTest.java Wed Nov 27 14:20:25 2013 +0100 @@ -51,6 +51,7 @@ import net.sourceforge.jnlp.mock.DummyJNLPFileWithJar; import net.sourceforge.jnlp.util.FileTestUtils; import net.sourceforge.jnlp.util.logging.NoStdOutErrTest; +import org.junit.Assert; import org.junit.Test; @@ -259,4 +260,38 @@ } }); } + + + @Test + public void tryNullManifest() throws Exception { + File tempDirectory = FileTestUtils.createTempDirectory(); + File jarLocation = new File(tempDirectory, "test-npe.jar"); + File dummyContent = File.createTempFile("dummy", "context", tempDirectory); + jarLocation.deleteOnExit(); + + /* Test with-out any attribute specified specified */ + FileTestUtils.createJarWithoutManifestContents(jarLocation, dummyContent); + + final Exception[] exs = new Exception[2]; + final DummyJNLPFileWithJar jnlpFile = new DummyJNLPFileWithJar(jarLocation); + try { + final JNLPClassLoader classLoader = new JNLPClassLoader(jnlpFile, UpdatePolicy.ALWAYS); + assertNoFileLeak(new Runnable() { + @Override + public void run() { + try { + assertEquals(null, classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.MAIN_CLASS)); + assertEquals(null, classLoader.getManifestAttribute(jnlpFile.getJarLocation(), Attributes.Name.IMPLEMENTATION_TITLE)); + } catch (Exception e) { + exs[0] = e; + } + } + }); + } catch (Exception e) { + exs[1] = e; + } + Assert.assertNotNull(exs); + Assert.assertNull(exs[0]); + Assert.assertNull(exs[1]); + } } diff -r 349c86e05863 -r d5bcc8f80d90 tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java --- a/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Mon Nov 25 16:54:23 2013 +0100 +++ b/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java Wed Nov 27 14:20:25 2013 +0100 @@ -35,9 +35,11 @@ exception statement from your version. */ +import java.util.Arrays; import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess; import net.sourceforge.jnlp.annotations.Bug; +import net.sourceforge.jnlp.runtime.Translator; import org.junit.Assert; import org.junit.Test; @@ -154,15 +156,32 @@ /** * * Two jars, both with manifest, sboth with main tag, no app desc + * first jar is taken * */ @Test public void manifestedJar1main2mainNoAppDesc() throws Exception { String id = "ManifestedJar-1main2mainNoAppDesc"; ProcessResult pr = server.executeJavawsHeadless(null, "/" + id + ".jnlp"); + assertManifestedJar1(id, pr); + assertNotManifestedJar2(id, pr); + assertNotDead(id, pr); + } + + /** + * + * Two jars, both with manifest, sboth with main tag, no app desc + * two main jars reported + * + */ + @Test + public void manifestedJar1main2mainNoAppDescStrict() throws Exception { + String id = "ManifestedJar-1main2mainNoAppDesc"; + ProcessResult pr = server.executeJavawsHeadless(Arrays.asList(new String[]{"-strict"}), "/" + id + ".jnlp"); assertNotManifestedJar1(id, pr); assertNotManifestedJar2(id, pr); assertNotDead(id, pr); + Assert.assertTrue(pr.stderr.contains(Translator.R("PTwoMains")) || pr.stdout.contains(Translator.R("PTwoMains"))); } /** diff -r 349c86e05863 -r d5bcc8f80d90 tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java --- a/tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java Mon Nov 25 16:54:23 2013 +0100 +++ b/tests/test-extensions/net/sourceforge/jnlp/util/FileTestUtils.java Wed Nov 27 14:20:25 2013 +0100 @@ -89,13 +89,25 @@ } /* Creates a jar in a temporary directory, with the given name & file contents */ + static public void createJarWithoutManifestContents(File jarFile, File... fileContents) throws Exception{ + createJarWithContents(jarFile, null, fileContents); + } + + /* Creates a jar in a temporary directory, with the given name & file contents */ static public void createJarWithContents(File jarFile, Manifest manifestContents, File... fileContents) throws Exception { /* Manifest quite evilly ignores all attributes if we don't specify a version! * Make sure it's set here. */ - manifestContents.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + if (manifestContents != null){ + manifestContents.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + } - JarOutputStream jarWriter = new JarOutputStream(new FileOutputStream(jarFile), manifestContents); + JarOutputStream jarWriter; + if (manifestContents == null){ + jarWriter = new JarOutputStream(new FileOutputStream(jarFile)); + } else { + jarWriter = new JarOutputStream(new FileOutputStream(jarFile), manifestContents); + } for (File file : fileContents) { jarWriter.putNextEntry(new JarEntry(file.getName())); FileInputStream fileReader = new FileInputStream(file); From jvanek at icedtea.classpath.org Wed Nov 27 05:14:40 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 27 Nov 2013 13:14:40 +0000 Subject: /hg/release/icedtea-web-1.4: Added null check when getting manif... Message-ID: changeset 461eb0b77b53 in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=461eb0b77b53 author: Jiri Vanek date: Wed Nov 27 14:14:14 2013 +0100 Added null check when getting manifest attributes for case of jar without manifest * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) added check fo null manifest to prevent npe. diffstat: ChangeLog | 5 +++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diffs (30 lines): diff -r 719431dbd56c -r 461eb0b77b53 ChangeLog --- a/ChangeLog Thu Nov 14 10:56:29 2013 +0100 +++ b/ChangeLog Wed Nov 27 14:14:14 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-26 Jiri Vanek + + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) + added check for null manifest to prevent npe. + 2013-11-13 Andrew Azores * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: add diff -r 719431dbd56c -r 461eb0b77b53 netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Nov 14 10:56:29 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Wed Nov 27 14:14:14 2013 +0100 @@ -927,8 +927,12 @@ JarFile mainJar = null; try { mainJar = new JarFile(f); - attributeValue = mainJar.getManifest(). - getMainAttributes().getValue(attribute); + Manifest manifest = mainJar.getManifest(); + if (manifest == null || manifest.getMainAttributes() == null){ + //yes, jars without manifest exists + return null; + } + attributeValue = manifest.getMainAttributes().getValue(attribute); } catch (IOException ioe) { attributeValue = null; } finally { From bugzilla-daemon at icedtea.classpath.org Wed Nov 27 06:09:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 27 Nov 2013 14:09:00 +0000 Subject: [Bug 1607] IcedTea Web removes Components from the Applet Container before Applet.stop() and Applet.destroy() has been called In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1607 --- Comment #4 from Xerxes R?nby --- Created attachment 984 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=984&action=edit openjdk-6-7-8-jdk-AppletPanel.isActive-JDK-6707266.patch (In reply to comment #3) >> (In reply to comment #1) >> isActive() state between start()-stop(): >> ======================== >> Applet-State @ start: ERROR, active[exp true, has false]*, init[exp 1, has >> 1], start[exp 1, has 1], stop[exp 0, has 0], destroy[exp 0, has 0] > > Problem located: OpenJDK 6 7 & 8 AppletPanel fail to implement the AppletStub > interface according to spec. The attached patch: openjdk-6-7-8-jdk-AppletPanel.isActive-JDK-6707266.patch is a fix and also a fix for the sun bug JDK-6707266 : Applet.isActive( ) does not work as expected. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6707266 -- 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/20131127/b556ec10/attachment.html From aazores at icedtea.classpath.org Wed Nov 27 13:38:22 2013 From: aazores at icedtea.classpath.org (aazores at icedtea.classpath.org) Date: Wed, 27 Nov 2013 21:38:22 +0000 Subject: /hg/icedtea-web: JNLPClassLoaderDeadlock reproducer made more re... Message-ID: changeset 72f45c87b008 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=72f45c87b008 author: Andrew Azores date: Wed Nov 27 16:37:38 2013 -0500 JNLPClassLoaderDeadlock reproducer made more reliable diffstat: ChangeLog | 10 ++++++++++ tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java | 1 - tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java | 1 - tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java | 7 +++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diffs (62 lines): diff -r d5bcc8f80d90 -r 72f45c87b008 ChangeLog --- a/ChangeLog Wed Nov 27 14:20:25 2013 +0100 +++ b/ChangeLog Wed Nov 27 16:37:38 2013 -0500 @@ -1,3 +1,13 @@ +2013-11-27 Andrew Azores + + Made JNLPClassLoaderDeadlock reproducer more reliable + * tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java: + Removed "AutoOkClosingListener" magic string + * tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java: + same + * tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java: + Changed AutoOkClosingListener to RulesFolowingClosingListener + 2013-11-26 Jiri Vanek Reverted "fix to ManifestedJar1Test cases", better manifestedjar tests, diff -r d5bcc8f80d90 -r 72f45c87b008 tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java --- a/tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java Wed Nov 27 14:20:25 2013 +0100 +++ b/tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java Wed Nov 27 16:37:38 2013 -0500 @@ -15,7 +15,6 @@ setBackground(Color.white); add(tf); System.out.println("JNLPClassLoaderDeadlock_1 applet finished"); - System.out.println("*** APPLET FINISHED ***"); } public static void main(String[] args) { diff -r d5bcc8f80d90 -r 72f45c87b008 tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java --- a/tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java Wed Nov 27 14:20:25 2013 +0100 +++ b/tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java Wed Nov 27 16:37:38 2013 -0500 @@ -78,6 +78,5 @@ } } System.out.println("JNLPClassLoaderDeadlock_2 applet finished"); - System.out.println("*** APPLET FINISHED ***"); } } diff -r d5bcc8f80d90 -r 72f45c87b008 tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java --- a/tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java Wed Nov 27 14:20:25 2013 +0100 +++ b/tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java Wed Nov 27 16:37:38 2013 -0500 @@ -43,7 +43,7 @@ import net.sourceforge.jnlp.annotations.TestInBrowsers; import net.sourceforge.jnlp.browsertesting.BrowserTest; import net.sourceforge.jnlp.browsertesting.Browsers; -import net.sourceforge.jnlp.closinglisteners.AutoOkClosingListener; +import net.sourceforge.jnlp.closinglisteners.RulesFolowingClosingListener; import static org.junit.Assert.assertTrue; import org.junit.Test; @@ -55,7 +55,10 @@ @TestInBrowsers(testIn={Browsers.one}) @Bug(id="RH976833") public void testClassLoaderDeadlock() throws Exception { - ProcessResult pr = server.executeBrowser("JNLPClassLoaderDeadlock.html", AutoClose.CLOSE_ON_CORRECT_END); + RulesFolowingClosingListener listener = new RulesFolowingClosingListener(); + listener.addContainsRule("JNLPClassLoaderDeadlock_1 applet finished"); + listener.addContainsRule("JNLPClassLoaderDeadlock_2 applet finished"); + ProcessResult pr = server.executeBrowser("JNLPClassLoaderDeadlock.html", listener, null); assertTrue("First applet should have initialized", pr.stdout.contains("JNLPClassLoaderDeadlock_1 applet initialized")); assertTrue("Second applet should have initialized", From andrew at icedtea.classpath.org Wed Nov 27 23:37:17 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 28 Nov 2013 07:37:17 +0000 Subject: /hg/icedtea6: 3 new changesets Message-ID: changeset bb07f8461037 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bb07f8461037 author: Andrew John Hughes date: Mon Nov 25 16:01:00 2013 +0000 Add 1.12.7 release notes. 2013-11-25 Andrew John Hughes * NEWS: Add 1.12.7 release notes. changeset 4e01ea83c50f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4e01ea83c50f author: Andrew John Hughes date: Tue Nov 26 19:04:20 2013 +0000 S8025255: (tz) Support tzdata2013g S6925851: Localize JRE into pt_BR S7035073: Add missing timezones to TimeZoneNames_pt_BR.java 2013-11-08 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patches. * patches/openjdk/6925851-pt_br.patch: Added. * patches/openjdk/7017800-tzdata2011b.patch, * patches/openjdk/7027387-tzdata2011d.patch: Updated with pt_BR changes. * patches/openjdk/7035073-missing_pt_br_timezones.patch: Added. * patches/openjdk/7090843-tzdata2011j.patch, * patches/openjdk/7103108-tzdata2011l.patch, * patches/openjdk/7103405-correct_display_names.patch, * patches/openjdk/7158483-tzdata2012c.patch, * patches/openjdk/8009987-tzdata2013b.patch: Updated with pt_BR changes. * patches/openjdk/8025255-tzdata2013g.patch: Added. changeset 5ed0ea7f751e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5ed0ea7f751e author: Andrew John Hughes date: Thu Nov 28 07:36:47 2013 +0000 D729448: 32-bit alignment on mips and mipsel 2013-11-21 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new patch. * patches/d729448-32_bit_alignment.patch: Fix alignment on mips and mipsel. diffstat: ChangeLog | 30 + Makefile.am | 6 +- NEWS | 153 + patches/d729448-32_bit_alignment.patch | 47 + patches/openjdk/6925851-pt_br.patch | 3651 +++++++++++++++ patches/openjdk/7017800-tzdata2011b.patch | 11 + patches/openjdk/7027387-tzdata2011d.patch | 20 + patches/openjdk/7035073-missing_pt_br_timezones.patch | 1644 +++++++ patches/openjdk/7090843-tzdata2011j.patch | 53 + patches/openjdk/7103108-tzdata2011l.patch | 67 + patches/openjdk/7103405-correct_display_names.patch | 12 + patches/openjdk/7158483-tzdata2012c.patch | 46 + patches/openjdk/8009987-tzdata2013b.patch | 110 + patches/openjdk/8025255-tzdata2013g.patch | 3976 +++++++++++++++++ 14 files changed, 9825 insertions(+), 1 deletions(-) diffs (truncated from 9951 to 500 lines): diff -r 10ce8e5e415f -r 5ed0ea7f751e ChangeLog --- a/ChangeLog Wed Nov 13 04:08:08 2013 +0000 +++ b/ChangeLog Thu Nov 28 07:36:47 2013 +0000 @@ -1,3 +1,33 @@ +2013-11-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * patches/d729448-32_bit_alignment.patch: + Fix alignment on mips and mipsel. + +2013-11-08 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new patches. + * patches/openjdk/6925851-pt_br.patch: Added. + * patches/openjdk/7017800-tzdata2011b.patch, + * patches/openjdk/7027387-tzdata2011d.patch: + Updated with pt_BR changes. + * patches/openjdk/7035073-missing_pt_br_timezones.patch: + Added. + * patches/openjdk/7090843-tzdata2011j.patch, + * patches/openjdk/7103108-tzdata2011l.patch, + * patches/openjdk/7103405-correct_display_names.patch, + * patches/openjdk/7158483-tzdata2012c.patch, + * patches/openjdk/8009987-tzdata2013b.patch: + Updated with pt_BR changes. + * patches/openjdk/8025255-tzdata2013g.patch: + Added. + +2013-11-25 Andrew John Hughes + + * NEWS: Add 1.12.7 release notes. + 2013-11-13 Andrew John Hughes * NEWS: Add 1.11.14 release notes and diff -r 10ce8e5e415f -r 5ed0ea7f751e Makefile.am --- a/Makefile.am Wed Nov 13 04:08:08 2013 +0000 +++ b/Makefile.am Thu Nov 28 07:36:47 2013 +0000 @@ -632,11 +632,13 @@ patches/openjdk/8014968-OCSP_timeout_default.patch \ patches/openjdk/6541350-tz_display_names_l10n.patch \ patches/openjdk/6821191-tz_display_names_l10n.patch \ + patches/openjdk/6925851-pt_br.patch \ patches/openjdk/6977550-tzdata2010l.patch \ patches/openjdk/6996686-tzdata2010o.patch \ patches/openjdk/7017800-tzdata2011b.patch \ patches/openjdk/7027387-tzdata2011d.patch \ patches/openjdk/7033174-tzdata2011e.patch \ + patches/openjdk/7035073-missing_pt_br_timezones.patch \ patches/openjdk/7039469-tzdata2011g.patch \ patches/openjdk/7090843-tzdata2011j.patch \ patches/openjdk/7103108-tzdata2011l.patch \ @@ -721,7 +723,9 @@ patches/arm/cc_compile-06.patch \ patches/hotspot/hs23/arm-hsdis.patch \ patches/openjdk/7025066-embedded_build.patch \ - patches/s390_casts.patch + patches/s390_casts.patch \ + patches/openjdk/8025255-tzdata2013g.patch \ + patches/d729448-32_bit_alignment.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -r 10ce8e5e415f -r 5ed0ea7f751e NEWS --- a/NEWS Wed Nov 13 04:08:08 2013 +0000 +++ b/NEWS Thu Nov 28 07:36:47 2013 +0000 @@ -891,6 +891,159 @@ - JVM_IsVMGeneratedMethodIx stub - Dummy implementation of sun.misc.Perf natives +New in release 1.12.7 (2013-11-21): + +* Security fixes + - S8006900, CVE-2013-3829: Add new date/time capability + - S8008589: Better MBean permission validation + - S8011071, CVE-2013-5780: Better crypto provider handling + - S8011081, CVE-2013-5772: Improve jhat + - S8011157, CVE-2013-5814: Improve CORBA portablility + - S8012071, CVE-2013-5790: Better Building of Beans + - S8012147: Improve tool support + - S8012277: CVE-2013-5849: Improve AWT DataFlavor + - S8012425, CVE-2013-5802: Transform TransformerFactory + - S8013503, CVE-2013-5851: Improve stream factories + - S8013506: Better Pack200 data handling + - S8013510, CVE-2013-5809: Augment image writing code + - S8013514: Improve stability of cmap class + - S8013739, CVE-2013-5817: Better LDAP resource management + - S8013744, CVE-2013-5783: Better tabling for AWT + - S8014085: Better serialization support in JMX classes + - S8014093, CVE-2013-5782: Improve parsing of images + - S8014102, CVE-2013-5778: Improve image conversion + - S8014341, CVE-2013-5803: Better service from Kerberos servers + - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic in some class loader configurations + - S8014530, CVE-2013-5825: Better digital signature processing + - S8014534: Better profiling support + - S8014987, CVE-2013-5842: Augment serialization handling + - S8015614: Update build settings + - S8015731: Subject java.security.auth.subject to improvements + - S8015743, CVE-2013-5774: Address internet addresses + - S8016256: Make finalization final + - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters in names + - S8016675, CVE-2013-5797: Make Javadoc pages more robust + - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately + - S8017287, CVE-2013-5829: Better resource disposal + - S8017291, CVE-2013-5830: Cast Proxies Aside + - S8017298, CVE-2013-4002: Better XML support + - S8017300, CVE-2013-5784: Improve Interface Implementation + - S8017505, CVE-2013-5820: Better Client Service + - S8019292: Better Attribute Value Exceptions + - S8019617: Better view of objects + - S8020293: JVM crash + - S8021290, CVE-2013-5823: Better signature validation + - S8022940: Enhance CORBA translations + - S8023683: Enhance class file parsing +* Backports + - S4075303: Use javap to enquire about a specific inner class + - S4111861: static final field contents are not displayed + - S4348375: Javap is not internationalized + - S4459541: "javap -l" shows line numbers as signed short; they should be unsigned + - S4501660: change diagnostic of -help as 'print this help message and exit' + - S4501661: disallow mixing -public, -private, and -protected options at the same time + - S4776241: unused source file in javap... + - S4870651: javap should recognize generics, varargs, enum + - S4876942: javap invoked without args does not print help screen + - S4880663: javap could output whitespace between class name and opening brace + - S4884240: additional option required for javap + - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY + - S4975569: javap doesn't print new flag bits + - S6271787: javap dumps LocalVariableTypeTable attribute in hex, needs to print a table + - S6305779: javap: support annotations + - S6439940: Clean up javap implementation + - S6469569: wrong check of searchpath in JavapEnvironment + - S6474890: javap does not open .zip files in -classpath + - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) + - S6587786: Javap throws error : "ERROR:Could not find " for JRE classes + - S6622215: javap ignores certain relevant access flags + - S6622216: javap names some attributes incorrectly + - S6622232: javap gets whitespace confused + - S6622260: javap prints negative bytes incorrectly in hex + - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll + - S6636331: ConcurrentModificationException in AppContext code + - S6636370: minor corrections and simplification of code in AppContext + - S6708729: update jdk Makefiles for new javap + - S6715767: javap on java.lang.ClassLoader crashes + - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 + - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 + - S6793818: JpegImageReader is too greedy creating color profiles + - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 + - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 + - S6819246: improve support for decoding instructions in classfile library + - S6824493: experimental support for additional info for instructions + - S6840152: JVM crashes when heavyweight monitors are used + - S6841419: classfile: add constant pool iterator + - S6841420: classfile: add new methods to ConstantClassInfo + - S6843013: missing files in fix for 6824493 + - S6852856: javap changes to facilitate subclassing javap for variants + - S6867671: javap whitespace formatting issues + - S6868539: javap should use current names for constant pool tags + - S6888215: memory leak in jpeg plugin + - S6902264: fix indentation of tableswitch and lookupswitch + - S6925851: Localize JRE into pt_BR + - S6954275: XML signatures with reference data larger 16KB and cacheRef on fails to validate + - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) + - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build + - S6989760: cmm native compiler warnings + - S6989774: imageio compiler warnings in native code + - S7000225: Sanity check on sane-alsa-headers is broken + - S7013519: [parfait] Integer overflows in 2D code + - S7018912: [parfait] potential buffer overruns in imageio jpeg + - S7022999: Can't build with FORCE_TIERED=0 + - S7035073: Add missing timezones to TimeZoneNames_pt_BR.java + - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber + - S7146431: java.security files out-of-sync + - S7196533: TimeZone.getDefault() slow due to synchronization bottleneck + - S8000450: Restrict access to com/sun/corba/se/impl package + - S8002070: Remove the stack search for a resource bundle for Logger to use + - S8003992: File and other classes in java.io do not handle embedded nulls properly + - S8004188: Rename src/share/lib/security/java.security to java.security-linux + - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() + - S8006882: Proxy generated classes in sun.proxy package breaks JMockit + - S8010118: Annotate jdk caller sensitive methods with @sun.reflect.CallerSensitive + - S8010727: WLS fails to add a logger with "" in its own LogManager subclass instance + - S8010939: Deadlock in LogManager + - S8011139: (reflect) Revise checking in getEnclosingClass + - S8011950: java.io.File.createTempFile enters infinite loop when passed invalid data + - S8011990: TEST_BUG: java/util/logging/bundlesearch/ResourceBundleSearchTest.java fails on Windows + - S8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21 + - S8012453: (process) Runtime.exec(String) fails if command contains spaces [win] + - S8012617: ArrayIndexOutOfBoundsException with some fonts using LineBreakMeasurer + - S8013380: Removal of stack walk to find resource bundle breaks Glassfish startup + - S8013827: File.createTempFile hangs with temp file starting with 'com1.4' + - S8014469: (tz) Support tzdata2013c + - S8014718: Netbeans IDE begins to throw a lot exceptions since 7u25 b10 + - S8014745: Provide a switch to allow stack walk search of resource bundle + - S8015144: Performance regression in ICU OpenType Layout library + - S8015965: (process) Typo in name of property to allow ambiguous commands + - S8015978: Incorrect transformation of XPath expression "string(-0)" + - S8016357: Update hotspot diagnostic class + - S8017566: Backout 8000450 - Cannot access to com.sun.corba.se.impl.orb.ORBImpl + - S8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null + - S8019969: nioNetworkChannelInet6/SetOptionGetOptionTestInet6 test case crashes + - S8019979: Replace CheckPackageAccess test with better one from closed repo + - S8020054: (tz) Support tzdata2013d + - S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances + - S8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris + - S8021366: java_util/Properties/PropertiesWithOtherEncodings fails during 7u45 nightly testing + - S8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 + - S8021933: Add extra check for fix # JDK-8014530 + - S8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. + - S8022661: InetAddress.writeObject() performs flush() on object output stream + - S8022682: Supporting XOM + - S8023964: java/io/IOException/LastErrorString.java should be @ignore-d + - S8024914: Swapped usage of idx_t and bm_word_t types in bitMap.inline.hpp + - S8025128: File.createTempFile fails if prefix is absolute path + - S8025255: (tz) Support tzdata2013g + - OJ19: Fix test cases from 8010118 to work with OpenJDK 6 + - OJ20: Resolve merge issues with JAXP security fixes + - OJ21: Remove @Override annotation added on interface by 2013/10/15 security fixes +* Bug fixes + - PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. + - RH995488: Java thinks that the default timezone is Busingen instead of Zurich + - D729448: 32-bit alignment on mips and mipsel + New in release 1.11.14 (2013-11-13): * Security fixes diff -r 10ce8e5e415f -r 5ed0ea7f751e patches/d729448-32_bit_alignment.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/d729448-32_bit_alignment.patch Thu Nov 28 07:36:47 2013 +0000 @@ -0,0 +1,47 @@ +# HG changeset patch +# User andrew +# Date 1384967615 0 +# Wed Nov 20 17:13:35 2013 +0000 +# Node ID 05b64403a1917ddd9e0dd3880a5707e083ed9aba +# Parent 9d01164b2dfc36fb13984cb0854b2c7a9e4dbfbe +D729448: 32-bit alignment on mips and mipsel + +diff -r 9d01164b2dfc -r 05b64403a191 src/share/vm/interpreter/bytecodeInterpreter.hpp +--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp Tue Nov 12 17:58:35 2013 +0000 ++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp Wed Nov 20 17:13:35 2013 +0000 +@@ -60,7 +60,16 @@ + jlong l; + jdouble d; + uint32_t v[2]; +-}; ++} ++#ifndef _LP64 ++ /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit ++ on a 32-bit CPU. Accesses to double values should be 64-bit aligned ++ on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs, ++ as it might also help GCC to select the best instruction on other ++ CPUs. */ ++ __attribute__ ((packed, aligned (4))) ++#endif ++; + + + typedef class BytecodeInterpreter* interpreterState; +@@ -172,7 +181,16 @@ + jlong l; + jdouble d; + uint32_t v[2]; +-}; ++} ++#ifndef _LP64 ++ /* Hotspot only aligns the union to the uintptr_t type, that is 32 bit ++ on a 32-bit CPU. Accesses to double values should be 64-bit aligned ++ on at least MIPS and SPARC. Declare it to GCC for all 32-bit CPUs, ++ as it might also help GCC to select the best instruction on other ++ CPUs. */ ++ __attribute__ ((packed, aligned (4))) ++#endif ++; + + /* + * Generic 32-bit wide "Java slot" definition. This type occurs diff -r 10ce8e5e415f -r 5ed0ea7f751e patches/openjdk/6925851-pt_br.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6925851-pt_br.patch Thu Nov 28 07:36:47 2013 +0000 @@ -0,0 +1,3651 @@ +# HG changeset patch +# User yhuang +# Date 1291285057 28800 +# Thu Dec 02 02:17:37 2010 -0800 +# Node ID e3ecd9555ff01afd93f9aed6f883eb32f71c0505 +# Parent b357910aa04aead2a16b6d6ff395a8df4b51d1dd +6925851: Localize JRE into pt_BR +Reviewed-by: mfang, psun + +diff -r b357910aa04a -r e3ecd9555ff0 make/common/Defs.gmk +--- openjdk/jdk/make/common/Defs.gmk Wed Nov 10 20:40:19 2010 -0800 ++++ openjdk/jdk/make/common/Defs.gmk Thu Dec 02 02:17:37 2010 -0800 +@@ -246,8 +246,8 @@ + # Localizations for the different parts of the product beyond English + # + +-JRE_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK +-PLUGIN_LOCALES = de es fr it ja ko sv zh_CN zh_TW zh_HK ++JRE_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK ++PLUGIN_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK + JDK_LOCALES = ja zh_CN + + # +diff -r b357910aa04a -r e3ecd9555ff0 make/java/util/FILES_java.gmk +--- openjdk/jdk/make/java/util/FILES_java.gmk Wed Nov 10 20:40:19 2010 -0800 ++++ openjdk/jdk/make/java/util/FILES_java.gmk Thu Dec 02 02:17:37 2010 -0800 +@@ -37,4 +37,5 @@ + sun/util/resources/TimeZoneNames_es.java \ + sun/util/resources/TimeZoneNames_fr.java \ + sun/util/resources/TimeZoneNames_it.java \ ++ sun/util/resources/TimeZoneNames_pt_BR.java \ + sun/util/resources/TimeZoneNames_sv.java +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,146 @@ ++# ++# This properties file is used to create a PropertyResourceBundle ++# It contains Locale specific strings used be the Accessibility package. ++# ++# When this file is read in, the strings are put into the ++# defaults table. This is an implementation detail of the current ++# workings of Accessibility. DO NOT DEPEND ON THIS. ++# This may change in future versions of Accessibility as we improve ++# localization support. ++# ++# @author Lynn Monsanto ++ ++# ++# accessible roles ++# ++alert=alerta ++awtcomponent=componente AWT ++checkbox=caixa de sele\u00e7\u00e3o ++colorchooser=seletor de cores ++columnheader=cabe\u00e7alho da coluna ++combobox=caixa de combina\u00e7\u00e3o ++canvas=tela ++desktopicon=\u00edcone da \u00e1rea de trabalho ++desktoppane=painel da \u00e1rea de trabalho ++dialog=caixa de di\u00e1logo ++directorypane=painel do diret\u00f3rio ++glasspane=painel transparente ++filechooser=seletor de arquivos ++filler=preenchimento ++frame=quadro ++internalframe=quadro interno ++label=r\u00f3tulo ++layeredpane=painel em camadas ++list=lista ++listitem=item da lista ++menubar=barra de menus ++menu=menu ++menuitem=item do menu ++optionpane=painel de op\u00e7\u00f5es ++pagetab=aba da p\u00e1gina ++pagetablist=lista de abas da p\u00e1gina ++panel=painel ++passwordtext=texto da senha ++popupmenu=menu pop-up ++progressbar=barra de progresso ++pushbutton=bot\u00e3o de a\u00e7\u00e3o ++radiobutton=bot\u00e3o de op\u00e7\u00e3o ++rootpane=painel base ++rowheader=cabe\u00e7alho da linha ++scrollbar=barra de rolagem ++scrollpane=painel de rolagem ++separator=separador ++slider=controle deslizante ++splitpane=painel dividido ++swingcomponent=componente swing ++table=tabela ++text=texto ++tree=\u00e1rvore ++togglebutton=bot\u00e3o de altern\u00e2ncia ++toolbar=barra de ferramentas ++tooltip=dica de ferramenta ++unknown=desconhecido ++viewport=janela de visualiza\u00e7\u00e3o ++window=janela ++# ++# accessible relations ++# ++labelFor=r\u00f3tulo de ++labeledBy=rotulado por ++memberOf=membro de ++controlledBy=controlledBy ++controllerFor=controllerFor ++# ++# accessible states ++# ++active=ativo ++armed=armado ++busy=ocupado ++checked=selecionado ++collapsed=recolhido ++editable=edit\u00e1vel ++expandable=expans\u00edvel ++expanded=expandido ++enabled=habilitado ++focusable=focaliz\u00e1vel ++focused=focalizado ++iconified=iconizado ++modal=modal ++multiline=v\u00e1rias linhas ++multiselectable=m\u00faltipla escolha ++opaque=opaco ++pressed=pressionado ++resizable=redimension\u00e1vel ++selectable=selecion\u00e1vel ++selected=selecionado ++showing=exibindo ++singleline=linha \u00fanica ++transient=transit\u00f3rio ++visible=vis\u00edvel ++vertical=vertical ++horizontal=horizontal ++# ++# accessible actions ++# ++toggle expandir=alternar expandir ++ ++# new relations, roles and states for J2SE 1.5.0 ++ ++# ++# accessible relations ++# ++flowsTo=fluxos para ++flowsFrom=fluxos de ++subwindowOf=subjanela de ++parentWindowOf=janela pai de ++embeds=integra ++embeddedBy=integrado por ++childNodeOf=n\u00f3 filho de ++ ++# ++# accessible roles ++# ++header=cabe\u00e7alho ++footer=rodap\u00e9 ++paragraph=par\u00e1grafo ++ruler=r\u00e9gua ++editbar=barra de edi\u00e7\u00e3o ++progressMonitor=monitor de progresso ++ ++# ++# accessible states ++# ++managesDescendants=gerencia descendentes ++indeterminate=indeterminado ++truncated=truncado ++ ++# new for J2SE 1.6.0 ++ ++# ++# accessible roles ++# ++htmlcontainer=cont\u00eainer HTML ++ ++# ++# END OF MATERIAL TO LOCALIZE ++# +diff -r b357910aa04a -r e3ecd9555ff0 src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties Thu Dec 02 02:17:37 2010 -0800 +@@ -0,0 +1,81 @@ ++# Refer to the note in basic.properties for a description as to what ++# the mnemonics correspond to and how to calculate them. ++ ++ ++ ++# GTK specific properties ++ ++# GTK color chooser properties: ++GTKColorChooserPanel.nameText=Seletor de cores do GTK ++# mnemonic as a VK_ constant ++GTKColorChooserPanel.mnemonic=71 ++# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you ++# want an index other than would normally be underlined by ++# GTKColorChooserPanel.mnemonic to be underlined. This is only useful ++# if GTKColorChooserPanel.nameText defines the mnemonic character more ++# than once and you want a character other than the first underlined. ++ ++# Text and mnemonics for the spinner. You can also defined a different ++# index for the mnemonic via xxxMnemonicIndex, for example ++# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second ++# character of GTKColorChooserPanel.hueText should be underlined to ++# represent the mnemonic. ++GTKColorChooserPanel.hueText=Matiz: ++GTKColorChooserPanel.hueMnemonic=72 ++ ++GTKColorChooserPanel.redText=Vermelho: ++GTKColorChooserPanel.redMnemonic=69 ++ ++GTKColorChooserPanel.saturationText=Satura\u00e7\u00e3o: ++GTKColorChooserPanel.saturationMnemonic=83 ++ From ptisnovs at icedtea.classpath.org Thu Nov 28 00:57:32 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 28 Nov 2013 08:57:32 +0000 Subject: /hg/gfx-test: More helper methods added into the class CommonCAG... Message-ID: changeset 761954b1d3e1 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=761954b1d3e1 author: Pavel Tisnovsky date: Thu Nov 28 10:01:21 2013 +0100 More helper methods added into the class CommonCAGOperations. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/CommonCAGOperations.java | 281 ++++++++++++++++++++- 2 files changed, 285 insertions(+), 1 deletions(-) diffs (336 lines): diff -r 8f6f8eaf5fbc -r 761954b1d3e1 ChangeLog --- a/ChangeLog Wed Nov 27 09:32:36 2013 +0100 +++ b/ChangeLog Thu Nov 28 10:01:21 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-28 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonCAGOperations.java: + More helper methods added into the class CommonCAGOperations. + 2013-11-27 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltBufferedImageOp.java: diff -r 8f6f8eaf5fbc -r 761954b1d3e1 src/org/gfxtest/framework/CommonCAGOperations.java --- a/src/org/gfxtest/framework/CommonCAGOperations.java Wed Nov 27 09:32:36 2013 +0100 +++ b/src/org/gfxtest/framework/CommonCAGOperations.java Thu Nov 28 10:01:21 2013 +0100 @@ -294,6 +294,42 @@ } /** + * Create area composed of only one chord. This chord is placed on the + * left side of the image. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one chord + */ + private static Area createFirstOverlappingChordArea(TestImage image) + { + int xc = image.getCenterX(); + int yc = image.getCenterY(); + int radius = computeRadiusForOverlappingCircle(xc, yc); + // move circle to the left side of image + int x1 = xc - 3 * (radius >> 2); + return createChordArea(x1, yc, radius); + } + + /** + * Create area composed of only one chord. This chord is placed on the + * right side of the image. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one chord + */ + private static Area createSecondOverlappingChordArea(TestImage image) + { + int xc = image.getCenterX(); + int yc = image.getCenterY(); + int radius = computeRadiusForOverlappingCircle(xc, yc); + // move circle to the right side of image + int x2 = xc + 3 * (radius >> 2); + return createChordArea(x2, yc, radius); + } + + /** * Create area composed of only one circle. This circle is placed on the * right side of the image. * @@ -450,6 +486,25 @@ } /** + * Create area composed of only one chord. This chord is placed on + * the center of the image and its radius is smaller than the length + * of rectangle side(s). + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one circle + */ + private static Area createSmallerCenteredChordArea(TestImage image) + { + // compute center of the image + int xc = image.getCenterX(); + int yc = image.getCenterY(); + // compute size of the circle + int size = computeSizeOfCircleOrRectangle(xc, yc); + return createChordArea(xc, yc, size); + } + + /** * Create area composed of only one circle. This circle is placed on the * left side of the image. * @@ -683,7 +738,7 @@ { Area area = new Area(); area.add(createBiggerCenteredCircularArea(image)); - area.add(createCenteredRectangularArea(image)); + area.intersect(createCenteredRectangularArea(image)); return area; } @@ -752,6 +807,70 @@ } /** + * Create new area constructed from bigger chord and rectangle using intersect + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingIntersectOperator(TestImage image) + { + Area area = new Area(); + area.add(createBiggerCenteredChordArea(image)); + area.intersect(createCenteredRectangularArea(image)); + return area; + } + + /** + * Create new area constructed from bigger chord and rectangle using subtract + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingSubtractOperator(TestImage image) + { + Area area = new Area(); + area.add(createBiggerCenteredChordArea(image)); + area.subtract(createCenteredRectangularArea(image)); + return area; + } + + /** + * Create new area constructed from bigger chord and rectangle using inverse subtract + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingInverseSubtractOperator(TestImage image) + { + Area area = new Area(); + area.add(createCenteredRectangularArea(image)); + area.subtract(createBiggerCenteredChordArea(image)); + return area; + } + + /** + * Create new area constructed from bigger chord and rectangle using xor + * operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area + */ + public static Area createAreaFromBiggerChordAndRectangleUsingXorOperator(TestImage image) + { + Area area = new Area(); + area.add(createCenteredRectangularArea(image)); + area.exclusiveOr(createBiggerCenteredChordArea(image)); + return area; + } + + /** * Create new area constructed from bigger pie and rectangle using union * operation. * @@ -848,6 +967,86 @@ } /** + * Create new area constructed from smaller chord placed inside a rectangle + * using union operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one rectangle + */ + public static Area createAreaFromSmallerChordInsideRectangleUsingUnionOperator(TestImage image) + { + Area area = new Area(); + area.add(createCenteredRectangularArea(image)); + area.add(createSmallerCenteredChordArea(image)); + return area; + } + + /** + * Create new area constructed from smaller chord placed inside a rectangle + * using subtract operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one rectangle + */ + public static Area createAreaFromSmallerChordInsideRectangleUsingSubtractOperator(TestImage image) + { + Area area = new Area(); + area.add(createCenteredRectangularArea(image)); + area.subtract(createSmallerCenteredChordArea(image)); + return area; + } + + /** + * Create new area constructed from smaller chord placed inside a rectangle + * using inverse subtract operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one rectangle + */ + public static Area createAreaFromSmallerChordInsideRectangleUsingInverseSubtractOperator(TestImage image) + { + Area area = new Area(); + area.add(createSmallerCenteredChordArea(image)); + area.subtract(createCenteredRectangularArea(image)); + return area; + } + + /** + * Create new area constructed from smaller chord placed inside a rectangle + * using intersect operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one rectangle + */ + public static Area createAreaFromSmallerChordInsideRectangleUsingIntersectOperator(TestImage image) + { + Area area = new Area(); + area.add(createSmallerCenteredChordArea(image)); + area.intersect(createCenteredRectangularArea(image)); + return area; + } + + /** + * Create new area constructed from smaller chord placed inside a rectangle + * using XOR operation. + * + * @param image + * image to which area is to be drawn + * @return newly created area containing one rectangle + */ + public static Area createAreaFromSmallerChordInsideRectangleUsingXorOperator(TestImage image) + { + Area area = new Area(); + area.add(createSmallerCenteredChordArea(image)); + area.exclusiveOr(createCenteredRectangularArea(image)); + return area; + } + + /** * Create new area composed from two concentric circles using union operator. * * @param image @@ -1097,4 +1296,84 @@ return area; } + /** + * Create new area composed from a chord and a rectangle. + * + * @param image + * image to which area is to be drawn + * @return new area composed from a chord and a rectangle + */ + public static Area createAreaFromOverlappingChordAndRectangleUsingUnionOperator(TestImage image) { + Area area = new Area(); + Area circleArea = createFirstOverlappingChordArea(image); + Area rectangularArea = createSecondOverlappingRectangularArea(image); + area.add(circleArea); + area.add(rectangularArea); + return area; + } + + /** + * Create new area composed from a chord and a rectangle. + * + * @param image + * image to which area is to be drawn + * @return new area composed from a chord and a rectangle + */ + public static Area createAreaFromOverlappingChordAndRectangleUsingSubtractOperator(TestImage image) { + Area area = new Area(); + Area circleArea = createFirstOverlappingChordArea(image); + Area rectangularArea = createSecondOverlappingRectangularArea(image); + area.add(circleArea); + area.subtract(rectangularArea); + return area; + } + + /** + * Create new area composed from a chord and a rectangle. + * + * @param image + * image to which area is to be drawn + * @return new area composed from a chord and a rectangle + */ + public static Area createAreaFromOverlappingChordAndRectangleUsingInverseSubtractOperator(TestImage image) { + Area area = new Area(); + Area circleArea = createFirstOverlappingChordArea(image); + Area rectangularArea = createSecondOverlappingRectangularArea(image); + area.add(rectangularArea); + area.subtract(circleArea); + return area; + } + + /** + * Create new area composed from a chord and a rectangle. + * + * @param image + * image to which area is to be drawn + * @return new area composed from a chord and a rectangle + */ + public static Area createAreaFromOverlappingChordAndRectangleUsingIntersectOperator(TestImage image) { + Area area = new Area(); + Area circleArea = createFirstOverlappingChordArea(image); + Area rectangularArea = createSecondOverlappingRectangularArea(image); + area.add(circleArea); + area.intersect(rectangularArea); + return area; + } + + /** + * Create new area composed from a chord and a rectangle. + * + * @param image + * image to which area is to be drawn + * @return new area composed from a chord and a rectangle + */ + public static Area createAreaFromOverlappingChordAndRectangleUsingXorOperator(TestImage image) { + Area area = new Area(); + Area circleArea = createFirstOverlappingChordArea(image); + Area rectangularArea = createSecondOverlappingRectangularArea(image); + area.add(circleArea); + area.exclusiveOr(rectangularArea); + return area; + } + } From ptisnovs at icedtea.classpath.org Thu Nov 28 01:17:34 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 28 Nov 2013 09:17:34 +0000 Subject: /hg/rhino-tests: Added new testGetResourceNegativeTest case into Message-ID: changeset 8c969309d264 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=8c969309d264 author: Pavel Tisnovsky date: Thu Nov 28 10:21:31 2013 +0100 Added new testGetResourceNegativeTest case into ScriptEngineManagerClassTest. diffstat: ChangeLog | 6 ++++++ src/org/RhinoTests/ScriptEngineManagerClassTest.java | 8 ++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diffs (31 lines): diff -r 194c886a7975 -r 8c969309d264 ChangeLog --- a/ChangeLog Wed Nov 27 09:36:03 2013 +0100 +++ b/ChangeLog Thu Nov 28 10:21:31 2013 +0100 @@ -1,3 +1,9 @@ +2013-11-28 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineManagerClassTest.java: + Added new testGetResourceNegativeTest case into + ScriptEngineManagerClassTest. + 2013-11-27 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r 194c886a7975 -r 8c969309d264 src/org/RhinoTests/ScriptEngineManagerClassTest.java --- a/src/org/RhinoTests/ScriptEngineManagerClassTest.java Wed Nov 27 09:36:03 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineManagerClassTest.java Thu Nov 28 10:21:31 2013 +0100 @@ -1711,6 +1711,14 @@ } /** + * Test for method javax.script.ScriptEngineManager.getClass().getResourceNegativeTest() + */ + protected void testGetResourceNegativeTest() { + Object resource = this.scriptEngineManagerClass.getResource("unknown"); + assertNull(resource, "getResource() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptEngineManager */ @SuppressWarnings("cast") From jvanek at redhat.com Thu Nov 28 05:38:30 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 28 Nov 2013 14:38:30 +0100 Subject: [rfc][icedtea-web] filelog for plugin Message-ID: <52974756.5000209@redhat.com> Generally this patch is enabling the possibility lo log to file from plugin (if enabled) + clean up + synchronisation with java (moreover all the same still arround) - side effects: - user can see/set KEY_USER_LOG_DIR in itw settings. This was already implemented in netx, just needed to be enabled (DebuggingPanel.java, Messages.properties) - the name of the log made readable (and synchronised across java x c)(FileLog.java) - PluginMessageHandlerWorker.java commented out the "woken" message. It had no sense - c part - except main parts of this patch, also various missing end of lines or %s in outputs (which were to much visible in file log!) (IcedTeaNPPlugin.cc,)defined filename and stream, made aware of console logging (to be synced with java part) two notes - stream is flushed but not closed after shutdown (it can write even after, and I have not find place to where to close it) - from each browser run 1-aLotOf plugin file logs are created (mostly twe) reason is, that some calls are like "lunhcig new executable" - namely GetMIMEDescription and one more IcedTeaParseProperties.cc - added functions to read deployment.user.logdirdeployment.user.logdir (or return default) and "deployment.console.startup.mode - IcedTeaPluginUtils.cc - new util methods to generate logfile name, to init the lofgile and to print logging status - IcedTeaPluginUtils.h - the headers are generated only once during debug/error processing, and reused both for file log and streams log (and also error/debug) The patch is much more simple then it looks like :o) As guessable, part of huge rework I posted recently. For any brave soul and larger overview the complete patch is attached again (so th efile logging is doubled) J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fileLoggingForPlugin.diff Type: text/x-patch Size: 35414 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131128/a93bda72/fileLoggingForPlugin-0001.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: completeRewrote.diff Type: text/x-patch Size: 159936 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131128/a93bda72/completeRewrote-0001.diff From jvanek at redhat.com Thu Nov 28 06:15:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 28 Nov 2013 15:15:53 +0100 Subject: [rfc] [icedtea-web] move pipes to xdg runtime dir Message-ID: <52975019.6000208@redhat.com> This very simple patvh is enough for it. Imho worthy also for 1.4, as tmp is used as falback (same as before) This is applied on top of "filelog forplugin" but with som emanual work shoulkd be no issue to apply on clean head. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: movedPipesToXdgRuntime.patch Type: text/x-patch Size: 2666 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131128/0e74fef2/movedPipesToXdgRuntime.patch From omajid at redhat.com Thu Nov 28 07:14:16 2013 From: omajid at redhat.com (Omair Majid) Date: Thu, 28 Nov 2013 10:14:16 -0500 Subject: [rfc] [icedtea-web] move pipes to xdg runtime dir In-Reply-To: <52975019.6000208@redhat.com> References: <52975019.6000208@redhat.com> Message-ID: <20131128151416.GA14804@redhat.com> * Jiri Vanek [2013-11-28 09:19]: > This very simple patvh is enough for it. Imho worthy also for 1.4, as > tmp is used as falback (same as before) > > This is applied on top of "filelog forplugin" but with som emanual > work shoulkd be no issue to apply on clean head. Looks fine to me. Thanks, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From aazores at redhat.com Thu Nov 28 07:44:07 2013 From: aazores at redhat.com (Andrew Azores) Date: Thu, 28 Nov 2013 10:44:07 -0500 Subject: [rfc][icedtea-web] filelog for plugin In-Reply-To: <52974756.5000209@redhat.com> References: <52974756.5000209@redhat.com> Message-ID: <529764C7.9090009@redhat.com> On 11/28/2013 08:38 AM, Jiri Vanek wrote: > Generally this patch is enabling the possibility lo log to file from > plugin (if enabled) + clean up + synchronisation with java (moreover > all the same still arround) > - side effects: > - user can see/set KEY_USER_LOG_DIR in itw settings. This was > already implemented in netx, just needed to be enabled > (DebuggingPanel.java, Messages.properties) > - the name of the log made readable (and synchronised across java x > c)(FileLog.java) > - PluginMessageHandlerWorker.java commented out the "woken" > message. It had no sense > - c part - except main parts of this patch, also various missing > end of lines or %s in outputs (which were to much visible in file log!) > (IcedTeaNPPlugin.cc,)defined filename and stream, made aware > of console logging (to be synced with java part) > two notes - stream is flushed but not closed after shutdown > (it can write even after, and I have not find place to where to close it) > - from each browser run 1-aLotOf plugin file > logs are created (mostly twe) reason is, that some calls are like > "lunhcig new executable" - namely GetMIMEDescription and one more > IcedTeaParseProperties.cc - added functions to read > deployment.user.logdirdeployment.user.logdir (or return default) and > "deployment.console.startup.mode > - IcedTeaPluginUtils.cc - new util methods to generate logfile name, > to init the lofgile and to print logging status > - IcedTeaPluginUtils.h - the headers are generated only once during > debug/error processing, and reused both for file log and streams log > (and also error/debug) > > The patch is much more simple then it looks like :o) > > As guessable, part of huge rework I posted recently. For any brave > soul and larger overview the complete patch is attached again (so th > efile logging is doubled) > > J. I only reviewed the smaller patch (fileLoggingForPlugin), but it looks good to me. Thanks, -- Andrew A From aazores at redhat.com Thu Nov 28 08:19:24 2013 From: aazores at redhat.com (Andrew Azores) Date: Thu, 28 Nov 2013 11:19:24 -0500 Subject: [rfc][icedtea-web] Mixed-signing applet permissions (PR1592) In-Reply-To: <528CAE26.4030200@redhat.com> References: <52780135.4050202@redhat.com> <528CAE26.4030200@redhat.com> Message-ID: <52976D0C.9010504@redhat.com> On 11/20/2013 07:42 AM, Jiri Vanek wrote: > On 11/04/2013 09:19 PM, Andrew Azores wrote: >> Hi, >> >> This patch allows signed JARs within mixed-signing applets to be >> granted full permissions, while >> unsigned JARs in the same applets retain sandbox permissions only. >> The user is warned/prompted for >> the okay to proceed when this occurs. >> >> I was not able to create a working reproducer test for this due to >> the following error: >> >> java.lang.SecurityException: class "MixedSigningApplet"'s signer >> information does not match signer >> information of other classes in the same package >> >> I'd need to have two different packages in use to get around this, >> but AFAIK we don't have a way to >> support this with our reproducer system. Also, even if I had that >> working, the >> SecurityDialogs.showNotAllSignedWarningDialog still doesn't really >> respect the Extended Applet >> Security settings and will appear to prompt the user even if security >> is set to lowest. This would >> break the automation of the reproducer test and make it fairly >> useless anyway. >> >> The patch is split in two. The first one does the actual work. The >> second patch just removes an old >> unused local variable and an associated enclosing try/catch. This >> indentation change creates hard to >> read diff output, so I included this separately for ease of review. >> They need to be applied in order. >> >> Changelog: >> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: >> (initializeResources) grant full >> permissions to signed JARs of mixed-signing applets >> >> Thanks, >> > > Hm.. It took time to get through all possible consequences of this patch. > Tbh I'm surpised with simplicity of it. > > the "jarSingleton" hack is good enough, but wel. should be more > readableas on first glance it is not sure what it dies, - it is not > singleton in its true meaning. Yea, I'll rename it. It definitely is not a "singleton" :) > > "IMO, the right solution would just be moving the logic into the > verifier itself" worth to do then?" I'm thinking of adding it as a static method, seems to me to make the most sense that way, and it will be the easiest to implement too. > > "signing" variable is now misleading - it should be in three states. > Eg. some dialogues can have changed context then. I'll change the type of "signing" to a three-valued enum. "Full", "Partial", and "None" sound good for its values? And call the enum something like SigningState? > > I must insist on set of reproducers (not automated, but placed in > reproducers direcotries - if they will be custom , there can be script > to lunch them or something like that)) where you will try to hack your > own approach. Most basic signed and uunsigned together, unsigned code > doing something wrong. Or unsigned called signed, which is then doing > soemthing wrong.. or similar. No limits to imagination :)) > > Good speed, > j. I have an ugly "external reproducer" working now. It just consists of one unsigned JAR with one class, and one signed JAR with one class. I've got it testing a few scenarios: - Non-privileged actions (printing out some string constant) - always works - Privileged action of reading System.getProperty values from: - Unsigned JAR - not allowed - Signed JAR - works for html applet, not for JNLP application * - Unsigned JAR calling a public method in signed JAR - not allowed - Signed JAR calling a public method in unsigned that calls back into signed - not allowed - Unsigned calling into signed by reflection - not allowed * this is simply because the new logic is within a block that checks if the JNLPFile is an instance of PluginBridge, so it's obviously only being allowed for plugins. Do we also want to allow this for JNLP? I remember someone saying that the webstart side intentionally had stricter security. IMO we should not just be failing to launch applets like this though - but at the same time we certainly shouldn't run them without asking the user first, since they are inherently risky. The testing is done from both HTML and JNLP so it's tested on both sides. So it seems to me that it's working as intended, mostly (see above). Do you want there to also be more tests added that test the same things with different JAR setups or something? I'll add a test with an external main-class and a signed JAR, but are there any other scenarios? Thanks, -- Andrew A From jvanek at redhat.com Thu Nov 28 09:03:31 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 28 Nov 2013 18:03:31 +0100 Subject: [rfc][icedtea-web] Mixed-signing applet permissions (PR1592) In-Reply-To: <52976D0C.9010504@redhat.com> References: <52780135.4050202@redhat.com> <528CAE26.4030200@redhat.com> <52976D0C.9010504@redhat.com> Message-ID: <52977763.5080200@redhat.com> On 11/28/2013 05:19 PM, Andrew Azores wrote: > On 11/20/2013 07:42 AM, Jiri Vanek wrote: >> On 11/04/2013 09:19 PM, Andrew Azores wrote: >>> Hi, >>> >>> This patch allows signed JARs within mixed-signing applets to be granted full permissions, while >>> unsigned JARs in the same applets retain sandbox permissions only. The user is warned/prompted for >>> the okay to proceed when this occurs. >>> >>> I was not able to create a working reproducer test for this due to the following error: >>> >>> java.lang.SecurityException: class "MixedSigningApplet"'s signer information does not match signer >>> information of other classes in the same package >>> >>> I'd need to have two different packages in use to get around this, but AFAIK we don't have a way to >>> support this with our reproducer system. Also, even if I had that working, the >>> SecurityDialogs.showNotAllSignedWarningDialog still doesn't really respect the Extended Applet >>> Security settings and will appear to prompt the user even if security is set to lowest. This would >>> break the automation of the reproducer test and make it fairly useless anyway. >>> >>> The patch is split in two. The first one does the actual work. The second patch just removes an old >>> unused local variable and an associated enclosing try/catch. This indentation change creates hard to >>> read diff output, so I included this separately for ease of review. They need to be applied in order. >>> >>> Changelog: >>> * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (initializeResources) grant full >>> permissions to signed JARs of mixed-signing applets >>> >>> Thanks, >>> >> >> Hm.. It took time to get through all possible consequences of this patch. >> Tbh I'm surpised with simplicity of it. >> >> the "jarSingleton" hack is good enough, but wel. should be more readableas on first glance it is not sure what it dies, - it is not singleton in its true meaning. > > Yea, I'll rename it. It definitely is not a "singleton" :) > >> >> "IMO, the right solution would just be moving the logic into the verifier itself" worth to do then?" > > I'm thinking of adding it as a static method, seems to me to make the most sense that way, and it will be the easiest to implement too. > >> >> "signing" variable is now misleading - it should be in three states. Eg. some dialogues can have changed context then. > > I'll change the type of "signing" to a three-valued enum. "Full", "Partial", and "None" sound good for its values? And call the enum something like SigningState? > >> >> I must insist on set of reproducers (not automated, but placed in reproducers direcotries - if they will be custom , there can be script to lunch them or something like that)) where you will try to hack your own approach. Most basic signed and uunsigned together, unsigned code doing something wrong. Or unsigned called signed, which is then doing soemthing wrong.. or similar. No limits to imagination :)) >> >> Good speed, >> j. > > I have an ugly "external reproducer" working now. It just consists of one unsigned JAR with one class, and one signed JAR with one class. I've got it testing a few scenarios: > - Non-privileged actions (printing out some string constant) - always works > - Privileged action of reading System.getProperty values from: > - Unsigned JAR - not allowed > - Signed JAR - works for html applet, not for JNLP application * > - Unsigned JAR calling a public method in signed JAR - not allowed > - Signed JAR calling a public method in unsigned that calls back into signed - not allowed > - Unsigned calling into signed by reflection - not allowed > > * this is simply because the new logic is within a block that checks if the JNLPFile is an instance of PluginBridge, so it's obviously only being allowed for plugins. Do we also want to allow this for JNLP? I remember someone saying that the webstart side intentionally had stricter security. IMO we should not just be failing to launch applets like this though - but at the same time we certainly shouldn't run them without asking the user first, since they are inherently risky. > > The testing is done from both HTML and JNLP so it's tested on both sides. So it seems to me that it's working as intended, mostly (see above). Do you want there to also be more tests added that test the same things with different JAR setups or something? I'll add a test with an external main-class and a signed JAR, but are there any other scenarios? > > Thanks, > ok, it sounds excelent. For changes you mention, I'm looking forward to new patch for reproducer, please remake you dirty one reproducer as regullar reproducer - have one jar created via simple, and one via siged. - in one of them have jnlp and html files under sources - you can adapt the calls between jars via args/params - in one of them have testcase, which will lunch all the mentioned cases (but commetn out @Test untill issue with dialogue is fixed) - rember that test must have at least on @test method - have comment both in both srcs, and in testcase, that those two jars are connected - adapt above to your feelings, this is just group of advices of ill men :) Sorry for insisting :( J From ptisnovs at icedtea.classpath.org Fri Nov 29 00:46:58 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 29 Nov 2013 08:46:58 +0000 Subject: /hg/gfx-test: Six new tests added into CAGOperationsOnChordAndRe... Message-ID: changeset be6c16803717 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=be6c16803717 author: Pavel Tisnovsky date: Fri Nov 29 09:50:49 2013 +0100 Six new tests added into CAGOperationsOnChordAndRectangle test suite. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java | 142 ++++++++++ 2 files changed, 147 insertions(+), 0 deletions(-) diffs (164 lines): diff -r 761954b1d3e1 -r be6c16803717 ChangeLog --- a/ChangeLog Thu Nov 28 10:01:21 2013 +0100 +++ b/ChangeLog Fri Nov 29 09:50:49 2013 +0100 @@ -1,3 +1,8 @@ +2013-11-29 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java: + Six new tests added into CAGOperationsOnChordAndRectangle test suite. + 2013-11-28 Pavel Tisnovsky * src/org/gfxtest/framework/CommonCAGOperations.java: diff -r 761954b1d3e1 -r be6c16803717 src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java --- a/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Thu Nov 28 10:01:21 2013 +0100 +++ b/src/org/gfxtest/testsuites/CAGOperationsOnChordAndRectangle.java Fri Nov 29 09:50:49 2013 +0100 @@ -102,6 +102,148 @@ } /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using intersect operator. The shape + * is rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleIntersectStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using intersect operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingIntersectOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using subtract operator. The shape + * is rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleSubtractStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using subtract operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using inverse subtract operator. + * The shape is rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleInverseSubtractStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using inverse subtract operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingInverseSubtractOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using Xor operator. + * The shape is rendered using stroke paint. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleXorStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // create area using XOR operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingXorOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using union operator. The shape is + * rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleUnionWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using union operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingUnionOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** + * Checks the process of creating and rendering new geometric shape + * constructed from chord and rectangle using intersect operator. The shape + * is rendered using wide stroke. + * + * @param image + * image to which area is to be drawn + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBigChordRectangleIntersectWideStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // create area using intersect operator + Area area = CommonCAGOperations.createAreaFromBiggerChordAndRectangleUsingIntersectOperator(image); + // draw the area + graphics2d.draw(area); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args not used in this case From jvanek at icedtea.classpath.org Fri Nov 29 03:08:18 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 29 Nov 2013 11:08:18 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 3645d1e20a00 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=3645d1e20a00 author: Jiri Vanek date: Fri Nov 29 11:44:11 2013 +0100 Enabled file logging in plugin, user enabled to choose logs dir changeset b8f6c7c54e1c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b8f6c7c54e1c author: Jiri Vanek date: Fri Nov 29 12:14:43 2013 +0100 Pipes moved into XDG_RUNTIME_DIR diffstat: ChangeLog | 41 +++ netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java | 54 ++++- netx/net/sourceforge/jnlp/resources/Messages.properties | 4 +- netx/net/sourceforge/jnlp/util/logging/FileLog.java | 23 +- plugin/icedteanp/IcedTeaNPPlugin.cc | 110 ++++----- plugin/icedteanp/IcedTeaNPPlugin.h | 3 + plugin/icedteanp/IcedTeaParseProperties.cc | 45 ++++- plugin/icedteanp/IcedTeaParseProperties.h | 5 +- plugin/icedteanp/IcedTeaPluginUtils.cc | 97 ++++++++- plugin/icedteanp/IcedTeaPluginUtils.h | 86 ++++++- plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java | 2 +- tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc | 12 + 12 files changed, 397 insertions(+), 85 deletions(-) diffs (truncated from 1043 to 500 lines): diff -r 72f45c87b008 -r b8f6c7c54e1c ChangeLog --- a/ChangeLog Wed Nov 27 16:37:38 2013 -0500 +++ b/ChangeLog Fri Nov 29 12:14:43 2013 +0100 @@ -1,3 +1,44 @@ +2013-11-29 Jiri Vanek + + Pipes moved into XDG_RUNTIME_DIR + * plugin/icedteanp/IcedTeaNPPlugin.cc: (initialize_data_directory) logic + responsible for tmp dir path moved into (getTmpPath) and (data_directory) + initialized from (getRuntimePath) rather. + * plugin/icedteanp/IcedTeaPluginUtils.cc: (getTmpPath) new function, + provides path to tmp dir. (getRuntimePath) new function resolving + XDG_RUNTIME_DIR value, returning (getTmpPath) as fallback. + * plugin/icedteanp/IcedTeaPluginUtils.h: declared new two methods. + +2013-11-29 Jiri Vanek + + Enabled file logging in plugin, user enabled to choose logs dir. + * netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java: added + text-field to show/edit logs' destination. Added reset to default button. + * netx/net/sourceforge/jnlp/resources/Messages.propertie: added proper + keys for new controls (CPFilesLogsDestDir) and (CPFilesLogsDestDirResert). + (DPEnableLogging) changed to "Enable debugging", as it is better. + * netx/net/sourceforge/jnlp/util/logging/FileLog.java: Filename of logs + changed to be human readable and to distinguish between c/java + * plugin/icedteanp/IcedTeaNPPlugin.cc: made aware of console (plugin_debug_to_console) + added stream to log into file (plugin_file_log) and holder of name (plugin_file_log_name) + Added various new lines to end of erorr/debug messages. Stream flushed, + not closed on plugin shutdown. + * plugin/icedteanp/IcedTeaNPPlugin.h: extern above three fields. + * plugin/icedteanp/IcedTeaParseProperties.cc: added functionality to provide + set or default log dir (get_log_dir), added (is_java_console_enabled) + to determine logging to console + * plugin/icedteanp/IcedTeaParseProperties.h: used glib.h, declared above functions + * plugin/icedteanp/IcedTeaPluginUtils.cc: added (initFileLog) function to open + correctly named, in proper palce and with correct permissions file for logging + (generateLogFileName) generate human readable file name, as java do. + (printDebugStatus) to debug status of logging + * plugin/icedteanp/IcedTeaPluginUtils.h: headers generated once, and reused + declared above functions. + * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java: + commented out useless "woken" debug message + * tests/cpp-unit-tests/IcedTeaPluginUtilsTest.cc: made plugin_debug_to_console + aware. + 2013-11-27 Andrew Azores Made JNLPClassLoaderDeadlock reproducer more reliable diff -r 72f45c87b008 -r b8f6c7c54e1c netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java --- a/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Wed Nov 27 16:37:38 2013 -0500 +++ b/netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java Fri Nov 29 12:14:43 2013 +0100 @@ -23,13 +23,20 @@ import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.Box; +import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import net.sourceforge.jnlp.config.Defaults; import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.util.logging.LogConfig; @@ -74,7 +81,41 @@ private void addComponents() { GridBagConstraints c = new GridBagConstraints(); - JLabel debuggingDescription = new JLabel("" + Translator.R("CPDebuggingDescription") + "

"); + + final JLabel debuggingDescription = new JLabel("" + Translator.R("CPDebuggingDescription") + "

"); + final JLabel logsDestinationTitle = new JLabel(Translator.R("CPFilesLogsDestDir")+": "); + final JTextField logsDestination = new JTextField(config.getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR)); + logsDestination.getDocument().addDocumentListener(new DocumentListener() { + + + @Override + public void insertUpdate(DocumentEvent e) { + save(); + } + + @Override + public void removeUpdate(DocumentEvent e) { + save(); + } + + @Override + public void changedUpdate(DocumentEvent e) { + save(); + + } + + private void save() { + config.setProperty(DeploymentConfiguration.KEY_USER_LOG_DIR, logsDestination.getText()); + } + }); + final JButton logsDestinationReset = new JButton(Translator.R("CPFilesLogsDestDirResert")); + logsDestinationReset.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + logsDestination.setText(Defaults.getDefaults().get(DeploymentConfiguration.KEY_USER_LOG_DIR).getDefaultValue()); + } + }); JCheckBox[] debuggingOptions = { new JCheckBox(Translator.R("DPEnableLogging")), @@ -130,8 +171,17 @@ debuggingOptions[i].addItemListener(this); add(debuggingOptions[i], c); + if (i == 2) { + c.gridx++; + add(logsDestinationTitle, c); + c.gridx++; + add(logsDestination, c); + c.gridx++; + add(logsDestinationReset, c); + c.gridx-=3; + } + } - } for (int j = 0; j < javaConsoleItems.length; j++) { consoleComboBox.addItem(javaConsoleItems[j]); diff -r 72f45c87b008 -r b8f6c7c54e1c netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Nov 27 16:37:38 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Nov 29 12:14:43 2013 +0100 @@ -402,11 +402,13 @@ # Control Panel - DebugginPanel CPDebuggingPossibilites=Logging outputs -DPEnableLogging=Enable logging +DPEnableLogging=Enable debugging DPEnableLoggingHint=When this switch is on, then also debug messages are logged. Same as -verbose or ICEDTEAPLUGIN_DEBUG=true DPEnableHeaders=Enable headers DPEnableHeadersHint=When this switch is on, each logged message have header with additional information like user, place in code and time DPEnableFile=Enable logging to file +CPFilesLogsDestDir=File logs directory +CPFilesLogsDestDirResert=Reset to default DPEnableFileHint=output messages will be saved to file in your {0} directory DPEnableStds=Enable logging to standard outputs DPEnableStdsHint=messages will be printed to standard outputs diff -r 72f45c87b008 -r b8f6c7c54e1c netx/net/sourceforge/jnlp/util/logging/FileLog.java --- a/netx/net/sourceforge/jnlp/util/logging/FileLog.java Wed Nov 27 16:37:38 2013 -0500 +++ b/netx/net/sourceforge/jnlp/util/logging/FileLog.java Fri Nov 29 12:14:43 2013 +0100 @@ -38,6 +38,8 @@ import java.io.File; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Level; @@ -50,17 +52,20 @@ * */ public final class FileLog implements SingleStreamLogger { + private static SimpleDateFormat fileLogNameFormatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.S"); + /**"Tue Nov 19 09:43:50 CET 2013"*/ + private static SimpleDateFormat pluginSharedFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZ yyyy"); private final Logger impl; private final FileHandler fh; private static final String defaultloggerName = "IcedTea-Web file-logger"; public FileLog() { - this(defaultloggerName, LogConfig.getLogConfig().getIcedteaLogDir() + "itw-" + java.lang.System.currentTimeMillis() + ".log", false); + this(false); } public FileLog(boolean append) { - this(defaultloggerName, LogConfig.getLogConfig().getIcedteaLogDir() + "itw-" + java.lang.System.currentTimeMillis() + ".log", append); + this(defaultloggerName, LogConfig.getLogConfig().getIcedteaLogDir() + "itw-javantx-" + getStamp() + ".log", append); } @@ -104,4 +109,18 @@ public void close(){ fh.close(); } + + private static String getStamp() { + return fileLogNameFormatter.format(new Date()); + } + + public static SimpleDateFormat getFileLogNameFormatter() { + return fileLogNameFormatter; + } + + public static SimpleDateFormat getPluginSharedFormatter() { + return pluginSharedFormatter; + } + + } diff -r 72f45c87b008 -r b8f6c7c54e1c plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Nov 27 16:37:38 2013 -0500 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Nov 29 12:14:43 2013 +0100 @@ -219,6 +219,10 @@ bool plugin_debug_to_file = false ; bool plugin_debug_to_streams = true ; bool plugin_debug_to_system = false; +bool plugin_debug_to_console = true; +FILE * plugin_file_log; +std::string plugin_file_log_name; + int plugin_debug_suspend = (getenv("ICEDTEAPLUGIN_DEBUG") != NULL) && (strcmp(getenv("ICEDTEAPLUGIN_DEBUG"), "suspend") == 0); @@ -330,7 +334,7 @@ if (!instance) { - PLUGIN_ERROR ("Browser-provided instance pointer is NULL."); + PLUGIN_ERROR ("Browser-provided instance pointer is NULL.\n"); return NPERR_INVALID_INSTANCE_ERROR; } @@ -338,7 +342,7 @@ ITNPPluginData* data = plugin_data_new (); if (data == NULL) { - PLUGIN_ERROR ("Failed to allocate plugin data."); + PLUGIN_ERROR ("Failed to allocate plugin data.\n"); return NPERR_OUT_OF_MEMORY_ERROR; } @@ -439,7 +443,7 @@ data_directory.c_str(), getpid()); if (!in_pipe_name) { - PLUGIN_ERROR ("Failed to create input pipe name."); + PLUGIN_ERROR ("Failed to create input pipe name.\n"); np_error = NPERR_OUT_OF_MEMORY_ERROR; // If in_pipe_name is NULL then the g_free at // cleanup_in_pipe_name will simply return. @@ -452,7 +456,7 @@ PLUGIN_DEBUG ("ITNP_New: creating input fifo: %s\n", in_pipe_name); if (mkfifo (in_pipe_name, 0600) == -1 && errno != EEXIST) { - PLUGIN_ERROR ("Failed to create input pipe", strerror (errno)); + PLUGIN_ERROR ("Failed to create input pipe\n", strerror (errno)); np_error = NPERR_GENERIC_ERROR; goto cleanup_in_pipe_name; } @@ -467,7 +471,7 @@ if (!out_pipe_name) { - PLUGIN_ERROR ("Failed to create output pipe name."); + PLUGIN_ERROR ("Failed to create output pipe name.\n"); np_error = NPERR_OUT_OF_MEMORY_ERROR; goto cleanup_out_pipe_name; } @@ -478,7 +482,7 @@ PLUGIN_DEBUG ("ITNP_New: creating output fifo: %s\n", out_pipe_name); if (mkfifo (out_pipe_name, 0600) == -1 && errno != EEXIST) { - PLUGIN_ERROR ("Failed to create output pipe", strerror (errno)); + PLUGIN_ERROR ("Failed to create output pipe\n", strerror (errno)); np_error = NPERR_GENERIC_ERROR; goto cleanup_out_pipe_name; } @@ -500,13 +504,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to create output channel", + PLUGIN_ERROR ("Failed to create output channel, '%s'\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to create output channel"); + PLUGIN_ERROR ("Failed to create output channel\n"); np_error = NPERR_GENERIC_ERROR; goto cleanup_out_to_appletviewer; @@ -527,13 +531,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to create input channel", + PLUGIN_ERROR ("Failed to create input channel, '%s'\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to create input channel"); + PLUGIN_ERROR ("Failed to create input channel\n"); np_error = NPERR_GENERIC_ERROR; goto cleanup_in_from_appletviewer; @@ -549,7 +553,7 @@ goto done; - // Free allocated data + // Free allocated data in case of error cleanup_in_watch_source: // Removing a source is harmless if it fails since it just means the @@ -593,6 +597,7 @@ done: + IcedTeaPluginUtilities::printDebugStatus(); // Now other threads may re-enter.. unlock the mutex g_mutex_unlock(vm_start_mutex); @@ -621,7 +626,7 @@ } break; default: - PLUGIN_ERROR ("Unknown plugin value requested."); + PLUGIN_ERROR ("Unknown plugin value requested.\n"); np_error = NPERR_GENERIC_ERROR; break; } @@ -670,7 +675,7 @@ if (instance == NULL) { - PLUGIN_ERROR ("Invalid instance."); + PLUGIN_ERROR ("Invalid instance.\n"); return NPERR_INVALID_INSTANCE_ERROR; } @@ -990,13 +995,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to read line from input channel", + PLUGIN_ERROR ("Failed to read line from input channel, %s\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to read line from input channel"); + PLUGIN_ERROR ("Failed to read line from input channel\n"); } else { consume_message(message); @@ -1329,13 +1334,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to spawn applet viewer", + PLUGIN_ERROR ("Failed to spawn applet viewer %s\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to spawn applet viewer"); + PLUGIN_ERROR ("Failed to spawn applet viewer\n"); error = NPERR_GENERIC_ERROR; } @@ -1409,13 +1414,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to spawn applet viewer", + PLUGIN_ERROR ("Failed to spawn applet viewer %s\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to spawn applet viewer"); + PLUGIN_ERROR ("Failed to spawn applet viewer\n"); error = NPERR_GENERIC_ERROR; } @@ -1540,13 +1545,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to write bytes to output channel", + PLUGIN_ERROR ("Failed to write bytes to output channel '%s' \n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to write bytes to output channel"); + PLUGIN_ERROR ("Failed to write bytes to output channel for %s", newline_message); } if (g_io_channel_flush (out_to_appletviewer, &channel_error) @@ -1554,18 +1559,18 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to flush bytes to output channel", + PLUGIN_ERROR ("Failed to flush bytes to output channel '%s'\n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to flush bytes to output channel"); + PLUGIN_ERROR ("Failed to flush bytes to output channel for %s", newline_message); } g_free (newline_message); newline_message = NULL; - PLUGIN_DEBUG (" PIPE: plugin wrote: %s\n", message); + PLUGIN_DEBUG (" PIPE: plugin wrote(?): %s\n", message); } PLUGIN_DEBUG ("plugin_send_message_to_appletviewer return\n"); @@ -1621,13 +1626,13 @@ { if (channel_error) { - PLUGIN_ERROR ("Failed to write shutdown message to" - " appletviewer", channel_error->message); + PLUGIN_ERROR ("Failed to write shutdown message to " + " appletviewer, %s \n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to write shutdown message to"); + PLUGIN_ERROR ("Failed to write shutdown message to\n"); } if (g_io_channel_flush (out_to_appletviewer, &channel_error) @@ -1636,12 +1641,12 @@ if (channel_error) { PLUGIN_ERROR ("Failed to write shutdown message to" - " appletviewer", channel_error->message); + " appletviewer %s \n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to write shutdown message to"); + PLUGIN_ERROR ("Failed to write shutdown message to\n"); } if (g_io_channel_shutdown (out_to_appletviewer, @@ -1651,12 +1656,12 @@ if (channel_error) { PLUGIN_ERROR ("Failed to shut down appletviewer" - " output channel", channel_error->message); + " output channel %s \n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to shut down appletviewer"); + PLUGIN_ERROR ("Failed to shut down appletviewer\n"); } } @@ -1669,12 +1674,12 @@ if (channel_error) { PLUGIN_ERROR ("Failed to shut down appletviewer" - " input channel", channel_error->message); + " input channel %s \n", channel_error->message); g_error_free (channel_error); channel_error = NULL; } else - PLUGIN_ERROR ("Failed to shut down appletviewer"); + PLUGIN_ERROR ("Failed to shut down appletviewer\n"); } } } @@ -1782,24 +1787,8 @@ NPError initialize_data_directory() { - const char* tmpdir_env = getenv("TMPDIR"); - if (tmpdir_env != NULL && g_file_test (tmpdir_env, - (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) - { - data_directory = tmpdir_env; - } - else if (g_file_test (P_tmpdir, From jvanek at icedtea.classpath.org Fri Nov 29 03:36:45 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 29 Nov 2013 11:36:45 +0000 Subject: /hg/release/icedtea-web-1.4: Pipes moved into XDG_RUNTIME_DIR Message-ID: changeset 35f4d27451fd in /hg/release/icedtea-web-1.4 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.4?cmd=changeset;node=35f4d27451fd author: Jiri Vanek date: Fri Nov 29 12:43:10 2013 +0100 Pipes moved into XDG_RUNTIME_DIR diffstat: ChangeLog | 11 +++++++++++ NEWS | 1 + plugin/icedteanp/IcedTeaNPPlugin.cc | 19 +------------------ plugin/icedteanp/IcedTeaPluginUtils.cc | 30 ++++++++++++++++++++++++++++++ plugin/icedteanp/IcedTeaPluginUtils.h | 3 ++- 5 files changed, 45 insertions(+), 19 deletions(-) diffs (111 lines): diff -r 461eb0b77b53 -r 35f4d27451fd ChangeLog --- a/ChangeLog Wed Nov 27 14:14:14 2013 +0100 +++ b/ChangeLog Fri Nov 29 12:43:10 2013 +0100 @@ -1,3 +1,14 @@ +2013-11-29 Jiri Vanek + + Pipes moved into XDG_RUNTIME_DIR + * plugin/icedteanp/IcedTeaNPPlugin.cc: (initialize_data_directory) logic + responsible for tmp dir path moved into (getTmpPath) and (data_directory) + initialized from (getRuntimePath) rather. + * plugin/icedteanp/IcedTeaPluginUtils.cc: (getTmpPath) new function, + provides path to tmp dir. (getRuntimePath) new function resolving + XDG_RUNTIME_DIR value, returning (getTmpPath) as fallback. + * plugin/icedteanp/IcedTeaPluginUtils.h: declared new two methods. + 2013-11-26 Jiri Vanek * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (getManifestAttribute) diff -r 461eb0b77b53 -r 35f4d27451fd NEWS --- a/NEWS Wed Nov 27 14:14:14 2013 +0100 +++ b/NEWS Fri Nov 29 12:43:10 2013 +0100 @@ -22,6 +22,7 @@ - PR1473 - javaws should not depend on name of local file * Plugin - PR854: Resizing an applet several times causes 100% CPU load + - Pipes moved into XDG_RUNTIME_DIR * Security Updates - CVE-2012-4540, RH869040: Heap-based buffer overflow after triggering event attached to applet diff -r 461eb0b77b53 -r 35f4d27451fd plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Nov 27 14:14:14 2013 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Fri Nov 29 12:43:10 2013 +0100 @@ -1886,24 +1886,7 @@ // Make sure the plugin data directory exists, creating it if // necessary. - const char* tmpdir_env = getenv("TMPDIR"); - if (tmpdir_env != NULL && g_file_test (tmpdir_env, - (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) - { - data_directory = tmpdir_env; - } - else if (g_file_test (P_tmpdir, - (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) - { - data_directory = P_tmpdir; - } - else - { - // If TMPDIR and P_tmpdir do not exist, try /tmp directly - data_directory = "/tmp"; - } - - data_directory += "/icedteaplugin-"; + data_directory = IcedTeaPluginUtilities::getRuntimePath() + "/icedteaplugin-"; if (getenv("USER") != NULL) data_directory += getenv("USER"); diff -r 461eb0b77b53 -r 35f4d27451fd plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Wed Nov 27 14:14:14 2013 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Fri Nov 29 12:43:10 2013 +0100 @@ -1074,6 +1074,36 @@ } +std::string IcedTeaPluginUtilities::getTmpPath(){ + const char* tmpdir_env = getenv("TMPDIR"); + if (tmpdir_env != NULL && g_file_test (tmpdir_env, + (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) + { + return std::string(tmpdir_env); + } + else if (g_file_test (P_tmpdir, + (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) + { + return std::string(P_tmpdir); + } + else + { + // If TMPDIR and P_tmpdir do not exist, try /tmp directly + return "/tmp"; + } +} + +std::string IcedTeaPluginUtilities::getRuntimePath(){ + const char* rntdir_env = getenv("XDG_RUNTIME_DIR"); + if (rntdir_env != NULL && g_file_test (rntdir_env, + (GFileTest) (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) + { + return std::string(rntdir_env); + } + return IcedTeaPluginUtilities::getTmpPath(); +} + + /****************************************** * Begin JavaMessageSender implementation * ****************************************** diff -r 461eb0b77b53 -r 35f4d27451fd plugin/icedteanp/IcedTeaPluginUtils.h --- a/plugin/icedteanp/IcedTeaPluginUtils.h Wed Nov 27 14:14:14 2013 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.h Fri Nov 29 12:43:10 2013 +0100 @@ -286,7 +286,8 @@ /*cutting whitespaces from end and start of string*/ static void trim(std::string& str); static bool file_exists(std::string filename); - + static std::string getTmpPath(); + static std::string getRuntimePath(); }; /* From jvanek at icedtea.classpath.org Fri Nov 29 03:37:18 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Fri, 29 Nov 2013 11:37:18 +0000 Subject: /hg/icedtea-web: Updated NEWS Message-ID: changeset 7432a0de8249 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=7432a0de8249 author: Jiri Vanek date: Fri Nov 29 12:43:51 2013 +0100 Updated NEWS diffstat: NEWS | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diffs (12 lines): diff -r b8f6c7c54e1c -r 7432a0de8249 NEWS --- a/NEWS Fri Nov 29 12:14:43 2013 +0100 +++ b/NEWS Fri Nov 29 12:43:51 2013 +0100 @@ -30,6 +30,8 @@ - PR854: Resizing an applet several times causes 100% CPU load - PR1271: icedtea-web does not handle 'javascript:'-protocol URLs - RH976833: Multiple applets on one page cause deadlock + - Pipes moved into XDG_RUNTIME_DIR + - Added debug to file * Common - PR1474: Can't get javaws to use SOCKS proxy * Security Updates From jvanek at redhat.com Fri Nov 29 08:35:48 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 29 Nov 2013 17:35:48 +0100 Subject: [rfc][icedtea-web] make console aware of plugin messages Message-ID: <5298C264.9060508@redhat.com> hi! So another part of "big console rewrote", now making the plugin console aware of C messages. Design is simple. New write pipe from plugin to java is created, and console then read messgaes from it, and merge to outputs. Right now it is not ideal, but with new console (which wil come later) it made much more sense. There is small refactoring which made header as object (pluginheader and javaheader classes) , and change to string when needed. The new pipe had best performance from tested files, current pipes and sockets two nits: you will see my synchronisatoion by 1s sleep is not ideal in C part. any better idea? Also you can see hat imput is char*, and also char* is written to pipe, however queue is using string - I was not able to make it work via with char* :( so there is nasty char* -> string -> char* retyping ;( but I do not wont to malock and free the memory manually :P Again a patch is much more simple (600lines is headers refactoring!) Thanx for review! J. -------------- next part -------------- A non-text attachment was scrubbed... Name: consolePluginAware.diff Type: text/x-patch Size: 52061 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131129/6bd7fd28/consolePluginAware-0001.diff From domuradical at gmail.com Fri Nov 8 06:24:07 2013 From: domuradical at gmail.com (Adam Domurad) Date: Fri, 08 Nov 2013 14:24:07 -0000 Subject: [rfc][icedtea-web] suspicious return from check for main In-Reply-To: <527CD919.9030801@redhat.com> References: <527CD919.9030801@redhat.com> Message-ID: Check the actual commit silly: http://fpaste.org/52643/20508138/raw/. I never added the logic, it was just there in a more obscure form before. The patch looks fine. Happy hacking, -Adam On Fri, Nov 8, 2013 at 7:29 AM, Jiri Vanek wrote: > Hi Adam, > You have introduced those lines - http://icedtea.classpath.org/ > hg/icedtea-web/annotate/dcd51951d507/netx/net/sourceforge/jnlp/runtime/ > JNLPClassLoader.java#l831 - and I have no clue why. > > They should look like the suggested in patch. May you check? > > J. > > ps: I was trying to catch you on #openjdk but had no luck. I wonted to > thank you fro Cpp-unittests, they are appearing to be extraordinary helpful > companions. So here The Thanx lay :) > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131108/dad17150/attachment.html From fcassia at gmail.com Sat Nov 30 17:24:21 2013 From: fcassia at gmail.com (Fernando Cassia) Date: Sat, 30 Nov 2013 23:24:21 -0200 Subject: Web start sandboxing and security In-Reply-To: References: Message-ID: On Fri, Oct 18, 2013 at 3:14 PM, Andy Lutomirski wrote: > Even if the app is signed, there should still be a way to run it in > the sandbox. I've yet to encounter a JNLP app in the wild that has > any legitimate reason to do anything other than access the internet, > create some temporary files, and occasionally use the file picker. > Let me run it in the sandbox, please. > This is a stupid statement. IE I use muCommander all the time. http://www.mucommander.com/ or JShot, to take screenshots http://jshot.info/ Both need full access to the filesystem in order to function and perform its chores. It seems to me that you're confusing what a desktop application is, vs what an applet is. A Java Web Start app is a DESKTOP APPLICATION, and as such it must have the same access as any other desktop application. FC -- During times of Universal Deceit, telling the truth becomes a revolutionary act Durante ?pocas de Enga?o Universal, decir la verdad se convierte en un Acto Revolucionario - George Orwell -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131130/15bbf4c5/attachment.html From luto at amacapital.net Sat Nov 30 17:48:16 2013 From: luto at amacapital.net (Andy Lutomirski) Date: Sat, 30 Nov 2013 17:48:16 -0800 Subject: Web start sandboxing and security In-Reply-To: References: Message-ID: On Nov 30, 2013 5:24 PM, "Fernando Cassia" wrote: > > > On Fri, Oct 18, 2013 at 3:14 PM, Andy Lutomirski wrote: >> >> Even if the app is signed, there should still be a way to run it in >> the sandbox. I've yet to encounter a JNLP app in the wild that has >> any legitimate reason to do anything other than access the internet, >> create some temporary files, and occasionally use the file picker. >> Let me run it in the sandbox, please. > > > This is a stupid statement. IE I use muCommander all the time. > > http://www.mucommander.com/ > > or JShot, to take screenshots > http://jshot.info/ > > Both need full access to the filesystem in order to function and perform its chores. > > It seems to me that you're confusing what a desktop application is, vs what an applet is. A Java Web Start app is a DESKTOP APPLICATION, and as such it must have the same access as any other desktop application. > Huh? Some of these "desktop" applications need full access; some don't. Meanwhile, it's actually safer to run an unsigned web start app than a signed one, and the prompt makes ActiveX look good. If there was actually a choice to run web start apps sandboxed, then maybe vendors would write more apps that would work in a sandbox. I had to search somewhat extensively to figure out what "trusting" a vendor means. This kind of design was short-sighted in the 90s, and IMO it's a dangerous embarrassment nowadays. --Andy P.S. I understand why a screenshot app needs privilege to take screenshots, but why does it need full filesystem access? There are sandboxed file access APIs for exactly this reason. > FC > > > -- > During times of Universal Deceit, telling the truth becomes a revolutionary act > Durante ?pocas de Enga?o Universal, decir la verdad se convierte en un Acto Revolucionario > - George Orwell -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131130/b5267724/attachment.html From fcassia at gmail.com Sat Nov 30 18:45:19 2013 From: fcassia at gmail.com (Fernando Cassia) Date: Sun, 1 Dec 2013 00:45:19 -0200 Subject: Web start sandboxing and security In-Reply-To: References: Message-ID: On Sat, Nov 30, 2013 at 10:48 PM, Andy Lutomirski wrote: > then maybe vendors would write more apps that would work in a sandbox. Why do you want Java apps to be inferior than native apps running on the system? It seems to me that you want crippled Java apps. That's what applets are for. Signed Java apps are better than the average .EXE from unknown vendors (shareware apps or freeware) people download from download.com and other such sites, and install on Windows all the time. FC PS: JShot needs filesystem access if you want to actually EDIT BITMAPS using the built-in bitmap editor (say to take a portion of another JPG on the local filesystem and combine it with your screenshot, or save the result of your editing to the local filesystem). -- During times of Universal Deceit, telling the truth becomes a revolutionary act Durante ?pocas de Enga?o Universal, decir la verdad se convierte en un Acto Revolucionario - George Orwell -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20131201/4467b2bf/attachment.html